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: 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