kontena-cli 0.17.0.pre5 → 1.0.0.pre1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3835d40a477a0fb0ab94945857b84a1ab33d006f
4
- data.tar.gz: 5f177bfca7d455d0861ddad86d3f83c79512697a
3
+ metadata.gz: 449b75212c33f152d3b6d1179301ad0da967b5a2
4
+ data.tar.gz: a4190acf5dbd76ddd258afd7aafd7aa186d3e606
5
5
  SHA512:
6
- metadata.gz: 291def87302aa7427d81ee28ff0040f4bc4b8d235f775bf42530e243fdf461c1e5022e853bd88a3807b887470e893cc469f0eb6c40315041c80bdd2f2611ebbf
7
- data.tar.gz: 15705cab01e27db243cbe6d9be9c7b18a748027755ab7674b1f34ac5482b9c036d9d005e2cfb8cb12eab7a316532a0b0330976b648fdb42768b59f665771ba9d
6
+ metadata.gz: 5689de9e2585507122dde4432c24c3d58bcaec6acf8ff93748f1611449e2c337a52ae608ecf4abf853fdfdee039b990baa7cab7bff870853cb4f5afe603cdbd4
7
+ data.tar.gz: 5531cc8ff20f5477c1912f06fabf78c73cbe44531141fc60db08430857191605d59fff266122cba3d4c733cb2338498944abe117b0decacb9ebdbe6963dcfe87
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.17.0.pre5
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
- show_monitor(response['services'])
19
-
20
- @services = services_from_yaml(filename, service_list, service_prefix)
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
- def show_monitor(services)
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 = [:green, :magenta, :yellow, :cyan, :red,
82
- :light_green, :light_yellow, :ligh_magenta, :light_cyan, :light_red]
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(:stack_from_yaml).with('kontena.yml').and_return(stack)
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(:stack_from_yaml).with('kontena.yml').and_return(stack)
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.17.0.pre5
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-23 00:00:00.000000000 Z
11
+ date: 2016-11-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler