kontena-cli 0.16.1.rc1 → 0.16.1.rc2
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: be3c8f5234712118a790b7f856228bb23ffbf71f
|
|
4
|
+
data.tar.gz: 7ecf734b79afacd69b7e627d76d39713f72f42dc
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c100040a30909a54ce1c780f0a18702a318f18bdf17e0c478ca41caf7b1cdac0f6a7a49e86608a65d86d02b4d5a382212ac98e561bad3267bced1c0980754a20
|
|
7
|
+
data.tar.gz: c9c71d667d60fa94d37fc73c87008d57e6e44d391e67f23805e932148db29d86437ef69377eaab0bc379523f634aad1faae36c3bc22265deae746e71223b49f8
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.16.1.
|
|
1
|
+
0.16.1.rc2
|
|
@@ -34,8 +34,8 @@ module Kontena::Cli::Cloud::Master
|
|
|
34
34
|
|
|
35
35
|
response = cloud_client.post('user/masters', { data: { attributes: attributes } })
|
|
36
36
|
exit_with_error "Failed (invalid response)" unless response.kind_of?(Hash)
|
|
37
|
-
exit_with_error "Failed (no data)" unless response['data']
|
|
38
37
|
exit_with_error "Failed: #{response['error']}" if response['error']
|
|
38
|
+
exit_with_error "Failed (no data)" unless response['data']
|
|
39
39
|
response
|
|
40
40
|
end
|
|
41
41
|
|
|
@@ -100,13 +100,14 @@ module Kontena::Cli::Cloud::Master
|
|
|
100
100
|
args = []
|
|
101
101
|
args << "--provider #{self.provider.shellescape}" if self.provider
|
|
102
102
|
args << "--version #{self.version.shellescape}" if self.version
|
|
103
|
+
args << self.cloud_master_id
|
|
103
104
|
Kontena.run("cloud master update #{args.join(' ')}")
|
|
104
105
|
end
|
|
105
106
|
end
|
|
106
107
|
end
|
|
107
108
|
else
|
|
108
109
|
response = spinner "Registering current Kontena Master '#{current_master.name}' #{" as '#{new_name}' " unless new_name == current_master.name}to Kontena Cloud" do
|
|
109
|
-
register(new_name, current_master.url)
|
|
110
|
+
register(new_name, current_master.url, self.provider, nil, self.version)
|
|
110
111
|
end
|
|
111
112
|
end
|
|
112
113
|
|
|
@@ -98,7 +98,7 @@ module Kontena::Cli::Master
|
|
|
98
98
|
config.current_server = existing_server.name
|
|
99
99
|
existing_server
|
|
100
100
|
else
|
|
101
|
-
new_server = Kontena::Cli::Config::Server.new(url:
|
|
101
|
+
new_server = Kontena::Cli::Config::Server.new(url: url, name: self.name)
|
|
102
102
|
config.servers << new_server
|
|
103
103
|
config.current_server = new_server.name
|
|
104
104
|
new_server
|
|
@@ -127,17 +127,19 @@ module Kontena::Cli::Master
|
|
|
127
127
|
|
|
128
128
|
if response['server'] && response['server']['name']
|
|
129
129
|
server.name ||= response['server']['name']
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
if response['user']
|
|
130
133
|
server.username = response['user']['name'] || response['user']['email']
|
|
131
|
-
config.current_server = server.name
|
|
132
|
-
else
|
|
133
|
-
raise Kontena::Errors::StandardError.new(500, 'Code exchange invalid response')
|
|
134
134
|
end
|
|
135
135
|
|
|
136
136
|
server.token = Kontena::Cli::Config::Token.new(
|
|
137
137
|
access_token: response['access_token'],
|
|
138
138
|
refresh_token: response['refresh_token'],
|
|
139
|
-
expires_at: response['expires_in']
|
|
139
|
+
expires_at: in_to_at(response['expires_in']),
|
|
140
140
|
)
|
|
141
|
+
|
|
142
|
+
config.current_server = server.name
|
|
141
143
|
end
|
|
142
144
|
true
|
|
143
145
|
end
|
|
@@ -200,7 +202,7 @@ module Kontena::Cli::Master
|
|
|
200
202
|
sputs url
|
|
201
203
|
else
|
|
202
204
|
puts "Visit this URL in a browser:"
|
|
203
|
-
puts "
|
|
205
|
+
puts "#{url}"
|
|
204
206
|
puts
|
|
205
207
|
puts "Then complete the authentication by using:"
|
|
206
208
|
puts "kontena master login --code <CODE FROM BROWSER>"
|
|
@@ -269,10 +271,12 @@ module Kontena::Cli::Master
|
|
|
269
271
|
server.name = self.name
|
|
270
272
|
elsif response['server'] && response['server']['name']
|
|
271
273
|
server.name = response['server']['name']
|
|
272
|
-
elsif config.find_server('
|
|
273
|
-
|
|
274
|
+
elsif config.find_server('kontena-master')
|
|
275
|
+
new_name = "kontena-master-2"
|
|
276
|
+
new_name.succ! until config.find_server(new_name).nil?
|
|
277
|
+
server.name = new_name
|
|
274
278
|
else
|
|
275
|
-
server.name = "
|
|
279
|
+
server.name = "kontena-master"
|
|
276
280
|
end
|
|
277
281
|
end
|
|
278
282
|
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
require_relative "../../../../spec_helper"
|
|
2
|
+
require 'kontena/cli/cloud/master/add_command'
|
|
3
|
+
|
|
4
|
+
describe Kontena::Cli::Cloud::Master::AddCommand do
|
|
5
|
+
|
|
6
|
+
include ClientHelpers
|
|
7
|
+
|
|
8
|
+
let(:subject) do
|
|
9
|
+
described_class.new(File.basename($0))
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
let(:client) { double }
|
|
13
|
+
|
|
14
|
+
before(:each) do
|
|
15
|
+
allow(subject).to receive(:cloud_client).and_return(client)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
describe "#register" do
|
|
19
|
+
it 'posts valid data to cloud' do
|
|
20
|
+
expect(client).to receive(:post).with(
|
|
21
|
+
'user/masters',
|
|
22
|
+
hash_including(
|
|
23
|
+
data: {
|
|
24
|
+
attributes: {
|
|
25
|
+
'name' => 'name',
|
|
26
|
+
'url' => 'url',
|
|
27
|
+
'provider' => 'provider',
|
|
28
|
+
'redirect-uri' => 'redirect-uri',
|
|
29
|
+
'version' => 'version',
|
|
30
|
+
'owner' => 'owner',
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
)
|
|
34
|
+
).and_return({'data' => { attributes: {}}})
|
|
35
|
+
subject.register("name", "url", "provider", "redirect-uri", "version", "owner")
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
it 'raises if cloud respons with error' do
|
|
39
|
+
expect(client).to receive(:post).and_return({'error' => 'foofoo'})
|
|
40
|
+
expect(subject).to receive(:exit_with_error).at_least(:once)
|
|
41
|
+
subject.register("name", "url", "provider", "redirect-uri", "version", "owner")
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
describe "#new_cloud_master_name" do
|
|
46
|
+
it 'returns a suffixed name if duplicates exist' do
|
|
47
|
+
allow(subject).to receive(:cloud_masters).and_return(
|
|
48
|
+
[
|
|
49
|
+
{
|
|
50
|
+
"attributes" => {
|
|
51
|
+
"name" => "foofoo"
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
]
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
expect(subject.new_cloud_master_name("foofoo2")).to eq "foofoo2"
|
|
58
|
+
expect(subject.new_cloud_master_name("foofoo")).to eq "foofoo-2"
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
describe '#register_current' do
|
|
63
|
+
let(:current_master) { Kontena::Cli::Config::Server.new(name: 'foofoo', url: 'foofoofoo') }
|
|
64
|
+
let(:success_response) {
|
|
65
|
+
{
|
|
66
|
+
'data' => {
|
|
67
|
+
'attributes' => {
|
|
68
|
+
'client-id' => '123',
|
|
69
|
+
'client-secret' => '345',
|
|
70
|
+
'provider' => 'foo',
|
|
71
|
+
'version' => '0.0.0',
|
|
72
|
+
'owner' => 'pwner'
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
before(:each) do
|
|
79
|
+
allow(subject).to receive(:require_api_url).and_return(true)
|
|
80
|
+
allow(subject).to receive(:require_token).and_return(true)
|
|
81
|
+
allow(subject).to receive(:force?).and_return(true)
|
|
82
|
+
allow(subject).to receive(:current_master).and_return(current_master)
|
|
83
|
+
allow(subject).to receive(:cloud_masters).and_return([])
|
|
84
|
+
allow(client).to receive(:post).and_return(success_response)
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
it 'calls register with proper arguments without cloud-master-id' do
|
|
88
|
+
expect(subject).to receive(:register) do |name, url, provider, redirect_uri, version|
|
|
89
|
+
expect(name).to eq current_master.name
|
|
90
|
+
expect(url).to eq current_master.url
|
|
91
|
+
expect(provider).to eq 'provider'
|
|
92
|
+
expect(version).to eq '10.10.10'
|
|
93
|
+
expect(redirect_uri).to be_nil
|
|
94
|
+
end.and_return(success_response)
|
|
95
|
+
|
|
96
|
+
subject.provider = 'provider'
|
|
97
|
+
subject.version = '10.10.10'
|
|
98
|
+
|
|
99
|
+
expect(Kontena).to receive(:run).with('master config import --force --preset kontena_auth_provider')
|
|
100
|
+
expect(Kontena).to receive(:run).with('master config set oauth2.client_id=123 oauth2.client_secret=345 server.root_url=foofoofoo server.name=foofoo cloud.provider_is_kontena=true')
|
|
101
|
+
|
|
102
|
+
subject.register_current
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
it 'calls register with proper arguments with cloud-master-id' do
|
|
106
|
+
expect(subject).to receive(:get_existing).with('abcd').and_return(success_response)
|
|
107
|
+
|
|
108
|
+
subject.provider = 'provider'
|
|
109
|
+
subject.version = '10.10.10'
|
|
110
|
+
subject.cloud_master_id = 'abcd'
|
|
111
|
+
|
|
112
|
+
expect(Kontena).to receive(:run).with('cloud master update --provider provider --version 10.10.10 abcd').and_return(true)
|
|
113
|
+
expect(Kontena).to receive(:run).with('master config import --force --preset kontena_auth_provider').and_return(true)
|
|
114
|
+
expect(Kontena).to receive(:run).with('master config set oauth2.client_id=123 oauth2.client_secret=345 server.root_url=foofoofoo server.name=foofoo cloud.provider_is_kontena=true').and_return(true)
|
|
115
|
+
|
|
116
|
+
subject.register_current
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
require_relative "../../../spec_helper"
|
|
2
|
+
require 'kontena/cli/master/login_command'
|
|
3
|
+
|
|
4
|
+
describe Kontena::Cli::Master::LoginCommand do
|
|
5
|
+
|
|
6
|
+
include ClientHelpers
|
|
7
|
+
|
|
8
|
+
let(:subject) do
|
|
9
|
+
described_class.new(File.basename($0))
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
let(:config) { double }
|
|
13
|
+
|
|
14
|
+
before(:each) do
|
|
15
|
+
allow(subject).to receive(:config).and_return(config)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
describe '#use_current_master_if_available' do
|
|
19
|
+
context 'url not given' do
|
|
20
|
+
it 'sets local url current master url if defined' do
|
|
21
|
+
expect(config).to receive(:current_master).twice.and_return(Kontena::Cli::Config::Server.new(url: 'foo'))
|
|
22
|
+
expect(subject).to receive(:url=).with('foo')
|
|
23
|
+
expect(subject.use_current_master_if_available).to be_truthy
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it 'raises if no current master and no url' do
|
|
27
|
+
subject.url = nil
|
|
28
|
+
expect(config).to receive(:current_master).and_return(nil)
|
|
29
|
+
expect(subject).to receive(:exit_with_error)
|
|
30
|
+
subject.use_current_master_if_available
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
context 'url given' do
|
|
35
|
+
it 'returns nil' do
|
|
36
|
+
subject.url = 'foofoo'
|
|
37
|
+
expect(subject.use_current_master_if_available).to be_nil
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
describe '#use_master_by_name' do
|
|
43
|
+
context 'url given' do
|
|
44
|
+
it 'should return nil when url looks like an url' do
|
|
45
|
+
subject.url = 'http://foo'
|
|
46
|
+
expect(subject).not_to receive(:config)
|
|
47
|
+
expect(subject.use_master_by_name).to be_nil
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
context 'name given' do
|
|
52
|
+
it 'should try to look for servers by name' do
|
|
53
|
+
expect(config).to receive(:find_server).and_return(Kontena::Cli::Config::Server.new(url: 'https://foo'))
|
|
54
|
+
subject.url = 'foomaster'
|
|
55
|
+
expect(subject).to receive(:url=).with('https://foo')
|
|
56
|
+
subject.use_master_by_name
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
describe '#find_server_or_create_new' do
|
|
62
|
+
|
|
63
|
+
let(:existing_server) { Kontena::Cli::Config::Server.new(url: 'https://foo', name: 'existing') }
|
|
64
|
+
|
|
65
|
+
it 'should try to pick up an existing server from config' do
|
|
66
|
+
subject.name = 'name'
|
|
67
|
+
expect(config).to receive(:find_server_by).with(url: 'foo', name: 'name').and_return(existing_server)
|
|
68
|
+
expect(config).to receive(:current_server=).with(existing_server.name)
|
|
69
|
+
expect(subject.find_server_or_create_new('foo')).to eq existing_server
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
it 'should create a new server instance if existing not found' do
|
|
73
|
+
expect(config).to receive(:find_server_by).and_return(nil)
|
|
74
|
+
subject.name = "foofoo1"
|
|
75
|
+
servers = []
|
|
76
|
+
expect(config).to receive(:servers).and_return(servers)
|
|
77
|
+
expect(config).to receive(:current_server=).with('foofoo1')
|
|
78
|
+
expect(subject.find_server_or_create_new('http://foo').name).to eq 'foofoo1'
|
|
79
|
+
expect(servers.first.url).to eq 'http://foo'
|
|
80
|
+
expect(servers.first.name).to eq 'foofoo1'
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
describe '#set_server_token' do
|
|
85
|
+
let(:server) { Kontena::Cli::Config::Server.new(name: 'some_server') }
|
|
86
|
+
let(:token) { Kontena::Cli::Config::Token.new(access_token: 'bartoken') }
|
|
87
|
+
|
|
88
|
+
it 'should set token from parameters as the servers access token' do
|
|
89
|
+
subject.token = 'footoken'
|
|
90
|
+
expect(server).to receive(:token=) do |token|
|
|
91
|
+
expect(token.access_token).to eq 'footoken'
|
|
92
|
+
end
|
|
93
|
+
subject.set_server_token(server)
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
it 'should clear servers existing token when forced' do
|
|
97
|
+
subject.force = true
|
|
98
|
+
server.token = token
|
|
99
|
+
subject.set_server_token(server)
|
|
100
|
+
expect(server.access_token).to be_nil
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
it 'should add a blank token if server has none' do
|
|
104
|
+
server.token = nil
|
|
105
|
+
subject.set_server_token(server)
|
|
106
|
+
expect(server.access_token).to be_nil
|
|
107
|
+
expect(server.token.parent_name).to eq 'some_server'
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
it 'should keep the existing token unless a new one is supplied' do
|
|
111
|
+
server.token = token
|
|
112
|
+
subject.token = nil
|
|
113
|
+
subject.force = false
|
|
114
|
+
subject.set_server_token(server)
|
|
115
|
+
expect(server.token).to eq token
|
|
116
|
+
end
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
describe '#use_authorization_code' do
|
|
120
|
+
let(:client) { double }
|
|
121
|
+
|
|
122
|
+
before(:each) do
|
|
123
|
+
allow(subject.config).to receive(:current_server=)
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
it 'should set the local name to name provided from server if no name was set' do
|
|
127
|
+
expect(Kontena::Client).to receive(:new).and_return(client)
|
|
128
|
+
expect(client).to receive(:exchange_code).with('abcd1234').and_return(
|
|
129
|
+
{
|
|
130
|
+
'access_token' => 'token',
|
|
131
|
+
'refresh_token' => 'refresh_token',
|
|
132
|
+
'expires_in' => 1000,
|
|
133
|
+
'server' => {
|
|
134
|
+
'name' => 'foofoo1'
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
)
|
|
138
|
+
|
|
139
|
+
server = Kontena::Cli::Config::Server.new(name: nil, url: 'http://foo')
|
|
140
|
+
subject.use_authorization_code(server, 'abcd1234')
|
|
141
|
+
expect(server.token.access_token).to eq 'token'
|
|
142
|
+
expect(server.name).to eq 'foofoo1'
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
it 'should not touch the local name if the server already has a name' do
|
|
146
|
+
expect(Kontena::Client).to receive(:new).and_return(client)
|
|
147
|
+
expect(client).to receive(:exchange_code).with('abcd1234').and_return(
|
|
148
|
+
{
|
|
149
|
+
'access_token' => 'token',
|
|
150
|
+
'refresh_token' => 'refresh_token',
|
|
151
|
+
'expires_in' => 1000,
|
|
152
|
+
'server' => {
|
|
153
|
+
'name' => 'foofoo1'
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
)
|
|
157
|
+
|
|
158
|
+
server = Kontena::Cli::Config::Server.new(name: 'foofoo2', url: 'http://foo')
|
|
159
|
+
subject.use_authorization_code(server, 'abcd1234')
|
|
160
|
+
expect((Time.now.utc.to_i+800..Time.now.utc.to_i+1100).cover?(server.token.expires_at.to_i)).to be_truthy
|
|
161
|
+
expect(server.name).to eq 'foofoo2'
|
|
162
|
+
end
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
describe '#in_to_at' do
|
|
166
|
+
it 'should return nil when expires_in is <0 or nil' do
|
|
167
|
+
expect(subject.in_to_at(0)).to be_nil
|
|
168
|
+
expect(subject.in_to_at(-1)).to be_nil
|
|
169
|
+
expect(subject.in_to_at(nil)).to be_nil
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
it 'should return a timestamp when expires_in is >0' do
|
|
173
|
+
time = Time.now.utc.to_i
|
|
174
|
+
expect((time + 80..time + 120).cover?(subject.in_to_at(100))).to be_truthy
|
|
175
|
+
end
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
describe '#update_server_name' do
|
|
179
|
+
let(:server) { Kontena::Cli::Config::Server.new }
|
|
180
|
+
let(:response) { { 'access_token' => 'token', 'server' => { 'name' => 'foo2' } } }
|
|
181
|
+
|
|
182
|
+
it 'should do nothing if server already has a name' do
|
|
183
|
+
server.name = 'foofoofoo'
|
|
184
|
+
subject.update_server_name(server, response)
|
|
185
|
+
expect(server.name).to eq 'foofoofoo'
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
it 'should set the name from name parameter if set' do
|
|
189
|
+
subject.name = 'abcd'
|
|
190
|
+
subject.update_server_name(server, response)
|
|
191
|
+
expect(server.name).to eq 'abcd'
|
|
192
|
+
end
|
|
193
|
+
|
|
194
|
+
it 'should set the name from server response if returned' do
|
|
195
|
+
subject.update_server_name(server, response)
|
|
196
|
+
expect(server.name).to eq 'foo2'
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
it 'should use a default name if no other can be figured out' do
|
|
200
|
+
expect(subject.config).to receive(:find_server).with('kontena-master').and_return(nil)
|
|
201
|
+
subject.update_server_name(server, response.reject{|k,v| k=='server'})
|
|
202
|
+
expect(server.name).to eq 'kontena-master'
|
|
203
|
+
end
|
|
204
|
+
|
|
205
|
+
it 'should use a default name with suffix if one already exists' do
|
|
206
|
+
expect(subject.config).to receive(:find_server).with('kontena-master').and_return(true)
|
|
207
|
+
expect(subject.config).to receive(:find_server).with('kontena-master-2').and_return(true)
|
|
208
|
+
expect(subject.config).to receive(:find_server).with('kontena-master-3').and_return(nil)
|
|
209
|
+
subject.update_server_name(server, response.reject{|k,v| k=='server'})
|
|
210
|
+
expect(server.name).to eq 'kontena-master-3'
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
end
|
|
214
|
+
|
|
215
|
+
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.16.1.
|
|
4
|
+
version: 0.16.1.rc2
|
|
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-10-
|
|
11
|
+
date: 2016-10-31 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -416,6 +416,7 @@ files:
|
|
|
416
416
|
- spec/kontena/cli/app/yaml/validator_spec.rb
|
|
417
417
|
- spec/kontena/cli/app/yaml/validator_v2_spec.rb
|
|
418
418
|
- spec/kontena/cli/cloud/logout_command_spec.rb
|
|
419
|
+
- spec/kontena/cli/cloud/master/add_command_spec.rb
|
|
419
420
|
- spec/kontena/cli/common_spec.rb
|
|
420
421
|
- spec/kontena/cli/containers/containers_helper_spec.rb
|
|
421
422
|
- spec/kontena/cli/containers/logs_command_spec.rb
|
|
@@ -426,6 +427,7 @@ files:
|
|
|
426
427
|
- spec/kontena/cli/helpers/log_helper_spec.rb
|
|
427
428
|
- spec/kontena/cli/main_command_spec.rb
|
|
428
429
|
- spec/kontena/cli/master/current_command_spec.rb
|
|
430
|
+
- spec/kontena/cli/master/login_command_spec.rb
|
|
429
431
|
- spec/kontena/cli/master/logout_command_spec.rb
|
|
430
432
|
- spec/kontena/cli/master/use_command_spec.rb
|
|
431
433
|
- spec/kontena/cli/master/users/invite_command_spec.rb
|
|
@@ -509,6 +511,7 @@ test_files:
|
|
|
509
511
|
- spec/kontena/cli/app/yaml/validator_spec.rb
|
|
510
512
|
- spec/kontena/cli/app/yaml/validator_v2_spec.rb
|
|
511
513
|
- spec/kontena/cli/cloud/logout_command_spec.rb
|
|
514
|
+
- spec/kontena/cli/cloud/master/add_command_spec.rb
|
|
512
515
|
- spec/kontena/cli/common_spec.rb
|
|
513
516
|
- spec/kontena/cli/containers/containers_helper_spec.rb
|
|
514
517
|
- spec/kontena/cli/containers/logs_command_spec.rb
|
|
@@ -519,6 +522,7 @@ test_files:
|
|
|
519
522
|
- spec/kontena/cli/helpers/log_helper_spec.rb
|
|
520
523
|
- spec/kontena/cli/main_command_spec.rb
|
|
521
524
|
- spec/kontena/cli/master/current_command_spec.rb
|
|
525
|
+
- spec/kontena/cli/master/login_command_spec.rb
|
|
522
526
|
- spec/kontena/cli/master/logout_command_spec.rb
|
|
523
527
|
- spec/kontena/cli/master/use_command_spec.rb
|
|
524
528
|
- spec/kontena/cli/master/users/invite_command_spec.rb
|