brightbox-cli 2.5.0 → 2.6.0
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 +22 -2
- data/Gemfile.lock +6 -6
- data/brightbox-cli.gemspec +1 -1
- data/lib/brightbox-cli/api.rb +3 -1
- data/lib/brightbox-cli/commands/sql/instances_create.rb +12 -16
- data/lib/brightbox-cli/commands/sql/instances_update.rb +13 -11
- data/lib/brightbox-cli/database_server.rb +61 -0
- data/lib/brightbox-cli/version.rb +1 -1
- data/locales/en.yml +12 -0
- data/spec/cassettes/{brightbox_database-servers → brightbox_sql_instances}/create/--allow-access_10_0_0_0/correctly_sends_API_parameters.yml +0 -0
- data/spec/cassettes/{brightbox_database-servers → brightbox_sql_instances}/create/--allow-access_srv-12345_grp-12345/correctly_sends_API_parameters.yml +0 -0
- data/spec/cassettes/{brightbox_database-servers → brightbox_sql_instances}/create/--engine_mysql/correctly_sends_API_parameters.yml +0 -0
- data/spec/cassettes/{brightbox_database-servers → brightbox_sql_instances}/create/--engine_mysql_--engine-version_5_6/correctly_sends_API_parameters.yml +0 -0
- data/spec/cassettes/{brightbox_database-servers → brightbox_sql_instances}/create/without_arguments/reports_the_new_admin_password.yml +0 -0
- data/spec/cassettes/{brightbox_database-servers → brightbox_sql_instances}/create/without_arguments/reports_the_new_admin_username.yml +0 -0
- data/spec/cassettes/{brightbox_database-servers → brightbox_sql_instances}/snapshot/when_database_server_active/correctly_sends_API_parameters.yml +0 -0
- data/spec/cassettes/{brightbox_database-servers → brightbox_sql_instances}/snapshot/when_database_server_can_not_be_snapshotted/reports_an_error_to_the_user.yml +0 -0
- data/spec/cassettes/{brightbox_database-snapshots → brightbox_sql_snapshots}/list/when_resources_are_available/does_not_output_to_stderr.yml +0 -0
- data/spec/cassettes/{brightbox_database-snapshots → brightbox_sql_snapshots}/list/when_resources_are_available/outputs_table_details_to_stdout.yml +0 -0
- data/spec/cassettes/{brightbox_database-snapshots → brightbox_sql_snapshots}/show/when_resource_exists/does_not_output_to_stderr.yml +0 -0
- data/spec/commands/sql/instances/create_spec.rb +66 -1
- data/spec/commands/sql/instances/show_spec.rb +79 -0
- data/spec/commands/sql/instances/snapshot_spec.rb +1 -1
- data/spec/commands/sql/instances/update_spec.rb +84 -0
- data/spec/commands/sql/snapshots/list_spec.rb +1 -1
- data/spec/commands/sql/snapshots/show_spec.rb +1 -1
- data/spec/unit/brightbox/api/created_on_spec.rb +22 -0
- data/spec/unit/brightbox/database_server/clean_arguments_spec.rb +45 -0
- data/spec/unit/brightbox/database_server/cloud_ips_spec.rb +23 -0
- data/spec/unit/brightbox/database_server/maintenance_window_spec.rb +44 -0
- metadata +38 -26
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 96fa4d23d9ae155d8bed3923b2008147d5f02e5d
|
|
4
|
+
data.tar.gz: 8e2c0fc64b410dc6f62e35b7e3f5636fa02db1bc
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 75b51b5235e6a878194476c16eef375e65b538fc35e7fae7741f2d021b846b54cdf23c80d3040d9d5a583aa61b2ea9b0f2375e69010ae394f33e45f17ffed44c
|
|
7
|
+
data.tar.gz: 413d50665c92d89d79fc2256cc2dc98811158954d404ba5bbe420c7bff6377989a9f2aa23bb52911a20f98349214be48ea92b53f45fd276762f7136fc0467d64
|
data/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
### v2.
|
|
1
|
+
### v2.6.0 / 2016-07-07
|
|
2
2
|
|
|
3
|
-
[Full Changelog](https://github.com/brightbox/brightbox-cli/compare/v2.
|
|
3
|
+
[Full Changelog](https://github.com/brightbox/brightbox-cli/compare/v2.5.0...v2.6.0)
|
|
4
4
|
|
|
5
5
|
Enhancements:
|
|
6
6
|
|
|
@@ -9,6 +9,26 @@ Enhancements:
|
|
|
9
9
|
between 06:00-06:59 UTC does not suit for your application.
|
|
10
10
|
The maintenance window is used to automatically apply security updates to the
|
|
11
11
|
instance.
|
|
12
|
+
* Add args `snapshots-schedule` and `remove-snapshots-schedule` to `sql instance`
|
|
13
|
+
command to enable setting up schedules for automatic snapshots of data. The
|
|
14
|
+
argument to set takes a crontab format string (e.g. "0 5 * * 0") to specify
|
|
15
|
+
when it should occur. Schedules must be at hourly or more.
|
|
16
|
+
|
|
17
|
+
Bug fixes:
|
|
18
|
+
|
|
19
|
+
* Fix handling of creation time to not error if excluded from JSON.
|
|
20
|
+
* Fix handling of SQL instance's cloud IP is excluded from JSON.
|
|
21
|
+
|
|
22
|
+
Changes:
|
|
23
|
+
|
|
24
|
+
* Update `fog-brightbox` to v0.11.0
|
|
25
|
+
* Corrected naming of a number of VCR recordings.
|
|
26
|
+
|
|
27
|
+
### v2.5.0 / 2016-06-20
|
|
28
|
+
|
|
29
|
+
[Full Changelog](https://github.com/brightbox/brightbox-cli/compare/v2.4.1...v2.5.0)
|
|
30
|
+
|
|
31
|
+
Released in error with only version bump.
|
|
12
32
|
|
|
13
33
|
### v2.4.1 / 2016-06-06
|
|
14
34
|
|
data/Gemfile.lock
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
brightbox-cli (2.
|
|
5
|
-
fog-brightbox (>= 0.
|
|
4
|
+
brightbox-cli (2.6.0)
|
|
5
|
+
fog-brightbox (>= 0.11.0)
|
|
6
6
|
gli (~> 2.12.0)
|
|
7
7
|
highline (~> 1.6.0)
|
|
8
8
|
hirb (~> 0.6)
|
|
@@ -20,12 +20,12 @@ GEM
|
|
|
20
20
|
crack (0.4.2)
|
|
21
21
|
safe_yaml (~> 1.0.0)
|
|
22
22
|
diff-lcs (1.2.5)
|
|
23
|
-
excon (0.
|
|
24
|
-
fog-brightbox (0.
|
|
23
|
+
excon (0.50.1)
|
|
24
|
+
fog-brightbox (0.11.0)
|
|
25
25
|
fog-core (~> 1.22)
|
|
26
26
|
fog-json
|
|
27
27
|
inflecto (~> 0.0.2)
|
|
28
|
-
fog-core (1.
|
|
28
|
+
fog-core (1.42.0)
|
|
29
29
|
builder
|
|
30
30
|
excon (~> 0.49)
|
|
31
31
|
formatador (~> 0.2)
|
|
@@ -40,7 +40,7 @@ GEM
|
|
|
40
40
|
inflecto (0.0.2)
|
|
41
41
|
metaclass (0.0.1)
|
|
42
42
|
method_source (0.8.1)
|
|
43
|
-
mime-types (2.99.
|
|
43
|
+
mime-types (2.99.2)
|
|
44
44
|
mocha (0.14.0)
|
|
45
45
|
metaclass (~> 0.0.1)
|
|
46
46
|
multi_json (1.11.3)
|
data/brightbox-cli.gemspec
CHANGED
|
@@ -21,7 +21,7 @@ Gem::Specification.new do |s|
|
|
|
21
21
|
s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
|
|
22
22
|
s.require_paths = ["lib"]
|
|
23
23
|
|
|
24
|
-
s.add_dependency "fog-brightbox", ">= 0.
|
|
24
|
+
s.add_dependency "fog-brightbox", ">= 0.11.0"
|
|
25
25
|
s.add_dependency "gli", "~> 2.12.0"
|
|
26
26
|
s.add_dependency "i18n", "~> 0.6.0"
|
|
27
27
|
s.add_dependency "mime-types", "~> 2.6"
|
data/lib/brightbox-cli/api.rb
CHANGED
|
@@ -186,7 +186,9 @@ module Brightbox
|
|
|
186
186
|
# Displays creation date in ISO 8601 Complete date format
|
|
187
187
|
#
|
|
188
188
|
def created_on
|
|
189
|
-
fog_model.created_at
|
|
189
|
+
if fog_model.created_at
|
|
190
|
+
fog_model.created_at.strftime("%Y-%m-%d")
|
|
191
|
+
end
|
|
190
192
|
end
|
|
191
193
|
end
|
|
192
194
|
end
|
|
@@ -27,6 +27,16 @@ module Brightbox
|
|
|
27
27
|
c.desc I18n.t("sql.instances.options.engine_version.desc")
|
|
28
28
|
c.flag ["engine-version"]
|
|
29
29
|
|
|
30
|
+
# Maintenance window options
|
|
31
|
+
c.desc I18n.t("sql.instances.options.maintenance_weekday.desc")
|
|
32
|
+
c.flag ["maintenance-weekday"]
|
|
33
|
+
c.desc I18n.t("sql.instances.options.maintenance_hour.desc")
|
|
34
|
+
c.flag ["maintenance-hour"]
|
|
35
|
+
|
|
36
|
+
# Snapshots schedule
|
|
37
|
+
c.desc I18n.t("sql.instances.options.snapshots_schedule.desc")
|
|
38
|
+
c.flag [:"snapshots-schedule"]
|
|
39
|
+
|
|
30
40
|
# Snapshot
|
|
31
41
|
c.desc I18n.t("sql.instances.options.snapshot.desc")
|
|
32
42
|
c.flag [:snapshot]
|
|
@@ -35,22 +45,8 @@ module Brightbox
|
|
|
35
45
|
c.desc I18n.t("sql.instances.options.zone.desc")
|
|
36
46
|
c.flag [:z, "zone"]
|
|
37
47
|
|
|
38
|
-
c.action do |global_options, options,
|
|
39
|
-
params =
|
|
40
|
-
|
|
41
|
-
params[:name] = options[:n] if options[:n]
|
|
42
|
-
params[:description] = options[:d] if options[:d]
|
|
43
|
-
|
|
44
|
-
if options[:"allow-access"]
|
|
45
|
-
access_items = options[:"allow-access"].split(",")
|
|
46
|
-
params[:allow_access] = access_items
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
params[:database_engine] = options[:engine] if options[:engine]
|
|
50
|
-
params[:database_version] = options["engine-version"] if options["engine-version"]
|
|
51
|
-
params[:snapshot_id] = options[:snapshot] if options[:snapshot]
|
|
52
|
-
params[:flavor_id] = options[:type] if options[:type]
|
|
53
|
-
params[:zone_id] = options[:zone] if options[:zone]
|
|
48
|
+
c.action do |global_options, options, args|
|
|
49
|
+
params = DatabaseServer.clean_arguments(options)
|
|
54
50
|
|
|
55
51
|
server = DatabaseServer.create(params)
|
|
56
52
|
table_options = global_options.merge(
|
|
@@ -15,6 +15,18 @@ module Brightbox
|
|
|
15
15
|
c.desc I18n.t("sql.instances.options.allow_access.desc")
|
|
16
16
|
c.flag [:"allow-access"]
|
|
17
17
|
|
|
18
|
+
# Maintenance window options
|
|
19
|
+
c.desc I18n.t("sql.instances.options.maintenance_weekday.desc")
|
|
20
|
+
c.flag ["maintenance-weekday"]
|
|
21
|
+
c.desc I18n.t("sql.instances.options.maintenance_hour.desc")
|
|
22
|
+
c.flag ["maintenance-hour"]
|
|
23
|
+
|
|
24
|
+
# Snapshots schedule
|
|
25
|
+
c.desc I18n.t("sql.instances.options.snapshots_schedule.desc")
|
|
26
|
+
c.flag [:"snapshots-schedule"]
|
|
27
|
+
c.desc I18n.t("sql.instances.options.remove_snapshots_schedule.desc")
|
|
28
|
+
c.switch [:"remove-snapshots-schedule"], :negatable => false
|
|
29
|
+
|
|
18
30
|
c.action do |global_options, options, args|
|
|
19
31
|
dbs_id = args.shift
|
|
20
32
|
unless dbs_id =~ /^dbs-/
|
|
@@ -22,17 +34,7 @@ module Brightbox
|
|
|
22
34
|
end
|
|
23
35
|
|
|
24
36
|
server = DatabaseServer.find dbs_id
|
|
25
|
-
|
|
26
|
-
params = NilableHash.new
|
|
27
|
-
params[:name] = options[:n] if options[:n]
|
|
28
|
-
params[:description] = options[:d] if options[:d]
|
|
29
|
-
|
|
30
|
-
if options[:"allow-access"]
|
|
31
|
-
access_items = options[:"allow-access"].split(",")
|
|
32
|
-
params[:allow_access] = access_items
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
params.nilify_blanks
|
|
37
|
+
params = DatabaseServer.clean_arguments(options)
|
|
36
38
|
|
|
37
39
|
info "Updating #{server}"
|
|
38
40
|
server.update params
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
require "date"
|
|
2
|
+
|
|
1
3
|
module Brightbox
|
|
2
4
|
class DatabaseServer < Api
|
|
3
5
|
def self.require_account?
|
|
@@ -51,6 +53,9 @@ module Brightbox
|
|
|
51
53
|
:zone,
|
|
52
54
|
:created_on,
|
|
53
55
|
:admin_username, :admin_password,
|
|
56
|
+
:maintenance_window,
|
|
57
|
+
:snapshots_schedule,
|
|
58
|
+
:snapshots_schedule_next_at,
|
|
54
59
|
:allow_access,
|
|
55
60
|
:cloud_ip_ids, :cloud_ips
|
|
56
61
|
]
|
|
@@ -76,6 +81,9 @@ module Brightbox
|
|
|
76
81
|
a[:db_engine] = engine_version
|
|
77
82
|
a[:engine] = database_engine
|
|
78
83
|
a[:version] = database_version
|
|
84
|
+
a[:maintenance_weekday] = maintenance_weekday
|
|
85
|
+
a[:maintenance_hour] = maintenance_hour
|
|
86
|
+
a[:maintenance_window] = maintenance_window
|
|
79
87
|
a[:zone] = zone_handle
|
|
80
88
|
a[:created_on] = created_on
|
|
81
89
|
a[:allow_access] = allow_access
|
|
@@ -88,6 +96,17 @@ module Brightbox
|
|
|
88
96
|
[database_engine, database_version].join("-")
|
|
89
97
|
end
|
|
90
98
|
|
|
99
|
+
# A more humanised version of the maintenance window
|
|
100
|
+
def maintenance_window
|
|
101
|
+
return nil if maintenance_weekday.nil?
|
|
102
|
+
weekday = Date::DAYNAMES[maintenance_weekday]
|
|
103
|
+
sprintf("%s %02d:00 UTC", weekday, maintenance_hour)
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
def cloud_ips
|
|
107
|
+
super.nil? ? [] : super
|
|
108
|
+
end
|
|
109
|
+
|
|
91
110
|
# Lists the CIP identifiers (cip-12345)
|
|
92
111
|
def cloud_ip_ids
|
|
93
112
|
cloud_ips.map { |cip| cip["id"] }
|
|
@@ -97,5 +116,47 @@ module Brightbox
|
|
|
97
116
|
def cloud_ip_addresses
|
|
98
117
|
cloud_ips.map { |cip| cip["public_ip"] }
|
|
99
118
|
end
|
|
119
|
+
|
|
120
|
+
# Converts GLI's arguments to fog based parameters
|
|
121
|
+
def self.clean_arguments(args)
|
|
122
|
+
params = NilableHash.new
|
|
123
|
+
|
|
124
|
+
params[:name] = args[:n] if args[:n]
|
|
125
|
+
params[:description] = args[:d] if args[:d]
|
|
126
|
+
|
|
127
|
+
if args["allow-access"]
|
|
128
|
+
params[:allow_access] = args["allow-access"].split(",")
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
if args["maintenance-weekday"]
|
|
132
|
+
params[:maintenance_weekday] = weekday_index(args["maintenance-weekday"])
|
|
133
|
+
end
|
|
134
|
+
params[:maintenance_hour] = args["maintenance-hour"] if args["maintenance-hour"]
|
|
135
|
+
|
|
136
|
+
params[:snapshots_schedule] = args["snapshots-schedule"] if args["snapshots-schedule"]
|
|
137
|
+
if args["remove-snapshots-schedule"]
|
|
138
|
+
params[:snapshots_schedule] = nil
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
params[:database_engine] = args[:engine] if args[:engine]
|
|
142
|
+
params[:database_version] = args["engine-version"] if args["engine-version"]
|
|
143
|
+
|
|
144
|
+
params[:snapshot_id] = args[:snapshot] if args[:snapshot]
|
|
145
|
+
params[:flavor_id] = args[:type] if args[:type]
|
|
146
|
+
params[:zone_id] = args[:zone] if args[:zone]
|
|
147
|
+
|
|
148
|
+
params.nilify_blanks
|
|
149
|
+
params
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
private
|
|
153
|
+
|
|
154
|
+
# @param [String] user_input either a day or it's index ('sunday' or '0')
|
|
155
|
+
# @returns [String] The index
|
|
156
|
+
def self.weekday_index(user_input)
|
|
157
|
+
DateTime.parse(user_input).wday.to_s
|
|
158
|
+
rescue ArgumentError
|
|
159
|
+
user_input.to_s
|
|
160
|
+
end
|
|
100
161
|
end
|
|
101
162
|
end
|
data/locales/en.yml
CHANGED
|
@@ -171,12 +171,24 @@ en:
|
|
|
171
171
|
options:
|
|
172
172
|
allow_access:
|
|
173
173
|
desc: Comma separated list of IPs or IDs for servers or groups to allow access
|
|
174
|
+
default_maintenance:
|
|
175
|
+
desc: Use default settings for instance's maintenance window
|
|
174
176
|
engine:
|
|
175
177
|
desc: The database engine to use for the SQL instance (e.g. 'mysql')
|
|
176
178
|
engine_version:
|
|
177
179
|
desc: The version of the engine to use (e.g. '5.6')
|
|
180
|
+
maintenance_hour:
|
|
181
|
+
desc: Number representing the hour for the instance's maintenance
|
|
182
|
+
window (0-24 based on 24hr clock)
|
|
183
|
+
maintenance_weekday:
|
|
184
|
+
desc: Number representing the weekday to set for the instance's
|
|
185
|
+
maintenance window (0-6 where 0=Sunday)
|
|
178
186
|
snapshot:
|
|
179
187
|
desc: ID of a Cloud SQL snapshot to create new instance from
|
|
188
|
+
snapshots_schedule:
|
|
189
|
+
desc: Create or reschedule automatic snapshots using crontab format (e.g. "0 5 * * *"). May not be more than hourly.
|
|
190
|
+
remove_snapshots_schedule:
|
|
191
|
+
desc: Clear an existing snapshots schedule
|
|
180
192
|
type:
|
|
181
193
|
desc: ID of a Cloud SQL type
|
|
182
194
|
zone:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
require "spec_helper"
|
|
2
2
|
|
|
3
|
-
describe "brightbox
|
|
3
|
+
describe "brightbox sql instances" do
|
|
4
4
|
describe "create" do
|
|
5
5
|
let(:output) { FauxIO.new { Brightbox.run(argv) } }
|
|
6
6
|
let(:stdout) { output.stdout }
|
|
@@ -65,5 +65,70 @@ describe "brightbox database-servers" do
|
|
|
65
65
|
expect(stderr).to eql("")
|
|
66
66
|
end
|
|
67
67
|
end
|
|
68
|
+
|
|
69
|
+
context "--maintenance-weekday=5 --maintenance_hour=11" do
|
|
70
|
+
let(:argv) { %w(sql instances create --maintenance-weekday=5 --maintenance-hour=11) }
|
|
71
|
+
let(:expected_args) { { :maintenance_weekday => "5", :maintenance_hour => "11" } }
|
|
72
|
+
|
|
73
|
+
before do
|
|
74
|
+
stub_request(:post, "http://api.brightbox.dev/token").to_return(
|
|
75
|
+
:status => 200,
|
|
76
|
+
:body => '{"access_token":"44320b29286077c44f14c4efdfed70f63f4a8361","token_type":"Bearer","refresh_token":"759b2b28c228948a0ba5d07a89f39f9e268a95c0","scope":"infrastructure orbit","expires_in":7200}')
|
|
77
|
+
|
|
78
|
+
stub_request(:post, "http://api.brightbox.dev/1.0/database_servers?account_id=acc-12345")
|
|
79
|
+
.with(:body => "{\"name\":null,\"description\":null,\"maintenance_weekday\":\"5\",\"maintenance_hour\":\"11\"}")
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
it "correctly sends API parameters" do
|
|
83
|
+
expect(Brightbox::DatabaseServer).to receive(:create).with(expected_args).and_call_original
|
|
84
|
+
expect(stderr).to eql("")
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
context "--maintenance-weekday=thursday" do
|
|
89
|
+
let(:argv) { %w(sql instances create --maintenance-weekday=thursday) }
|
|
90
|
+
let(:expected_args) { { :maintenance_weekday => "4" } }
|
|
91
|
+
|
|
92
|
+
before do
|
|
93
|
+
stub_request(:post, "http://api.brightbox.dev/token").to_return(
|
|
94
|
+
:status => 200,
|
|
95
|
+
:body => '{"access_token":"44320b29286077c44f14c4efdfed70f63f4a8361","token_type":"Bearer","refresh_token":"759b2b28c228948a0ba5d07a89f39f9e268a95c0","scope":"infrastructure orbit","expires_in":7200}')
|
|
96
|
+
|
|
97
|
+
stub_request(:post, "http://api.brightbox.dev/1.0/database_servers?account_id=acc-12345")
|
|
98
|
+
.with(:body => "{\"name\":null,\"description\":null,\"maintenance_weekday\":\"4\",\"maintenance_hour\":null}")
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
it "correctly sends API parameters" do
|
|
102
|
+
expect(Brightbox::DatabaseServer).to receive(:create).with(expected_args).and_call_original
|
|
103
|
+
expect(stderr).to eql("")
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
context "--snapshots-schedule='0 12 * * 4'" do
|
|
108
|
+
let(:argv) { ["sql", "instances", "create", "--snapshots-schedule=0 12 * * 4"] }
|
|
109
|
+
let(:expected_args) { { :snapshots_schedule => "0 12 * * 4" } }
|
|
110
|
+
|
|
111
|
+
let(:json_response) do
|
|
112
|
+
<<-EOS
|
|
113
|
+
{
|
|
114
|
+
"id":"dbs-12345",
|
|
115
|
+
"snapshots_schedule":"0 12 * * 4",
|
|
116
|
+
"snapshots_schedule_next_at":"2016-07-07T12:00:00Z"
|
|
117
|
+
}
|
|
118
|
+
EOS
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
before do
|
|
122
|
+
stub_request(:post, "http://api.brightbox.dev/1.0/database_servers?account_id=acc-12345")
|
|
123
|
+
.and_return(:status => 202, :body => json_response)
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
it "includes schedule fields in response" do
|
|
127
|
+
expect(Brightbox::DatabaseServer).to receive(:create).with(expected_args).and_call_original
|
|
128
|
+
expect(stdout).to include("snapshots_schedule: 0 12 * * 4")
|
|
129
|
+
expect(stdout).to include("snapshots_schedule_next_at: 2016-07-07T12:00Z")
|
|
130
|
+
expect(stderr).to eql("")
|
|
131
|
+
end
|
|
132
|
+
end
|
|
68
133
|
end
|
|
69
134
|
end
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
require "spec_helper"
|
|
2
|
+
|
|
3
|
+
describe "brghtbox sql instances" do
|
|
4
|
+
describe "show" do
|
|
5
|
+
let(:output) { FauxIO.new { Brightbox.run(argv) } }
|
|
6
|
+
let(:stdout) { output.stdout }
|
|
7
|
+
let(:stderr) { output.stderr }
|
|
8
|
+
|
|
9
|
+
before do
|
|
10
|
+
config = config_from_contents(USER_APP_CONFIG_CONTENTS)
|
|
11
|
+
cache_access_token(config, "1234567890")
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
context "when id does not exist" do
|
|
15
|
+
let(:argv) { %w(sql instances show dbs-12345) }
|
|
16
|
+
let(:json_response) do
|
|
17
|
+
"{\"error_name\":\"missing_resource\",\"errors\":[\"Resource not found using supplied identifier\"]}"
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
before do
|
|
21
|
+
stub_request(:get, "http://api.brightbox.dev/1.0/database_servers/dbs-12345?account_id=acc-12345").
|
|
22
|
+
to_return(:status => 404, :body => json_response, :headers => { "Content-Type" => "" })
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it "reports error" do
|
|
26
|
+
expect(stderr).to include("ERROR: Couldn't find an SQL instance with ID dbs-12345")
|
|
27
|
+
expect(stdout).to be_empty
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
context "when id exists" do
|
|
32
|
+
let(:argv) { %w(sql instances show dbs-12345) }
|
|
33
|
+
|
|
34
|
+
let(:json_response) do
|
|
35
|
+
<<-EOS
|
|
36
|
+
{
|
|
37
|
+
"id":"dbs-12345",
|
|
38
|
+
"resource_type":"database_server",
|
|
39
|
+
"url":"https://api.gb1.brightbox.com/1.0/database_servers/dbs-12345",
|
|
40
|
+
"name":"",
|
|
41
|
+
"description":"",
|
|
42
|
+
"admin_username":"admin",
|
|
43
|
+
"admin_password":null,
|
|
44
|
+
"allow_access":[],
|
|
45
|
+
"database_engine":"mysql",
|
|
46
|
+
"database_version":"5.5",
|
|
47
|
+
"status":"active",
|
|
48
|
+
"maintenance_weekday":0,
|
|
49
|
+
"maintenance_hour":6,
|
|
50
|
+
"snapshots_schedule":"0 16 * * 0",
|
|
51
|
+
"snapshots_schedule_next_at":"2016-07-10T16:00:00Z",
|
|
52
|
+
"created_at":"2016-07-07T12:34:56Z",
|
|
53
|
+
"updated_at":"2016-07-07T12:34:56Z",
|
|
54
|
+
"deleted_at":null,
|
|
55
|
+
"account":{},
|
|
56
|
+
"database_server_type":{},
|
|
57
|
+
"cloud_ips":[],
|
|
58
|
+
"zone":{}
|
|
59
|
+
}
|
|
60
|
+
EOS
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
before do
|
|
64
|
+
stub_request(:get, "http://api.brightbox.dev/1.0/database_servers/dbs-12345?account_id=acc-12345").
|
|
65
|
+
to_return(:status => 200, :body => json_response, :headers => { "Content-Type" => "" })
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
it "simplifies the maintenance window" do
|
|
69
|
+
expect(stdout).to include("maintenance_window: Sunday 06:00 UTC")
|
|
70
|
+
expect(stderr).to be_empty
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
it "includes snapshots schedule fields" do
|
|
74
|
+
expect(stdout).to include("snapshots_schedule: 0 16 * * 0")
|
|
75
|
+
expect(stdout).to include("snapshots_schedule_next_at: 2016-07-10T16:00Z")
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
require "spec_helper"
|
|
2
|
+
require "fog/brightbox/models/compute/database_server"
|
|
3
|
+
|
|
4
|
+
describe "brightbox sql instances" do
|
|
5
|
+
describe "update" do
|
|
6
|
+
let(:output) { FauxIO.new { Brightbox.run(argv) } }
|
|
7
|
+
let(:stdout) { output.stdout }
|
|
8
|
+
let(:stderr) { output.stderr }
|
|
9
|
+
|
|
10
|
+
before do
|
|
11
|
+
config = config_from_contents(USER_APP_CONFIG_CONTENTS)
|
|
12
|
+
cache_access_token(config, "44320b29286077c44f14c4efdfed70f63f4a8361")
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
context "--maintenance-weekday=Monday" do
|
|
16
|
+
let(:argv) { %w(sql instances update --maintenance-weekday=Monday dbs-12345) }
|
|
17
|
+
let(:expected_args) { { :maintenance_weekday => "1" } }
|
|
18
|
+
|
|
19
|
+
before do
|
|
20
|
+
stub_request(:get, "http://api.brightbox.dev/1.0/database_servers/dbs-12345?account_id=acc-12345")
|
|
21
|
+
.to_return(:status => 200, :body => '{"id":"dbs-12345","maintenance_weekday":0, "maintenance_hour":6}')
|
|
22
|
+
.to_return(:status => 200,
|
|
23
|
+
:body => '{
|
|
24
|
+
"id":"dbs-12345",
|
|
25
|
+
"maintenance_weekday":1,
|
|
26
|
+
"maintenance_hour":6}')
|
|
27
|
+
|
|
28
|
+
stub_request(:put, "http://api.brightbox.dev/1.0/database_servers/dbs-12345?account_id=acc-12345")
|
|
29
|
+
.with(:body => "{\"maintenance_weekday\":\"1\"}")
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
it "sets custom maintenance window settings" do
|
|
33
|
+
expect(stderr).to eql("Updating dbs-12345\n")
|
|
34
|
+
expect(stdout).to include("dbs-12345")
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
context "--snapshots-schedule='0 12 * * 4'" do
|
|
39
|
+
let(:dbs) { Brightbox::DatabaseServer.find("dbs-12345") }
|
|
40
|
+
let(:argv) { ["sql", "instances", "update", "--snapshots-schedule=0 12 * * 4", "dbs-12345"] }
|
|
41
|
+
let(:expected_args) { { :snapshots_schedule => "0 12 * * 4" } }
|
|
42
|
+
|
|
43
|
+
before do
|
|
44
|
+
stub_request(:get, "http://api.brightbox.dev/1.0/database_servers/dbs-12345?account_id=acc-12345")
|
|
45
|
+
.to_return(:status => 200, :body => '{"id":"dbs-12345","snapshots_schedule":null,"snapshots_schedule_next_at":null}')
|
|
46
|
+
.to_return(:status => 200, :body => '{"id":"dbs-12345","snapshots_schedule":"34 12 * * 4","snapshots_schedule_next_at":"2016-07-07T12:34:56Z"}')
|
|
47
|
+
|
|
48
|
+
stub_request(:put, "http://api.brightbox.dev/1.0/database_servers/dbs-12345?account_id=acc-12345")
|
|
49
|
+
.to_return(:status => 200, :body => '{"id":"dbs-12345","snapshots_schedule":"34 12 * * 4","snapshots_schedule_next_at":"2016-07-07T12:34:56Z"}')
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
it "sets snapshots schedule" do
|
|
53
|
+
expect(Brightbox::DatabaseServer).to receive(:find).and_return(dbs)
|
|
54
|
+
expect(dbs).to receive(:update).with(expected_args).and_call_original
|
|
55
|
+
|
|
56
|
+
expect(stderr).to eq("Updating dbs-12345\n")
|
|
57
|
+
expect(stdout).to include("dbs-12345")
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
context "--remove-snapshots-schedule" do
|
|
62
|
+
let(:dbs) { Brightbox::DatabaseServer.find("dbs-12345") }
|
|
63
|
+
let(:argv) { %w(sql instances update --remove-snapshots-schedule dbs-12345) }
|
|
64
|
+
let(:expected_args) { { :snapshots_schedule => nil } }
|
|
65
|
+
|
|
66
|
+
before do
|
|
67
|
+
stub_request(:get, "http://api.brightbox.dev/1.0/database_servers/dbs-12345?account_id=acc-12345")
|
|
68
|
+
.to_return(:status => 200, :body => '{"id":"dbs-12345","snapshots_schedule":"34 12 * * 4","snapshots_schedule_next_at":"2016-07-07T12:34:56Z"}')
|
|
69
|
+
.to_return(:status => 200, :body => '{"id":"dbs-12345","snapshots_schedule":null,"snapshots_schedule_next_at":null}')
|
|
70
|
+
|
|
71
|
+
stub_request(:put, "http://api.brightbox.dev/1.0/database_servers/dbs-12345?account_id=acc-12345")
|
|
72
|
+
.to_return(:status => 200, :body => '{"id":"dbs-12345","snapshots_schedule":null,"snapshots_schedule_next_at":null}')
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
it "clears snapshots schedule" do
|
|
76
|
+
expect(Brightbox::DatabaseServer).to receive(:find).and_return(dbs)
|
|
77
|
+
expect(dbs).to receive(:update).with(expected_args).and_call_original
|
|
78
|
+
|
|
79
|
+
expect(stderr).to eq("Updating dbs-12345\n")
|
|
80
|
+
expect(stdout).to include("dbs-12345")
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
require "spec_helper"
|
|
2
|
+
|
|
3
|
+
describe Brightbox::Api, "#created_on" do
|
|
4
|
+
subject(:api_model) { described_class.new(fog_model) }
|
|
5
|
+
let(:fog_model) do
|
|
6
|
+
double id: nil,
|
|
7
|
+
attributes: attrs,
|
|
8
|
+
created_at: attrs[:created_at]
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
context "when initialised with no attributes" do
|
|
12
|
+
let(:attrs) { {} }
|
|
13
|
+
|
|
14
|
+
it { expect(api_model.created_on).to be_nil }
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
context "when initialised with created_at" do
|
|
18
|
+
let(:attrs) { { created_at: Time.utc(2016, 7, 7, 12, 34, 56) } }
|
|
19
|
+
|
|
20
|
+
it { expect(api_model.created_on).to eq("2016-07-07") }
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
require "spec_helper"
|
|
2
|
+
require "fog/brightbox/models/compute/database_server"
|
|
3
|
+
|
|
4
|
+
describe Brightbox::DatabaseServer do
|
|
5
|
+
|
|
6
|
+
describe ".clean_arguments" do
|
|
7
|
+
let(:parameters) { Brightbox::DatabaseServer.clean_arguments(arguments) }
|
|
8
|
+
|
|
9
|
+
context "when no arguments" do
|
|
10
|
+
let(:arguments) { {} }
|
|
11
|
+
|
|
12
|
+
it { expect(parameters.keys).to be_empty }
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
context "when --allow-access=10.0.0.0" do
|
|
16
|
+
let(:arguments) { { "allow-access" => "10.0.0.0" } }
|
|
17
|
+
|
|
18
|
+
it { expect(parameters[:allow_access]).to eql(["10.0.0.0"]) }
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
context "when --allow-access=10.0.0.0,11.0.0.0" do
|
|
22
|
+
let(:arguments) { { "allow-access" => "10.0.0.0,11.0.0.0" } }
|
|
23
|
+
|
|
24
|
+
it { expect(parameters[:allow_access]).to eql(%w(10.0.0.0 11.0.0.0)) }
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
context "when --maintenance-weekday=4" do
|
|
28
|
+
let(:arguments) { { "maintenance-weekday" => "4" } }
|
|
29
|
+
|
|
30
|
+
it { expect(parameters[:maintenance_weekday]).to eql("4") }
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
context "when --maintenance-weekday=wednesday" do
|
|
34
|
+
let(:arguments) { { "maintenance-weekday" => "3" } }
|
|
35
|
+
|
|
36
|
+
it { expect(parameters[:maintenance_weekday]).to eql("3") }
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
context "when --maintenance-weekday=" do
|
|
40
|
+
let(:arguments) { { "maintenance-weekday" => "" } }
|
|
41
|
+
|
|
42
|
+
it { expect(parameters[:maintenance_weekday]).to be_nil }
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
require "spec_helper"
|
|
2
|
+
require "fog/brightbox/models/compute/database_server"
|
|
3
|
+
|
|
4
|
+
describe Brightbox::DatabaseServer, "#cloud_ips" do
|
|
5
|
+
let(:fog_model) { Fog::Compute::Brightbox::DatabaseServer.new(fog_settings) }
|
|
6
|
+
let(:dbs) { described_class.new(fog_model) }
|
|
7
|
+
|
|
8
|
+
context "when attribute is missing" do
|
|
9
|
+
let(:fog_settings) { {} }
|
|
10
|
+
it { expect(dbs.cloud_ips).to be_empty }
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
context "when attribute is empty" do
|
|
14
|
+
let(:fog_settings) { { cloud_ips: [] } }
|
|
15
|
+
it { expect(dbs.cloud_ips).to be_empty }
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
context "when attribute contains data" do
|
|
19
|
+
let(:cloud_ip) { { id: "cip-12345", public_ip: "10.0.0.10" } }
|
|
20
|
+
let(:fog_settings) { { cloud_ips: [cloud_ip] } }
|
|
21
|
+
it { expect(dbs.cloud_ips).to include(cloud_ip) }
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
require "spec_helper"
|
|
2
|
+
require "fog/brightbox/models/compute/database_server"
|
|
3
|
+
|
|
4
|
+
describe Brightbox::DatabaseServer do
|
|
5
|
+
|
|
6
|
+
describe "#maintenance_window" do
|
|
7
|
+
let(:fog_model) { Fog::Compute::Brightbox::DatabaseServer.new(fog_settings) }
|
|
8
|
+
let(:dbs) { Brightbox::DatabaseServer.new(fog_model) }
|
|
9
|
+
|
|
10
|
+
context "when default values" do
|
|
11
|
+
let(:fog_settings) do
|
|
12
|
+
{
|
|
13
|
+
"maintenance_weekday" => 0,
|
|
14
|
+
"maintenance_hour" => 6
|
|
15
|
+
}
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
it "returns 'Sunday 06:00 UTC'" do
|
|
19
|
+
expect(dbs.maintenance_window).to eql("Sunday 06:00 UTC")
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
context "when non standard values" do
|
|
24
|
+
let(:fog_settings) do
|
|
25
|
+
{
|
|
26
|
+
"maintenance_weekday" => 6,
|
|
27
|
+
"maintenance_hour" => 23
|
|
28
|
+
}
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it "returns 'Saturday 23:00 UTC'" do
|
|
32
|
+
expect(dbs.maintenance_window).to eql("Saturday 23:00 UTC")
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
context "when not initialised" do
|
|
37
|
+
let(:fog_settings) { {} }
|
|
38
|
+
|
|
39
|
+
it "returns nil" do
|
|
40
|
+
expect(dbs.maintenance_window).to be_nil
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
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.
|
|
4
|
+
version: 2.6.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- John Leach
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2016-
|
|
11
|
+
date: 2016-07-07 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: fog-brightbox
|
|
@@ -16,14 +16,14 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - ">="
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: 0.
|
|
19
|
+
version: 0.11.0
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - ">="
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: 0.
|
|
26
|
+
version: 0.11.0
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: gli
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -482,17 +482,6 @@ files:
|
|
|
482
482
|
- spec/cassettes/brightbox_config/user_add/when_passing_in_required_arguments_and_api_url/does_not_error.yml
|
|
483
483
|
- spec/cassettes/brightbox_config/user_add/when_passing_in_required_arguments_and_api_url/requests_access_tokens.yml
|
|
484
484
|
- spec/cassettes/brightbox_config/user_add/when_passing_in_required_arguments_and_api_url/sets_up_the_config.yml
|
|
485
|
-
- spec/cassettes/brightbox_database-servers/create/--allow-access_10_0_0_0/correctly_sends_API_parameters.yml
|
|
486
|
-
- spec/cassettes/brightbox_database-servers/create/--allow-access_srv-12345_grp-12345/correctly_sends_API_parameters.yml
|
|
487
|
-
- spec/cassettes/brightbox_database-servers/create/--engine_mysql/correctly_sends_API_parameters.yml
|
|
488
|
-
- spec/cassettes/brightbox_database-servers/create/--engine_mysql_--engine-version_5_6/correctly_sends_API_parameters.yml
|
|
489
|
-
- spec/cassettes/brightbox_database-servers/create/without_arguments/reports_the_new_admin_password.yml
|
|
490
|
-
- spec/cassettes/brightbox_database-servers/create/without_arguments/reports_the_new_admin_username.yml
|
|
491
|
-
- spec/cassettes/brightbox_database-servers/snapshot/when_database_server_active/correctly_sends_API_parameters.yml
|
|
492
|
-
- spec/cassettes/brightbox_database-servers/snapshot/when_database_server_can_not_be_snapshotted/reports_an_error_to_the_user.yml
|
|
493
|
-
- spec/cassettes/brightbox_database-snapshots/list/when_resources_are_available/does_not_output_to_stderr.yml
|
|
494
|
-
- spec/cassettes/brightbox_database-snapshots/list/when_resources_are_available/outputs_table_details_to_stdout.yml
|
|
495
|
-
- spec/cassettes/brightbox_database-snapshots/show/when_resource_exists/does_not_output_to_stderr.yml
|
|
496
485
|
- spec/cassettes/brightbox_login/when_alternative_client_credentials_are_given/does_not_error.yml
|
|
497
486
|
- spec/cassettes/brightbox_login/when_alternative_client_credentials_are_given/does_not_prompt_to_rerun_the_command.yml
|
|
498
487
|
- spec/cassettes/brightbox_login/when_alternative_client_credentials_are_given/prompts_for_the_password.yml
|
|
@@ -517,6 +506,17 @@ files:
|
|
|
517
506
|
- spec/cassettes/brightbox_login/when_no_password_is_given/prompts_for_the_password.yml
|
|
518
507
|
- spec/cassettes/brightbox_login/when_no_password_is_given/requests_access_tokens.yml
|
|
519
508
|
- spec/cassettes/brightbox_login/when_no_password_is_given/sets_up_the_config.yml
|
|
509
|
+
- spec/cassettes/brightbox_sql_instances/create/--allow-access_10_0_0_0/correctly_sends_API_parameters.yml
|
|
510
|
+
- spec/cassettes/brightbox_sql_instances/create/--allow-access_srv-12345_grp-12345/correctly_sends_API_parameters.yml
|
|
511
|
+
- spec/cassettes/brightbox_sql_instances/create/--engine_mysql/correctly_sends_API_parameters.yml
|
|
512
|
+
- spec/cassettes/brightbox_sql_instances/create/--engine_mysql_--engine-version_5_6/correctly_sends_API_parameters.yml
|
|
513
|
+
- spec/cassettes/brightbox_sql_instances/create/without_arguments/reports_the_new_admin_password.yml
|
|
514
|
+
- spec/cassettes/brightbox_sql_instances/create/without_arguments/reports_the_new_admin_username.yml
|
|
515
|
+
- spec/cassettes/brightbox_sql_instances/snapshot/when_database_server_active/correctly_sends_API_parameters.yml
|
|
516
|
+
- spec/cassettes/brightbox_sql_instances/snapshot/when_database_server_can_not_be_snapshotted/reports_an_error_to_the_user.yml
|
|
517
|
+
- spec/cassettes/brightbox_sql_snapshots/list/when_resources_are_available/does_not_output_to_stderr.yml
|
|
518
|
+
- spec/cassettes/brightbox_sql_snapshots/list/when_resources_are_available/outputs_table_details_to_stdout.yml
|
|
519
|
+
- spec/cassettes/brightbox_sql_snapshots/show/when_resource_exists/does_not_output_to_stderr.yml
|
|
520
520
|
- spec/commands/accounts/default_spec.rb
|
|
521
521
|
- spec/commands/accounts/list_spec.rb
|
|
522
522
|
- spec/commands/accounts/reset_ftp_password_spec.rb
|
|
@@ -584,7 +584,9 @@ files:
|
|
|
584
584
|
- spec/commands/servers/update_spec.rb
|
|
585
585
|
- spec/commands/sql/instances/create_spec.rb
|
|
586
586
|
- spec/commands/sql/instances/locking_spec.rb
|
|
587
|
+
- spec/commands/sql/instances/show_spec.rb
|
|
587
588
|
- spec/commands/sql/instances/snapshot_spec.rb
|
|
589
|
+
- spec/commands/sql/instances/update_spec.rb
|
|
588
590
|
- spec/commands/sql/snapshots/list_spec.rb
|
|
589
591
|
- spec/commands/sql/snapshots/locking_spec.rb
|
|
590
592
|
- spec/commands/sql/snapshots/show_spec.rb
|
|
@@ -612,6 +614,7 @@ files:
|
|
|
612
614
|
- spec/unit/brightbox/account/get_spec.rb
|
|
613
615
|
- spec/unit/brightbox/account_spec.rb
|
|
614
616
|
- spec/unit/brightbox/api/conn_spec.rb
|
|
617
|
+
- spec/unit/brightbox/api/created_on_spec.rb
|
|
615
618
|
- spec/unit/brightbox/api/find_spec.rb
|
|
616
619
|
- spec/unit/brightbox/api/fog_model_spec.rb
|
|
617
620
|
- spec/unit/brightbox/api/klass_name_spec.rb
|
|
@@ -663,6 +666,9 @@ files:
|
|
|
663
666
|
- spec/unit/brightbox/config/user_application/valid_spec.rb
|
|
664
667
|
- spec/unit/brightbox/config/user_application_spec.rb
|
|
665
668
|
- spec/unit/brightbox/connection_manager/fetch_connection_spec.rb
|
|
669
|
+
- spec/unit/brightbox/database_server/clean_arguments_spec.rb
|
|
670
|
+
- spec/unit/brightbox/database_server/cloud_ips_spec.rb
|
|
671
|
+
- spec/unit/brightbox/database_server/maintenance_window_spec.rb
|
|
666
672
|
- spec/unit/brightbox/database_server_spec.rb
|
|
667
673
|
- spec/unit/brightbox/database_snapshot_spec.rb
|
|
668
674
|
- spec/unit/brightbox/database_type_spec.rb
|
|
@@ -834,17 +840,6 @@ test_files:
|
|
|
834
840
|
- spec/cassettes/brightbox_config/user_add/when_passing_in_required_arguments_and_api_url/does_not_error.yml
|
|
835
841
|
- spec/cassettes/brightbox_config/user_add/when_passing_in_required_arguments_and_api_url/requests_access_tokens.yml
|
|
836
842
|
- spec/cassettes/brightbox_config/user_add/when_passing_in_required_arguments_and_api_url/sets_up_the_config.yml
|
|
837
|
-
- spec/cassettes/brightbox_database-servers/create/--allow-access_10_0_0_0/correctly_sends_API_parameters.yml
|
|
838
|
-
- spec/cassettes/brightbox_database-servers/create/--allow-access_srv-12345_grp-12345/correctly_sends_API_parameters.yml
|
|
839
|
-
- spec/cassettes/brightbox_database-servers/create/--engine_mysql/correctly_sends_API_parameters.yml
|
|
840
|
-
- spec/cassettes/brightbox_database-servers/create/--engine_mysql_--engine-version_5_6/correctly_sends_API_parameters.yml
|
|
841
|
-
- spec/cassettes/brightbox_database-servers/create/without_arguments/reports_the_new_admin_password.yml
|
|
842
|
-
- spec/cassettes/brightbox_database-servers/create/without_arguments/reports_the_new_admin_username.yml
|
|
843
|
-
- spec/cassettes/brightbox_database-servers/snapshot/when_database_server_active/correctly_sends_API_parameters.yml
|
|
844
|
-
- spec/cassettes/brightbox_database-servers/snapshot/when_database_server_can_not_be_snapshotted/reports_an_error_to_the_user.yml
|
|
845
|
-
- spec/cassettes/brightbox_database-snapshots/list/when_resources_are_available/does_not_output_to_stderr.yml
|
|
846
|
-
- spec/cassettes/brightbox_database-snapshots/list/when_resources_are_available/outputs_table_details_to_stdout.yml
|
|
847
|
-
- spec/cassettes/brightbox_database-snapshots/show/when_resource_exists/does_not_output_to_stderr.yml
|
|
848
843
|
- spec/cassettes/brightbox_login/when_alternative_client_credentials_are_given/does_not_error.yml
|
|
849
844
|
- spec/cassettes/brightbox_login/when_alternative_client_credentials_are_given/does_not_prompt_to_rerun_the_command.yml
|
|
850
845
|
- spec/cassettes/brightbox_login/when_alternative_client_credentials_are_given/prompts_for_the_password.yml
|
|
@@ -869,6 +864,17 @@ test_files:
|
|
|
869
864
|
- spec/cassettes/brightbox_login/when_no_password_is_given/prompts_for_the_password.yml
|
|
870
865
|
- spec/cassettes/brightbox_login/when_no_password_is_given/requests_access_tokens.yml
|
|
871
866
|
- spec/cassettes/brightbox_login/when_no_password_is_given/sets_up_the_config.yml
|
|
867
|
+
- spec/cassettes/brightbox_sql_instances/create/--allow-access_10_0_0_0/correctly_sends_API_parameters.yml
|
|
868
|
+
- spec/cassettes/brightbox_sql_instances/create/--allow-access_srv-12345_grp-12345/correctly_sends_API_parameters.yml
|
|
869
|
+
- spec/cassettes/brightbox_sql_instances/create/--engine_mysql/correctly_sends_API_parameters.yml
|
|
870
|
+
- spec/cassettes/brightbox_sql_instances/create/--engine_mysql_--engine-version_5_6/correctly_sends_API_parameters.yml
|
|
871
|
+
- spec/cassettes/brightbox_sql_instances/create/without_arguments/reports_the_new_admin_password.yml
|
|
872
|
+
- spec/cassettes/brightbox_sql_instances/create/without_arguments/reports_the_new_admin_username.yml
|
|
873
|
+
- spec/cassettes/brightbox_sql_instances/snapshot/when_database_server_active/correctly_sends_API_parameters.yml
|
|
874
|
+
- spec/cassettes/brightbox_sql_instances/snapshot/when_database_server_can_not_be_snapshotted/reports_an_error_to_the_user.yml
|
|
875
|
+
- spec/cassettes/brightbox_sql_snapshots/list/when_resources_are_available/does_not_output_to_stderr.yml
|
|
876
|
+
- spec/cassettes/brightbox_sql_snapshots/list/when_resources_are_available/outputs_table_details_to_stdout.yml
|
|
877
|
+
- spec/cassettes/brightbox_sql_snapshots/show/when_resource_exists/does_not_output_to_stderr.yml
|
|
872
878
|
- spec/commands/accounts/default_spec.rb
|
|
873
879
|
- spec/commands/accounts/list_spec.rb
|
|
874
880
|
- spec/commands/accounts/reset_ftp_password_spec.rb
|
|
@@ -936,7 +942,9 @@ test_files:
|
|
|
936
942
|
- spec/commands/servers/update_spec.rb
|
|
937
943
|
- spec/commands/sql/instances/create_spec.rb
|
|
938
944
|
- spec/commands/sql/instances/locking_spec.rb
|
|
945
|
+
- spec/commands/sql/instances/show_spec.rb
|
|
939
946
|
- spec/commands/sql/instances/snapshot_spec.rb
|
|
947
|
+
- spec/commands/sql/instances/update_spec.rb
|
|
940
948
|
- spec/commands/sql/snapshots/list_spec.rb
|
|
941
949
|
- spec/commands/sql/snapshots/locking_spec.rb
|
|
942
950
|
- spec/commands/sql/snapshots/show_spec.rb
|
|
@@ -964,6 +972,7 @@ test_files:
|
|
|
964
972
|
- spec/unit/brightbox/account/get_spec.rb
|
|
965
973
|
- spec/unit/brightbox/account_spec.rb
|
|
966
974
|
- spec/unit/brightbox/api/conn_spec.rb
|
|
975
|
+
- spec/unit/brightbox/api/created_on_spec.rb
|
|
967
976
|
- spec/unit/brightbox/api/find_spec.rb
|
|
968
977
|
- spec/unit/brightbox/api/fog_model_spec.rb
|
|
969
978
|
- spec/unit/brightbox/api/klass_name_spec.rb
|
|
@@ -1015,6 +1024,9 @@ test_files:
|
|
|
1015
1024
|
- spec/unit/brightbox/config/user_application/valid_spec.rb
|
|
1016
1025
|
- spec/unit/brightbox/config/user_application_spec.rb
|
|
1017
1026
|
- spec/unit/brightbox/connection_manager/fetch_connection_spec.rb
|
|
1027
|
+
- spec/unit/brightbox/database_server/clean_arguments_spec.rb
|
|
1028
|
+
- spec/unit/brightbox/database_server/cloud_ips_spec.rb
|
|
1029
|
+
- spec/unit/brightbox/database_server/maintenance_window_spec.rb
|
|
1018
1030
|
- spec/unit/brightbox/database_server_spec.rb
|
|
1019
1031
|
- spec/unit/brightbox/database_snapshot_spec.rb
|
|
1020
1032
|
- spec/unit/brightbox/database_type_spec.rb
|