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 +4 -4
- data/VERSION +1 -1
- data/lib/kontena/callbacks/master/deploy/70_invite_self_after_deploy.rb +4 -4
- data/lib/kontena/cli/master/user/invite_command.rb +1 -1
- data/lib/kontena/cli/nodes/remove_command.rb +7 -0
- data/lib/kontena/cli/nodes/ssh_command.rb +1 -1
- data/lib/kontena/cli/stacks/common.rb +5 -0
- data/lib/kontena/cli/stacks/yaml/validator_v3.rb +1 -15
- data/lib/kontena/cli/volumes/remove_command.rb +3 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fbe93b31f3b0185a1f79d87967898a48dd6c3a8b
|
4
|
+
data.tar.gz: d94145ce8dbb0289a75785293802b25f8a29e48f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b6f6a68a4ef272bdc3f8ef941e155d7536eb3c429fd726dc00d98fe8ee6cd15a39f1f600ad218f7d1041a33db88d01a23f4d6d692ef0af1f2ad9b25de3a54725
|
7
|
+
data.tar.gz: 1e0552a145da0f8cebebe1ef1305052385f25077b7d903d58a4bc4f4fda7622e323e712af13b2bcce79319fc0950d55e59c01ae4cd63f97b8c5876d3ff2b0c2c
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.2.0.
|
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
|
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
|
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
|
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
|
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
|
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("
|
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
|
-
|
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.
|
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-
|
11
|
+
date: 2017-04-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|