kontena-cli 0.17.0.pre5 → 1.0.0.pre1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 449b75212c33f152d3b6d1179301ad0da967b5a2
|
4
|
+
data.tar.gz: a4190acf5dbd76ddd258afd7aafd7aa186d3e606
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5689de9e2585507122dde4432c24c3d58bcaec6acf8ff93748f1611449e2c337a52ae608ecf4abf853fdfdee039b990baa7cab7bff870853cb4f5afe603cdbd4
|
7
|
+
data.tar.gz: 5531cc8ff20f5477c1912f06fabf78c73cbe44531141fc60db08430857191605d59fff266122cba3d4c733cb2338498944abe117b0decacb9ebdbe6963dcfe87
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
1.0.0.pre1
|
@@ -7,29 +7,28 @@ module Kontena::Cli::Stacks
|
|
7
7
|
include Common
|
8
8
|
|
9
9
|
parameter "NAME", "Stack name"
|
10
|
-
|
11
|
-
attr_reader :services
|
10
|
+
parameter "[SERVICES] ...", "Stack services to monitor", attribute_name: 'selected_services'
|
12
11
|
|
13
12
|
def execute
|
14
13
|
require_api_url
|
15
14
|
token = require_token
|
16
15
|
|
17
16
|
response = client(token).get("grids/#{current_grid}/services?stack=#{name}")
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
if services.size > 0
|
22
|
-
show_monitor(services)
|
23
|
-
elsif !service_list.empty?
|
24
|
-
puts "No such service: #{service_list.join(', ')}".colorize(:red)
|
17
|
+
services = response['services']
|
18
|
+
if selected_services
|
19
|
+
services.delete_if{ |s| !selected_services.include?(s['name'])}
|
25
20
|
end
|
21
|
+
show_monitor(token, services)
|
26
22
|
end
|
27
23
|
|
28
|
-
|
24
|
+
# @param [String] token
|
25
|
+
# @param [Array<Hash>]
|
26
|
+
def show_monitor(token, services)
|
29
27
|
loop do
|
30
28
|
nodes = {}
|
31
29
|
services.each do |service|
|
32
30
|
result = client(token).get("services/#{service['id']}/containers") rescue nil
|
31
|
+
service['instances'] = 0
|
33
32
|
if result
|
34
33
|
service['instances'] = result['containers'].size
|
35
34
|
result['containers'].each do |container|
|
@@ -78,8 +77,10 @@ module Kontena::Cli::Stacks
|
|
78
77
|
|
79
78
|
def colors
|
80
79
|
if(@colors.nil? || @colors.size == 0)
|
81
|
-
@colors =
|
82
|
-
|
80
|
+
@colors = %i(
|
81
|
+
red green yellow blue magenta cyan bright_red bright_green
|
82
|
+
bright_yellow bright_blue bright_magenta bright_cyan
|
83
|
+
)
|
83
84
|
end
|
84
85
|
@colors
|
85
86
|
end
|
@@ -7,7 +7,7 @@ module Kontena::Cli::Stacks
|
|
7
7
|
include Common
|
8
8
|
|
9
9
|
parameter "NAME", "Stack name"
|
10
|
-
parameter "FILE", "Kontena stack file"
|
10
|
+
parameter "[FILE]", "Kontena stack file", default: "kontena.yml"
|
11
11
|
option '--deploy', :flag, 'Deploy after upgrade'
|
12
12
|
|
13
13
|
def execute
|
@@ -18,7 +18,7 @@ module Kontena::Cli::Stacks
|
|
18
18
|
spinner "Upgrading stack #{pastel.cyan(name)} " do
|
19
19
|
update_stack(token, stack)
|
20
20
|
end
|
21
|
-
Kontena.run("stack deploy #{name}")
|
21
|
+
Kontena.run("stack deploy #{name}") if deploy?
|
22
22
|
end
|
23
23
|
|
24
24
|
def update_stack(token, stack)
|
@@ -15,19 +15,34 @@ describe Kontena::Cli::Stacks::UpgradeCommand do
|
|
15
15
|
end
|
16
16
|
|
17
17
|
it 'requires api url' do
|
18
|
-
allow(subject).to receive(:
|
18
|
+
allow(subject).to receive(:require_config_file).and_return(true)
|
19
|
+
allow(subject).to receive(:stack_from_yaml).with('./path/to/kontena.yml').and_return(stack)
|
19
20
|
expect(subject).to receive(:require_api_url).once
|
20
21
|
subject.run(['stack-name', './path/to/kontena.yml'])
|
21
22
|
end
|
22
23
|
|
23
24
|
it 'requires token' do
|
24
|
-
allow(subject).to receive(:
|
25
|
+
allow(subject).to receive(:require_config_file).and_return(true)
|
26
|
+
allow(subject).to receive(:stack_from_yaml).with('./path/to/kontena.yml').and_return(stack)
|
25
27
|
expect(subject).to receive(:require_token).and_return(token)
|
26
28
|
subject.run(['stack-name', './path/to/kontena.yml'])
|
27
29
|
end
|
28
30
|
|
31
|
+
it 'requires stack file' do
|
32
|
+
allow(subject).to receive(:stack_from_yaml).with('./path/to/kontena.yml').and_return(stack)
|
33
|
+
allow(subject).to receive(:require_token).and_return(token)
|
34
|
+
expect(subject).to receive(:require_config_file).with('./path/to/kontena.yml').and_return(true)
|
35
|
+
subject.run(['stack-name', './path/to/kontena.yml'])
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'uses kontena.yml as default stack file' do
|
39
|
+
allow(subject).to receive(:require_token).and_return(token)
|
40
|
+
expect(subject).to receive(:require_config_file).with('kontena.yml').and_return(true)
|
41
|
+
expect(subject).to receive(:stack_from_yaml).with('kontena.yml').and_return(stack)
|
42
|
+
subject.run(['stack-name'])
|
43
|
+
end
|
44
|
+
|
29
45
|
it 'sends stack to master' do
|
30
|
-
|
31
46
|
allow(subject).to receive(:require_config_file).with('./path/to/kontena.yml').and_return(true)
|
32
47
|
allow(subject).to receive(:stack_from_yaml).with('./path/to/kontena.yml').and_return(stack)
|
33
48
|
expect(client).to receive(:put).with(
|
@@ -46,5 +61,30 @@ describe Kontena::Cli::Stacks::UpgradeCommand do
|
|
46
61
|
)
|
47
62
|
subject.run(['stack-b', './path/to/kontena.yml'])
|
48
63
|
end
|
64
|
+
|
65
|
+
context '--deploy option' do
|
66
|
+
context 'when given' do
|
67
|
+
it 'triggers deploy' do
|
68
|
+
allow(subject).to receive(:require_config_file).with('./path/to/kontena.yml').and_return(true)
|
69
|
+
allow(subject).to receive(:stack_from_yaml).with('./path/to/kontena.yml').and_return(stack)
|
70
|
+
allow(client).to receive(:put).with(
|
71
|
+
'stacks/test-grid/stack-a', anything
|
72
|
+
).and_return({})
|
73
|
+
expect(Kontena).to receive(:run).with("stack deploy stack-a").once
|
74
|
+
subject.run(['--deploy', 'stack-a', './path/to/kontena.yml'])
|
75
|
+
end
|
76
|
+
end
|
77
|
+
context 'when not given' do
|
78
|
+
it 'does not trigger deploy' do
|
79
|
+
allow(subject).to receive(:require_config_file).with('./path/to/kontena.yml').and_return(true)
|
80
|
+
allow(subject).to receive(:stack_from_yaml).with('./path/to/kontena.yml').and_return(stack)
|
81
|
+
allow(client).to receive(:put).with(
|
82
|
+
'stacks/test-grid/stack-a', anything
|
83
|
+
).and_return({})
|
84
|
+
expect(Kontena).not_to receive(:run).with("stack deploy stack-a")
|
85
|
+
subject.run(['stack-a', './path/to/kontena.yml'])
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
49
89
|
end
|
50
90
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kontena-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0.pre1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kontena, Inc
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-11-
|
11
|
+
date: 2016-11-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|