brightbox-cli 4.7.0 → 4.8.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/.github/workflows/ruby.yml +1 -1
- data/CHANGELOG.md +9 -0
- data/Gemfile.lock +9 -7
- data/lib/brightbox-cli/commands/servers/create.rb +2 -4
- data/lib/brightbox-cli/version.rb +1 -1
- data/spec/commands/servers/create_spec.rb +52 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1957aedb76eb618990c1deca7846319433ce2cc3b88ed2f4b3eac0b4aca3b3c0
|
4
|
+
data.tar.gz: b7a83328c30eb76699b880cb8a6a356cf61bf3e362c19c50b1f8c4dcbbc17c6d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1a2a3316ce568a85d06eea928b5382d0a9a0b2737e2e14c01940a2f2071f8cd10d5c7a25c4f3af2878d5d453c98d70b1bfb50a6fa92b46ed7c5ca4f075fb844f
|
7
|
+
data.tar.gz: 3cd77f4748d94aea53ac8685268228f112aef95e9c8b9a8aca00692d67dc10e92948fa5acef2c696cf6ce08c58920ded07a1167e3933fcc4faf9e2736c480903
|
data/.github/workflows/ruby.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
### v4.8.0 / 2024-10-23
|
2
|
+
|
3
|
+
[Full Changelog](https://github.com/brightbox/brightbox-cli/compare/v4.7.0...v4.8.0)
|
4
|
+
|
5
|
+
Changes:
|
6
|
+
|
7
|
+
* Increase supported Server `user-data` limit to match 64KiB now
|
8
|
+
supported by API.
|
9
|
+
|
1
10
|
### v4.7.0 / 2024-01-03
|
2
11
|
|
3
12
|
[Full Changelog](https://github.com/brightbox/brightbox-cli/compare/v4.6.0...v4.7.0)
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
brightbox-cli (4.
|
4
|
+
brightbox-cli (4.8.0)
|
5
5
|
dry-inflector (= 0.2.0)
|
6
6
|
fog-brightbox (>= 1.11.0)
|
7
7
|
fog-core (< 2.0)
|
@@ -18,14 +18,14 @@ GEM
|
|
18
18
|
addressable (2.8.0)
|
19
19
|
public_suffix (>= 2.0.2, < 5.0)
|
20
20
|
ast (2.4.2)
|
21
|
-
builder (3.
|
21
|
+
builder (3.3.0)
|
22
22
|
coderay (1.1.3)
|
23
|
-
concurrent-ruby (1.
|
23
|
+
concurrent-ruby (1.3.4)
|
24
24
|
crack (0.4.5)
|
25
25
|
rexml
|
26
26
|
diff-lcs (1.5.0)
|
27
27
|
dry-inflector (0.2.0)
|
28
|
-
excon (0.
|
28
|
+
excon (0.112.0)
|
29
29
|
fog-brightbox (1.11.0)
|
30
30
|
dry-inflector
|
31
31
|
fog-core (>= 1.45, < 3.0)
|
@@ -38,16 +38,18 @@ GEM
|
|
38
38
|
fog-core
|
39
39
|
multi_json (~> 1.10)
|
40
40
|
formatador (0.3.0)
|
41
|
-
gli (2.21.
|
41
|
+
gli (2.21.5)
|
42
42
|
hashdiff (1.0.1)
|
43
43
|
highline (2.1.0)
|
44
44
|
hirb (0.7.3)
|
45
45
|
i18n (1.10.0)
|
46
46
|
concurrent-ruby (~> 1.0)
|
47
|
+
logger (1.6.1)
|
47
48
|
method_source (1.0.0)
|
48
|
-
mime-types (3.
|
49
|
+
mime-types (3.6.0)
|
50
|
+
logger
|
49
51
|
mime-types-data (~> 3.2015)
|
50
|
-
mime-types-data (3.
|
52
|
+
mime-types-data (3.2024.1001)
|
51
53
|
mocha (1.14.0)
|
52
54
|
multi_json (1.15.0)
|
53
55
|
parallel (1.22.1)
|
@@ -69,10 +69,8 @@ module Brightbox
|
|
69
69
|
if user_data_file
|
70
70
|
raise "Cannot specify user data on command line and in file at same time" if user_data
|
71
71
|
|
72
|
-
#
|
72
|
+
# Used to read the data, be it from stdin or a file on disk
|
73
73
|
file_handler = lambda do |fh|
|
74
|
-
raise "User data file too big (>16k)" if fh.stat.size > 16 * 1024
|
75
|
-
|
76
74
|
user_data = fh.read
|
77
75
|
end
|
78
76
|
# Figure out how to invoke file_handler, and then invoke it
|
@@ -88,7 +86,7 @@ module Brightbox
|
|
88
86
|
require "base64"
|
89
87
|
user_data = Base64.encode64(user_data)
|
90
88
|
end
|
91
|
-
raise "
|
89
|
+
raise "Encoded user-data exceeds 64KiB limit" if user_data.size > 64 * 1024
|
92
90
|
end
|
93
91
|
|
94
92
|
# Split server groups into array of identifiers (or empty array)
|
@@ -195,6 +195,58 @@ describe "brightbox servers" do
|
|
195
195
|
end
|
196
196
|
end
|
197
197
|
|
198
|
+
context "with --user-data flag" do
|
199
|
+
before do
|
200
|
+
expect(Brightbox::Image).to receive(:find).with("img-12345").and_return(image)
|
201
|
+
expect(Brightbox::Type).to receive(:find_by_handle).and_return(type)
|
202
|
+
end
|
203
|
+
|
204
|
+
context "with user data string within limit" do
|
205
|
+
let(:argv) { ["servers", "create", "--user-data", user_data, "--no-base64", "img-12345"] }
|
206
|
+
let(:user_data) { ("a" * 65_535) }
|
207
|
+
|
208
|
+
it "requests new server with user data" do
|
209
|
+
stub_request(:post, "http://api.brightbox.localhost/1.0/servers?account_id=acc-12345")
|
210
|
+
.with(:headers => { "Content-Type" => "application/json" },
|
211
|
+
body: hash_including(user_data: user_data))
|
212
|
+
.and_return(status: 202, body: sample_response)
|
213
|
+
|
214
|
+
aggregate_failures do
|
215
|
+
expect(stderr).not_to match("ERROR")
|
216
|
+
expect(stdout).to match("srv-12345")
|
217
|
+
end
|
218
|
+
end
|
219
|
+
end
|
220
|
+
|
221
|
+
context "with user data string encoded by client" do
|
222
|
+
let(:argv) { ["servers", "create", "--user-data", user_data, "--base64", "img-12345"] }
|
223
|
+
let(:encoded_user_data) { Base64.encode64(user_data) }
|
224
|
+
let(:user_data) { ("a" * 48_345) }
|
225
|
+
|
226
|
+
it "requests new server with user data" do
|
227
|
+
stub_request(:post, "http://api.brightbox.localhost/1.0/servers?account_id=acc-12345")
|
228
|
+
.with(:headers => { "Content-Type" => "application/json" },
|
229
|
+
body: hash_including(user_data: encoded_user_data))
|
230
|
+
.and_return(status: 202, body: sample_response)
|
231
|
+
|
232
|
+
aggregate_failures do
|
233
|
+
expect(stderr).not_to match("ERROR")
|
234
|
+
expect(stdout).to match("srv-12345")
|
235
|
+
end
|
236
|
+
end
|
237
|
+
end
|
238
|
+
|
239
|
+
context "with user data string exceeding limit" do
|
240
|
+
let(:argv) { ["servers", "create", "--user-data", user_data, "img-12345"] }
|
241
|
+
let(:user_data) { ("a" * 65_535) + "b" }
|
242
|
+
|
243
|
+
it "errors" do
|
244
|
+
expect(stderr).to match("Encoded user-data exceeds 64KiB limit")
|
245
|
+
expect(stdout).not_to match("srv-12345")
|
246
|
+
end
|
247
|
+
end
|
248
|
+
end
|
249
|
+
|
198
250
|
def sample_response
|
199
251
|
'{
|
200
252
|
"id": "srv-12345",
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: brightbox-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Leach
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2024-
|
12
|
+
date: 2024-10-23 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: fog-brightbox
|
@@ -819,7 +819,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
819
819
|
- !ruby/object:Gem::Version
|
820
820
|
version: '0'
|
821
821
|
requirements: []
|
822
|
-
rubygems_version: 3.
|
822
|
+
rubygems_version: 3.5.16
|
823
823
|
signing_key:
|
824
824
|
specification_version: 4
|
825
825
|
summary: The Brightbox cloud management system
|