kitchen-rackspace 0.11.0 → 0.12.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 +9 -0
- data/README.md +8 -5
- data/lib/kitchen/driver/rackspace.rb +10 -1
- data/lib/kitchen/driver/rackspace_version.rb +1 -1
- data/spec/kitchen/driver/rackspace_spec.rb +107 -1
- 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: 02c665cc850869f22e3b31463bc869f67d11b8e7
|
|
4
|
+
data.tar.gz: 8ae8afc951aa645aedb9e30edc1a198b80b9991d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 45dcd888d5027beb598964b12c84abd12ef48c48d7010f3040b44556fea280307e1661276d2df02ecb1de1da154ad9ffefea876b2a9931332d05c2521792554c
|
|
7
|
+
data.tar.gz: fbade3eb3f36f632c1960ccc52fc20c4fc7987ce1c74cb418b6f5ba92ecb54f72487632c379e0b5a5ea20a65779ca957092c71126b6710f12c3812ca615444d0
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
# 0.12.0 / 2014-09-10
|
|
2
|
+
|
|
3
|
+
### New Features
|
|
4
|
+
|
|
5
|
+
* PR [#41][] - Support optionally using ServiceNet for SSH access, via
|
|
6
|
+
[@steve-jansen][]
|
|
7
|
+
|
|
1
8
|
# 0.11.0 / 2014-09-04
|
|
2
9
|
|
|
3
10
|
### Improvements
|
|
@@ -97,6 +104,7 @@ boot times, via [@coderanger][]
|
|
|
97
104
|
|
|
98
105
|
* Initial release! Woo!
|
|
99
106
|
|
|
107
|
+
[#41]: https://github.com/test-kitchen/kitchen-rackspace/pull/41
|
|
100
108
|
[#40]: https://github.com/test-kitchen/kitchen-rackspace/pull/40
|
|
101
109
|
[#39]: https://github.com/test-kitchen/kitchen-rackspace/pull/39
|
|
102
110
|
[#38]: https://github.com/test-kitchen/kitchen-rackspace/pull/38
|
|
@@ -117,6 +125,7 @@ boot times, via [@coderanger][]
|
|
|
117
125
|
[#8]: https://github.com/test-kitchen/kitchen-rackspace/pull/8
|
|
118
126
|
[#7]: https://github.com/test-kitchen/kitchen-rackspace/pull/7
|
|
119
127
|
|
|
128
|
+
[@steve-jansen]: https://github.com/steve-jansen
|
|
120
129
|
[@hhoover]: https://github.com/hhoover
|
|
121
130
|
[@kanerogers]: https://github.com/kanerogers
|
|
122
131
|
[@martinb3]: https://github.com/martinb3
|
data/README.md
CHANGED
|
@@ -42,7 +42,7 @@ for your specified platform. Additional, optional overrides can be provided:
|
|
|
42
42
|
|
|
43
43
|
image_id: [SERVER IMAGE ID]
|
|
44
44
|
flavor_id: [SERVER FLAVOR ID]
|
|
45
|
-
server_name: [A
|
|
45
|
+
server_name: [A FRIENDLY SERVER NAME]
|
|
46
46
|
public_key_path: [PATH TO YOUR PUBLIC SSH KEY]
|
|
47
47
|
rackspace_region: [A VALID RACKSPACE DC/REGION]
|
|
48
48
|
wait_for: [NUM OF SECONDS TO WAIT BEFORE TIMING OUT, DEFAULT 600]
|
|
@@ -50,6 +50,7 @@ for your specified platform. Additional, optional overrides can be provided:
|
|
|
50
50
|
no_ssh_tcp_check_sleep: [NUM OF SECONDS TO SLEEP IF no_ssh_tcp_check IS SET]
|
|
51
51
|
networks: [LIST OF RACKSPACE NETWORK UUIDS, DEFAULT PUBLICNET AND SERVICE NET]
|
|
52
52
|
rackconnect_wait: ['true' IF USING RACKCONNECT TO WAIT FOR IT TO COMPLETE]
|
|
53
|
+
servicenet: ['true' IF USING THE SERVICENET IP ADDRESS TO CONNECT]
|
|
53
54
|
|
|
54
55
|
You also have the option of providing some configs via environment variables:
|
|
55
56
|
|
|
@@ -66,7 +67,9 @@ Some configs are also derived based on your .ssh directory, specifically the
|
|
|
66
67
|
## Contributing
|
|
67
68
|
|
|
68
69
|
1. Fork it
|
|
69
|
-
2.
|
|
70
|
-
3.
|
|
71
|
-
4.
|
|
72
|
-
5.
|
|
70
|
+
2. `bundle install`
|
|
71
|
+
3. Create your feature branch (`git checkout -b my-new-feature`)
|
|
72
|
+
4. `bundle exec rake` must pass
|
|
73
|
+
5. Commit your changes (`git commit -am 'Add some feature'`)
|
|
74
|
+
6. Push to the branch (`git push origin my-new-feature`)
|
|
75
|
+
7. Create new Pull Request
|
|
@@ -37,6 +37,7 @@ module Kitchen
|
|
|
37
37
|
default_config :no_ssh_tcp_check, false
|
|
38
38
|
default_config :no_ssh_tcp_check_sleep, 120
|
|
39
39
|
default_config :rackconnect_wait, false
|
|
40
|
+
default_config :servicenet, false
|
|
40
41
|
default_config(:image_id) { |driver| driver.default_image }
|
|
41
42
|
default_config(:server_name) { |driver| driver.default_name }
|
|
42
43
|
default_config :networks, nil
|
|
@@ -75,7 +76,7 @@ module Kitchen
|
|
|
75
76
|
server.wait_for { ready? }
|
|
76
77
|
puts '(server ready)'
|
|
77
78
|
rackconnect_check(server) if config[:rackconnect_wait]
|
|
78
|
-
state[:hostname] = server
|
|
79
|
+
state[:hostname] = hostname(server)
|
|
79
80
|
tcp_check(state)
|
|
80
81
|
rescue Fog::Errors::Error, Excon::Errors::Error => ex
|
|
81
82
|
raise ActionFailed, ex.message
|
|
@@ -156,6 +157,14 @@ module Kitchen
|
|
|
156
157
|
server.update # refresh accessIPv4 with new IP
|
|
157
158
|
end
|
|
158
159
|
|
|
160
|
+
def hostname(server)
|
|
161
|
+
if config[:servicenet] == false
|
|
162
|
+
server.public_ip_address
|
|
163
|
+
else
|
|
164
|
+
server.private_ip_address
|
|
165
|
+
end
|
|
166
|
+
end
|
|
167
|
+
|
|
159
168
|
def networks
|
|
160
169
|
base_nets = %w(
|
|
161
170
|
00000000-0000-0000-0000-000000000000
|
|
@@ -113,6 +113,10 @@ describe Kitchen::Driver::Rackspace do
|
|
|
113
113
|
it 'defaults to not waiting for rackconnect' do
|
|
114
114
|
expect(driver[:rackconnect_wait]).to eq(false)
|
|
115
115
|
end
|
|
116
|
+
|
|
117
|
+
it 'defaults to the public ip address' do
|
|
118
|
+
expect(driver[:servicenet]).to eq(false)
|
|
119
|
+
end
|
|
116
120
|
end
|
|
117
121
|
|
|
118
122
|
platforms = {
|
|
@@ -143,7 +147,8 @@ describe Kitchen::Driver::Rackspace do
|
|
|
143
147
|
server_name: 'puppy',
|
|
144
148
|
rackspace_region: 'ord',
|
|
145
149
|
wait_for: 1200,
|
|
146
|
-
rackconnect_wait: true
|
|
150
|
+
rackconnect_wait: true,
|
|
151
|
+
use_private_ip_address: true
|
|
147
152
|
}
|
|
148
153
|
|
|
149
154
|
let(:config) { config }
|
|
@@ -223,7 +228,108 @@ describe Kitchen::Driver::Rackspace do
|
|
|
223
228
|
driver.create(state)
|
|
224
229
|
end
|
|
225
230
|
end
|
|
231
|
+
end
|
|
232
|
+
|
|
233
|
+
describe '#create and rackconnect_wait' do
|
|
234
|
+
let(:server) do
|
|
235
|
+
double(id: 'test123',
|
|
236
|
+
wait_for: true,
|
|
237
|
+
public_ip_address: '1.2.3.4',
|
|
238
|
+
private_ip_address: '10.9.8.7',
|
|
239
|
+
update: nil)
|
|
240
|
+
end
|
|
241
|
+
let(:driver) do
|
|
242
|
+
d = Kitchen::Driver::Rackspace.new(config)
|
|
243
|
+
d.instance = instance
|
|
244
|
+
allow(d).to receive(:default_name).and_return('a_monkey!')
|
|
245
|
+
allow(d).to receive(:create_server).and_return(server)
|
|
246
|
+
allow(d).to receive(:tcp_check).and_return(true)
|
|
247
|
+
d
|
|
248
|
+
end
|
|
226
249
|
|
|
250
|
+
context 'username and API key only provided' do
|
|
251
|
+
let(:config) do
|
|
252
|
+
{
|
|
253
|
+
rackspace_username: 'hello',
|
|
254
|
+
rackspace_api_key: 'world',
|
|
255
|
+
wait_for: 1200,
|
|
256
|
+
rackconnect_wait: true
|
|
257
|
+
}
|
|
258
|
+
end
|
|
259
|
+
|
|
260
|
+
it 'generates a server name in the absence of one' do
|
|
261
|
+
driver.create(state)
|
|
262
|
+
expect(driver[:server_name]).to eq('a_monkey!')
|
|
263
|
+
end
|
|
264
|
+
|
|
265
|
+
it 'gets a proper server ID' do
|
|
266
|
+
driver.create(state)
|
|
267
|
+
expect(state[:server_id]).to eq('test123')
|
|
268
|
+
end
|
|
269
|
+
|
|
270
|
+
it 'gets a proper hostname (IP)' do
|
|
271
|
+
driver.create(state)
|
|
272
|
+
expect(state[:hostname]).to eq('1.2.3.4')
|
|
273
|
+
end
|
|
274
|
+
|
|
275
|
+
it 'calls tcp_check' do
|
|
276
|
+
expect(driver).to receive(:tcp_check)
|
|
277
|
+
driver.create(state)
|
|
278
|
+
end
|
|
279
|
+
|
|
280
|
+
it 'calls rackconnect_check ' do
|
|
281
|
+
expect(driver).to receive(:rackconnect_check)
|
|
282
|
+
driver.create(state)
|
|
283
|
+
end
|
|
284
|
+
|
|
285
|
+
it 'rackconnect_check waits for rackconnect_automation' do
|
|
286
|
+
expect(server).to receive(:wait_for)
|
|
287
|
+
driver.send(:rackconnect_check, server)
|
|
288
|
+
end
|
|
289
|
+
end
|
|
290
|
+
end
|
|
291
|
+
|
|
292
|
+
describe '#create and use_private_ip_address' do
|
|
293
|
+
let(:server) do
|
|
294
|
+
double(id: 'test123',
|
|
295
|
+
wait_for: true,
|
|
296
|
+
public_ip_address: '1.2.3.4',
|
|
297
|
+
private_ip_address: '10.9.8.7')
|
|
298
|
+
end
|
|
299
|
+
let(:driver) do
|
|
300
|
+
d = Kitchen::Driver::Rackspace.new(config)
|
|
301
|
+
d.instance = instance
|
|
302
|
+
allow(d).to receive(:default_name).and_return('a_monkey!')
|
|
303
|
+
allow(d).to receive(:create_server).and_return(server)
|
|
304
|
+
allow(d).to receive(:tcp_check).and_return(true)
|
|
305
|
+
d
|
|
306
|
+
end
|
|
307
|
+
|
|
308
|
+
context 'username and API key only provided' do
|
|
309
|
+
let(:config) do
|
|
310
|
+
{
|
|
311
|
+
rackspace_username: 'hello',
|
|
312
|
+
rackspace_api_key: 'world',
|
|
313
|
+
wait_for: 1200,
|
|
314
|
+
servicenet: true
|
|
315
|
+
}
|
|
316
|
+
end
|
|
317
|
+
|
|
318
|
+
it 'generates a server name in the absence of one' do
|
|
319
|
+
driver.create(state)
|
|
320
|
+
expect(driver[:server_name]).to eq('a_monkey!')
|
|
321
|
+
end
|
|
322
|
+
|
|
323
|
+
it 'gets a proper server ID' do
|
|
324
|
+
driver.create(state)
|
|
325
|
+
expect(state[:server_id]).to eq('test123')
|
|
326
|
+
end
|
|
327
|
+
|
|
328
|
+
it 'gets a private ip as the hostname' do
|
|
329
|
+
driver.create(state)
|
|
330
|
+
expect(state[:hostname]).to eq('10.9.8.7')
|
|
331
|
+
end
|
|
332
|
+
end
|
|
227
333
|
end
|
|
228
334
|
|
|
229
335
|
describe '#destroy' do
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kitchen-rackspace
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.12.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jonathan Hartman
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2014-09-
|
|
11
|
+
date: 2014-09-10 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: test-kitchen
|