brightbox-cli 2.3.0 → 2.3.1
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/CHANGELOG.md +8 -0
- data/Gemfile.lock +9 -1
- data/brightbox-cli.gemspec +1 -0
- data/lib/brightbox-cli/commands/login.rb +5 -6
- data/lib/brightbox-cli/config/sections.rb +1 -1
- data/lib/brightbox-cli/version.rb +1 -1
- data/spec/commands/login_spec.rb +55 -0
- data/spec/spec_helper.rb +3 -0
- data/spec/support/vcr.rb +11 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f27bf83c2b327b366e844aeb2a3d3f6734689870
|
4
|
+
data.tar.gz: 8184ccc9096fbc3117807938aca84b0c71224d49
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 961e3af440fb8e7614d47f52d60ab5ec05af1563a07e28f702f78dc25414016252b14aa580ee16c009844f9db2be737b3c7bef1418ee9db7e20eac55383dd8e8
|
7
|
+
data.tar.gz: 0c61aef7964334ececb2cd7c57351fec449a20638bbc30238badeaf4ca051fe076fcd8165d3445b23f3ebb602bd2adcbb31a6488b9e639717d20e546bab0d47b
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
### v2.3.1 / 2015-10-26
|
2
|
+
|
3
|
+
[Full Changelog](https://github.com/brightbox/brightbox-cli/compare/v2.3.0...v2.3.1)
|
4
|
+
|
5
|
+
Bug fixes:
|
6
|
+
|
7
|
+
* Fix issue when `login` command would reset custom URLs to the defaults.
|
8
|
+
|
1
9
|
### v2.3.0 / 2015-10-23
|
2
10
|
|
3
11
|
[Full Changelog](https://github.com/brightbox/brightbox-cli/compare/v2.2.0...v2.3.0)
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
brightbox-cli (2.3.
|
4
|
+
brightbox-cli (2.3.1)
|
5
5
|
fog-brightbox (>= 0.9.0)
|
6
6
|
gli (~> 2.12.0)
|
7
7
|
highline (~> 1.6.0)
|
@@ -13,8 +13,11 @@ PATH
|
|
13
13
|
GEM
|
14
14
|
remote: https://rubygems.org/
|
15
15
|
specs:
|
16
|
+
addressable (2.3.8)
|
16
17
|
builder (3.2.2)
|
17
18
|
coderay (1.0.9)
|
19
|
+
crack (0.4.2)
|
20
|
+
safe_yaml (~> 1.0.0)
|
18
21
|
diff-lcs (1.2.5)
|
19
22
|
excon (0.45.4)
|
20
23
|
fog-brightbox (0.9.0)
|
@@ -62,8 +65,12 @@ GEM
|
|
62
65
|
rspec-expectations (2.99.1)
|
63
66
|
diff-lcs (>= 1.1.3, < 2.0)
|
64
67
|
rspec-mocks (2.99.1)
|
68
|
+
safe_yaml (1.0.4)
|
65
69
|
slop (3.4.5)
|
66
70
|
vcr (2.5.0)
|
71
|
+
webmock (1.21.0)
|
72
|
+
addressable (>= 2.3.6)
|
73
|
+
crack (>= 0.3.2)
|
67
74
|
|
68
75
|
PLATFORMS
|
69
76
|
ruby
|
@@ -75,6 +82,7 @@ DEPENDENCIES
|
|
75
82
|
rake
|
76
83
|
rspec (~> 2.99)
|
77
84
|
vcr (~> 2.5)
|
85
|
+
webmock
|
78
86
|
|
79
87
|
BUNDLED WITH
|
80
88
|
1.10.6
|
data/brightbox-cli.gemspec
CHANGED
@@ -34,6 +34,7 @@ Gem::Specification.new do |s|
|
|
34
34
|
s.add_development_dependency "rake"
|
35
35
|
s.add_development_dependency "rspec", "~> 2.99"
|
36
36
|
s.add_development_dependency "vcr", "~> 2.5"
|
37
|
+
s.add_development_dependency "webmock"
|
37
38
|
|
38
39
|
s.post_install_message = <<-EOS
|
39
40
|
The CLI command is now `brightbox` with subcommands for the resources.
|
@@ -31,17 +31,16 @@ module Brightbox
|
|
31
31
|
end
|
32
32
|
raise "You must specify your Brightbox password." if password.empty?
|
33
33
|
|
34
|
-
api_url = options[:"api-url"] || DEFAULT_API_ENDPOINT
|
35
|
-
auth_url = options[:"auth-url"] || api_url
|
36
|
-
|
37
34
|
section_options = {
|
38
35
|
:client_name => config_name,
|
39
36
|
:alias => config_name,
|
40
37
|
:username => email,
|
41
|
-
:password => password
|
42
|
-
:api_url => api_url,
|
43
|
-
:auth_url => auth_url
|
38
|
+
:password => password
|
44
39
|
}
|
40
|
+
|
41
|
+
section_options[:api_url] = options[:"api-url"] if options[:"api-url"]
|
42
|
+
section_options[:auth_url] = options[:"auth-url"] if options[:"auth-url"]
|
43
|
+
|
45
44
|
section_options[:default_account] = options[:"default-account"] if options[:"default-account"]
|
46
45
|
|
47
46
|
section_options[:client_id] = options[:"application-id"] if options[:"application-id"]
|
@@ -24,7 +24,7 @@ module Brightbox
|
|
24
24
|
config_section["api_url"] = DEFAULT_API_ENDPOINT unless config_section["api_url"]
|
25
25
|
|
26
26
|
config_section["auth_url"] = options[:auth_url] if options.key?(:auth_url)
|
27
|
-
config_section["auth_url"] = config_section["api_url"]
|
27
|
+
config_section["auth_url"] = config_section["api_url"] unless config_section["auth_url"]
|
28
28
|
|
29
29
|
config_section["default_account"] = options[:default_account] if options.key?(:default_account)
|
30
30
|
|
data/spec/commands/login_spec.rb
CHANGED
@@ -236,4 +236,59 @@ describe "brightbox login" do
|
|
236
236
|
expect(stderr).to_not include("please re-run your command")
|
237
237
|
end
|
238
238
|
end
|
239
|
+
|
240
|
+
context "when login is used to refresh tokens" do
|
241
|
+
let(:email) { "jason.null@brightbox.com" }
|
242
|
+
let(:client_alias) { "#{email}/custom" }
|
243
|
+
let(:custom_api_url) { "https://api.example.com" }
|
244
|
+
let(:custom_auth_url) { "https://auth.example.com" }
|
245
|
+
let(:default_account) { "acc-custom" }
|
246
|
+
|
247
|
+
let(:contents) do
|
248
|
+
<<-EOS
|
249
|
+
[core]
|
250
|
+
default_client = #{client_alias}
|
251
|
+
|
252
|
+
[#{client_alias}]
|
253
|
+
username = #{email}
|
254
|
+
api_url = #{custom_api_url}
|
255
|
+
auth_url = #{custom_auth_url}
|
256
|
+
default_account = #{default_account}
|
257
|
+
EOS
|
258
|
+
end
|
259
|
+
let(:config) { Brightbox::BBConfig.new }
|
260
|
+
|
261
|
+
let(:argv) { ["login", client_alias] }
|
262
|
+
|
263
|
+
before do
|
264
|
+
config_from_contents(contents)
|
265
|
+
mock_password_entry(password)
|
266
|
+
|
267
|
+
stub_request(:post, "https://auth.example.com/token").to_return(
|
268
|
+
:status => 200,
|
269
|
+
:body => '{"access_token":"44320b29286077c44f14c4efdfed70f63f4a8361","token_type":"Bearer","refresh_token":"759b2b28c228948a0ba5d07a89f39f9e268a95c0","scope":"infrastructure orbit","expires_in":7200}').times(2)
|
270
|
+
end
|
271
|
+
|
272
|
+
it "does not change the config" do
|
273
|
+
expect { output }.to_not raise_error
|
274
|
+
|
275
|
+
client_section = config.config[client_alias]
|
276
|
+
|
277
|
+
expect(client_section["api_url"]).to eql(custom_api_url)
|
278
|
+
expect(client_section["auth_url"]).to eql(custom_auth_url)
|
279
|
+
expect(client_section["username"]).to eql(email)
|
280
|
+
expect(client_section["default_account"]).to eql(default_account)
|
281
|
+
end
|
282
|
+
|
283
|
+
it "requests access tokens" do
|
284
|
+
expect { output }.to_not raise_error
|
285
|
+
|
286
|
+
expect(cached_access_token(config)).to eql(config.access_token)
|
287
|
+
expect(cached_refresh_token(config)).to eql(config.refresh_token)
|
288
|
+
end
|
289
|
+
|
290
|
+
it "does not prompt to rerun the command" do
|
291
|
+
expect(stderr).to_not include("please re-run your command")
|
292
|
+
end
|
293
|
+
end
|
239
294
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -8,6 +8,9 @@ require "tmpdir"
|
|
8
8
|
|
9
9
|
Dir["./spec/support/**/*.rb"].sort.each { |f| require f }
|
10
10
|
|
11
|
+
require "webmock/rspec"
|
12
|
+
WebMock.disable_net_connect!
|
13
|
+
|
11
14
|
# API_CLIENT_CONFIG_DIR = File.join(File.dirname(__FILE__), "configs/api_client")
|
12
15
|
# USER_APP_CONFIG_DIR = File.join(File.dirname(__FILE__), "configs/user_application")
|
13
16
|
|
data/spec/support/vcr.rb
CHANGED
@@ -3,7 +3,7 @@ require "vcr"
|
|
3
3
|
VCR.configure do |vcr|
|
4
4
|
vcr.cassette_library_dir = File.join(File.dirname(__FILE__), "../cassettes")
|
5
5
|
vcr.allow_http_connections_when_no_cassette = false
|
6
|
-
vcr.hook_into :
|
6
|
+
vcr.hook_into :webmock
|
7
7
|
|
8
8
|
vcr.configure_rspec_metadata!
|
9
9
|
vcr.default_cassette_options = {
|
@@ -30,3 +30,13 @@ VCR.configure do |vcr|
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
end
|
33
|
+
|
34
|
+
VCR.turn_off!
|
35
|
+
|
36
|
+
VCR.extend Module.new {
|
37
|
+
def use_cassette(*args)
|
38
|
+
VCR.turn_on!
|
39
|
+
super
|
40
|
+
VCR.turn_off!
|
41
|
+
end
|
42
|
+
}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: brightbox-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.3.
|
4
|
+
version: 2.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Leach
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-10-
|
11
|
+
date: 2015-10-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fog-brightbox
|
@@ -178,6 +178,20 @@ dependencies:
|
|
178
178
|
- - "~>"
|
179
179
|
- !ruby/object:Gem::Version
|
180
180
|
version: '2.5'
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: webmock
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - ">="
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '0'
|
188
|
+
type: :development
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - ">="
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '0'
|
181
195
|
description: Scripts to interact with the Brightbox cloud API
|
182
196
|
email:
|
183
197
|
- john@brightbox.co.uk
|