mamiya 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/mamiya/cli/client.rb +18 -3
- data/lib/mamiya/master/application_status.rb +7 -1
- data/lib/mamiya/version.rb +1 -1
- data/mamiya.gemspec +1 -1
- data/spec/master/application_status_spec.rb +30 -0
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5d26f86a476093f14e8d738041bae5acd60d9ad0
|
4
|
+
data.tar.gz: 09dd771694cec321f0b8c50a414671de465291e4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ae5b6693750dfbff6a45d149b6ea16b1e79acae51a0c98e70b89a0217db3061eff318242a8d9637a7420eaefa4ddd41673e19d2fe6855a07a7cc2c9879610e75
|
7
|
+
data.tar.gz: 9d41bc38c61954f5c65609ae5e79fa6b87c402b50c88d71ad6d2577adfe7bdc6de49aac6acf49b842c17296e1a203455ef4e84fca3a376cceba674c70712d059
|
data/lib/mamiya/cli/client.rb
CHANGED
@@ -185,7 +185,7 @@ not distributed: #{dist['not_distributed_count']} agents
|
|
185
185
|
@deploy_exception = nil
|
186
186
|
# TODO: move this run on master node side
|
187
187
|
puts "=> Deploying #{application}/#{package}"
|
188
|
-
puts " *
|
188
|
+
puts " * onto agents which labeled: #{options[:labels].inspect}" if options[:labels] && !options[:labels].empty?
|
189
189
|
|
190
190
|
show_package(package)
|
191
191
|
|
@@ -215,7 +215,7 @@ not distributed: #{dist['not_distributed_count']} agents
|
|
215
215
|
|
216
216
|
s = pkg_status(package, :short)
|
217
217
|
puts ""
|
218
|
-
break if 0 < s['participants_count'] && s['participants_count'] == s['prepare']['done'].size
|
218
|
+
break if 0 < s['participants_count'] && s['non_participants'].empty? && s['participants_count'] == s['prepare']['done'].size
|
219
219
|
sleep 2
|
220
220
|
end
|
221
221
|
|
@@ -382,18 +382,26 @@ not distributed: #{dist['not_distributed_count']} agents
|
|
382
382
|
puts <<-EOF
|
383
383
|
at: #{Time.now.inspect}
|
384
384
|
application: #{application}
|
385
|
+
agents: #{status['agents_count']} agents
|
385
386
|
participants: #{status['participants_count']} agents
|
386
387
|
|
387
388
|
major_current: #{status['major_current']}
|
388
389
|
currents:
|
389
390
|
#{status['currents'].sort_by { |pkg, as| -(as.size) }.flat_map { |pkg, as|
|
390
|
-
[" - #{pkg} (#{as.size} agents)"] + (pkg == status['major_current'] ? [
|
391
|
+
[" - #{pkg} (#{as.size} agents)"] + (pkg == status['major_current'] ? [] : as.map{ |_| " * #{_}" })
|
391
392
|
}.join("\n")}
|
392
393
|
|
393
394
|
common_previous_release: #{status['common_previous_release']}
|
394
395
|
common_releases:
|
395
396
|
#{status['common_releases'].map { |_| _.prepend(' - ') }.join("\n")}
|
396
397
|
EOF
|
398
|
+
|
399
|
+
if status['non_participants'] && !status['non_participants'].empty?
|
400
|
+
puts "\nnon_participants:"
|
401
|
+
status['non_participants'].each do |agent|
|
402
|
+
puts " * #{agent}"
|
403
|
+
end
|
404
|
+
end
|
397
405
|
end
|
398
406
|
|
399
407
|
def pkg_status(package, short=false)
|
@@ -426,6 +434,13 @@ status: #{status['status'].join(',')}
|
|
426
434
|
participants: #{total} agents
|
427
435
|
|
428
436
|
EOF
|
437
|
+
|
438
|
+
if status['non_participants'] && !status['non_participants'].empty?
|
439
|
+
status['non_participants'].each do |agent|
|
440
|
+
puts " * #{agent}"
|
441
|
+
end
|
442
|
+
puts
|
443
|
+
end
|
429
444
|
end
|
430
445
|
|
431
446
|
%w(fetch prepare switch).each do |key|
|
@@ -18,6 +18,8 @@ module Mamiya
|
|
18
18
|
application: application,
|
19
19
|
labels: labels,
|
20
20
|
participants_count: participants.size,
|
21
|
+
agents_count: agents.size,
|
22
|
+
non_participants: non_participants,
|
21
23
|
|
22
24
|
major_current: major_current,
|
23
25
|
currents: currents,
|
@@ -39,7 +41,11 @@ module Mamiya
|
|
39
41
|
(q['queue'] && q['queue'].any? { |t| t['app'] == application })
|
40
42
|
}
|
41
43
|
end]
|
42
|
-
|
44
|
+
end
|
45
|
+
|
46
|
+
def non_participants
|
47
|
+
agents.keys - participants.keys
|
48
|
+
end
|
43
49
|
|
44
50
|
def currents
|
45
51
|
@currents ||= Hash[participants.group_by do |name, status|
|
data/lib/mamiya/version.rb
CHANGED
data/mamiya.gemspec
CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
21
|
spec.add_runtime_dependency "thor", ">= 0.18.1"
|
22
|
-
spec.add_runtime_dependency "aws-sdk-core", "2.0.0
|
22
|
+
spec.add_runtime_dependency "aws-sdk-core", ">= 2.0.0"
|
23
23
|
spec.add_runtime_dependency "term-ansicolor", ">= 1.3.0"
|
24
24
|
unless ENV["MAMIYA_VILLEIN_PATH"]
|
25
25
|
spec.add_runtime_dependency "villein", ">= 0.5.0"
|
@@ -86,6 +86,36 @@ describe Mamiya::Master::ApplicationStatus do
|
|
86
86
|
end
|
87
87
|
end
|
88
88
|
|
89
|
+
describe "#non_participants" do
|
90
|
+
subject { status.non_participants }
|
91
|
+
|
92
|
+
let(:agent_statuses) do
|
93
|
+
{
|
94
|
+
'agent1' => {
|
95
|
+
'packages' => {'myapp' => [
|
96
|
+
]},
|
97
|
+
'queues' => {'fetch' => {
|
98
|
+
'working' => nil,
|
99
|
+
'queue' => [
|
100
|
+
]
|
101
|
+
}}
|
102
|
+
},
|
103
|
+
'agent2' => {
|
104
|
+
'queues' => {'fetch' => {
|
105
|
+
'working' => nil,
|
106
|
+
'queue' => [
|
107
|
+
{'app' => 'notmyapp'},
|
108
|
+
]
|
109
|
+
}}
|
110
|
+
},
|
111
|
+
}
|
112
|
+
end
|
113
|
+
|
114
|
+
it "returns non participants" do
|
115
|
+
expect(subject.sort).to eq %w(agent2)
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
89
119
|
describe "#currents" do
|
90
120
|
subject { status.currents }
|
91
121
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mamiya
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shota Fukumori (sora_h)
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-09-
|
11
|
+
date: 2014-09-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -28,16 +28,16 @@ dependencies:
|
|
28
28
|
name: aws-sdk-core
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 2.0.0
|
33
|
+
version: 2.0.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 2.0.0
|
40
|
+
version: 2.0.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: term-ansicolor
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|