kontena-cli 1.2.0.pre2 → 1.2.0.pre3

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: fc1d241dbb42a8927a437e28fee00aba525bea78
4
- data.tar.gz: f12240579934c0bad6f3d441c2744f0f5e9a5f8d
3
+ metadata.gz: fbe93b31f3b0185a1f79d87967898a48dd6c3a8b
4
+ data.tar.gz: d94145ce8dbb0289a75785293802b25f8a29e48f
5
5
  SHA512:
6
- metadata.gz: 5137972ce9856d048eb8e972f8e20bea52c75a014e04f12a2d34290e870830c2d321fd8a2f264243f65aa12ab8446e3b6b2d1fe8cca5b8b036db947789e4d96b
7
- data.tar.gz: 064fbf5dc12b11581a36b83ccd96fc961a23fdc5decb1995c1dd15cc8d2793ade68c060eb05dc87e38da4ff1d5f2f3332ac397c01333d0e057729fa06deb4ae1
6
+ metadata.gz: b6f6a68a4ef272bdc3f8ef941e155d7536eb3c429fd726dc00d98fe8ee6cd15a39f1f600ad218f7d1041a33db88d01a23f4d6d692ef0af1f2ad9b25de3a54725
7
+ data.tar.gz: 1e0552a145da0f8cebebe1ef1305052385f25077b7d903d58a4bc4f4fda7622e323e712af13b2bcce79319fc0950d55e59c01ae4cd63f97b8c5876d3ff2b0c2c
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.2.0.pre2
1
+ 1.2.0.pre3
@@ -32,7 +32,7 @@ module Kontena
32
32
 
33
33
  invite_response = nil
34
34
  spinner "Creating user #{cloud_user_data[:email]} into Kontena Master" do |spin|
35
- invite_response = Kontena.run("master users invite --external-id #{cloud_user_data[:id]} --return #{cloud_user_data[:email].shellescape}", returning: :result)
35
+ invite_response = Kontena.run(["master", "user", "invite", "--external-id", cloud_user_data[:id], "--return", cloud_user_data[:email]], returning: :result)
36
36
  unless invite_response.kind_of?(Hash) && invite_response.has_key?('invite_code')
37
37
  spin.fail
38
38
  end
@@ -44,7 +44,7 @@ module Kontena
44
44
  role_status = nil
45
45
 
46
46
  spinner "Adding master_admin role for #{cloud_user_data[:email]}" do |spin|
47
- role_status = Kontena.run("master users role add --silent master_admin #{cloud_user_data[:email].shellescape}")
47
+ role_status = Kontena.run(["master", "user", "role", "add", "--silent", "master_admin", cloud_user_data[:email]])
48
48
  spin.fail if role_status.to_i > 0
49
49
  end
50
50
 
@@ -52,7 +52,7 @@ module Kontena
52
52
 
53
53
  if current_master.grid
54
54
  spinner "Adding #{cloud_user_data[:email]} to grid '#{current_master.grid}'" do |spin|
55
- grid_add_status = Kontena.run("grid user add --grid #{current_master.grid} #{cloud_user_data[:email].shellescape}")
55
+ grid_add_status = Kontena.run(["grid", "user", "add", "--grid", current_master.grid, cloud_user_data[:email]])
56
56
  spin.fail if grid_add_status.to_i > 0
57
57
  end
58
58
  end
@@ -61,7 +61,7 @@ module Kontena
61
61
 
62
62
  new_user_token = nil
63
63
  spinner "Creating an access token for #{cloud_user_data[:email]}" do |spin|
64
- new_user_token = Kontena.run("master token create -e 0 -s user --return -u #{cloud_user_data[:email].shellescape}", returning: :result)
64
+ new_user_token = Kontena.run(["master", "token", "create", "-e", "0", "-s", "user", "--return", "-u", cloud_user_data[:email]], returning: :result)
65
65
  end
66
66
 
67
67
  master_name = current_master.name.dup
@@ -39,7 +39,7 @@ module Kontena::Cli::Master::User
39
39
  puts " * command: kontena master join #{current_master.url} #{response['invite_code']}"
40
40
  end
41
41
  roles.each do |role|
42
- Kontena.run("master users role add #{role.shellescape} #{email.shellescape}")
42
+ Kontena.run(["master", "user", "role", "add", role, email])
43
43
  end
44
44
  rescue => ex
45
45
  $stderr.puts pastel.red("Failed to invite #{email}")
@@ -10,6 +10,13 @@ module Kontena::Cli::Nodes
10
10
  require_api_url
11
11
  require_current_grid
12
12
  token = require_token
13
+
14
+ node = client(token).get("nodes/#{current_grid}/#{node_id}")
15
+
16
+ if node['connected']
17
+ exit_with_error "Node #{node['name']} is still online. You must terminate the node before removing it."
18
+ end
19
+
13
20
  confirm_command(node_id) unless forced?
14
21
 
15
22
  spinner "Removing #{node_id.colorize(:cyan)} node from #{current_grid.colorize(:cyan)} grid " do
@@ -18,7 +18,7 @@ module Kontena::Cli::Nodes
18
18
  exit_with_error "Cannot combine --any with a node name" if node_id && any?
19
19
 
20
20
  if node_id
21
- node = client.get("grids/#{current_grid}/nodes/#{node_id}")
21
+ node = client.get("nodes/#{current_grid}/#{node_id}")
22
22
  elsif any?
23
23
  nodes = client.get("grids/#{current_grid}/nodes")['nodes']
24
24
  node = nodes.select{ |node| node['connected'] }.first
@@ -110,6 +110,11 @@ module Kontena::Cli::Stacks
110
110
  def generate_volumes(yaml_volumes)
111
111
  return [] unless yaml_volumes
112
112
  yaml_volumes.map do |name, config|
113
+ if config['external'].is_a?(TrueClass)
114
+ config['external'] = name
115
+ elsif config['external']['name']
116
+ config['external'] = config['external']['name']
117
+ end
113
118
  config.merge('name' => name)
114
119
  end
115
120
  end
@@ -92,21 +92,7 @@ module Kontena::Cli::Stacks
92
92
  yaml['volumes'].each do |volume, options|
93
93
  if options.is_a?(Hash)
94
94
  option_errors = validate_volume_options(options)
95
- if option_errors.valid?
96
- if !options.key?('driver') && options.key?('driver_opts')
97
- result[:errors] << { 'volumes' => { volume => { 'driver_opts' => 'defined without defining driver' } } }
98
- end
99
- if options.key?('external')
100
- unless options['external'].is_a?(FalseClass)
101
- ['driver', 'driver_opts', 'scope'].each do |key|
102
- result[:errors] << { 'volumes' => { volume => { key => 'specified together with external' } } } if options.key?(key)
103
- end
104
- end
105
- end
106
- if options.key?('driver') && !options.key?('scope')
107
- result[:errors] << { 'volumes' => { volume => { 'scope' => 'required value missing' } } }
108
- end
109
- else
95
+ unless option_errors.valid?
110
96
  result[:errors] << { 'volumes' => { volume => option_errors.errors } }
111
97
  end
112
98
  else
@@ -7,11 +7,14 @@ module Kontena::Cli::Volumes
7
7
 
8
8
  banner "Removes a volume"
9
9
  parameter 'VOLUME', 'Volume'
10
+ option "--force", :flag, "Force remove", default: false, attribute_name: :forced
10
11
 
11
12
  requires_current_master
12
13
  requires_current_master_token
13
14
 
14
15
  def execute
16
+ confirm_command(volume) unless forced?
17
+
15
18
  spinner "Removing volume #{pastel.cyan(volume)} " do
16
19
  remove_volume(volume)
17
20
  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: 1.2.0.pre2
4
+ version: 1.2.0.pre3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kontena, Inc
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-04-05 00:00:00.000000000 Z
11
+ date: 2017-04-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler