kitchen-openstack 0.2.0 → 0.4.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.
- data/CHANGELOG.md +10 -0
- data/README.md +2 -0
- data/lib/kitchen/driver/openstack.rb +7 -2
- data/lib/kitchen/driver/openstack_version.rb +1 -1
- data/spec/kitchen/driver/openstack_spec.rb +21 -1
- metadata +3 -2
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
# 0.4.0 / 2013-06-06
|
|
2
|
+
|
|
3
|
+
### New Features
|
|
4
|
+
|
|
5
|
+
* PR [#12][] - Support `openstack_network_name` option; via [@saketoba][]
|
|
6
|
+
* PR [#11][] - Support `ssh_key` option; via [@saketoba][]
|
|
7
|
+
|
|
1
8
|
# 0.2.0 / 2013-05-11
|
|
2
9
|
|
|
3
10
|
### Bug Fixes
|
|
@@ -18,9 +25,12 @@
|
|
|
18
25
|
|
|
19
26
|
* Initial release! Woo!
|
|
20
27
|
|
|
28
|
+
[#12]: https://github.com/RoboticCheese/kitchen-openstack/pull/12
|
|
29
|
+
[#11]: https://github.com/RoboticCheese/kitchen-openstack/pull/11
|
|
21
30
|
[#10]: https://github.com/RoboticCheese/kitchen-openstack/pull/10
|
|
22
31
|
[#9]: https://github.com/RoboticCheese/kitchen-openstack/pull/9
|
|
23
32
|
[#7]: https://github.com/RoboticCheese/kitchen-openstack/pull/7
|
|
24
33
|
[#2]: https://github.com/RoboticCheese/kitchen-openstack/pull/2
|
|
25
34
|
|
|
35
|
+
[@saketoba]: https://github.com/saketoba
|
|
26
36
|
[@stevendanna]: https://github.com/stevendanna
|
data/README.md
CHANGED
|
@@ -39,6 +39,7 @@ key will be used, though that behavior can be overridden with additional
|
|
|
39
39
|
options:
|
|
40
40
|
|
|
41
41
|
name: [A UNIQUE SERVER NAME]
|
|
42
|
+
ssh_key: [PATH TO YOUR PRIVATE SSH KEY]
|
|
42
43
|
public_key_path: [PATH TO YOUR SSH PUBLIC KEY]
|
|
43
44
|
username: [SSH USER]
|
|
44
45
|
port: [SSH PORT]
|
|
@@ -46,6 +47,7 @@ options:
|
|
|
46
47
|
openstack_tenant: [YOUR OPENSTACK TENANT ID]
|
|
47
48
|
openstack_region: [A VALID OPENSTACK REGION]
|
|
48
49
|
openstack_service_name: [YOUR OPENSTACK COMPUTE SERVICE NAME]
|
|
50
|
+
openstack_network_name: [YOUR OPENSTACK NETWORK NAME]
|
|
49
51
|
|
|
50
52
|
If a key\_name is provided it will be used instead of any
|
|
51
53
|
public\_key\_path that is specified.
|
|
@@ -35,6 +35,7 @@ module Kitchen
|
|
|
35
35
|
default_config :openstack_tenant, nil
|
|
36
36
|
default_config :openstack_region, nil
|
|
37
37
|
default_config :openstack_service_name, nil
|
|
38
|
+
default_config :openstack_network_name, nil
|
|
38
39
|
|
|
39
40
|
def create(state)
|
|
40
41
|
config[:name] ||= generate_name(instance.name)
|
|
@@ -47,7 +48,9 @@ module Kitchen
|
|
|
47
48
|
# As a consequence of IP weirdness, the OpenStack setup() method is
|
|
48
49
|
# also borked
|
|
49
50
|
wait_for_sshd(state[:hostname]) ; puts '(ssh ready)'
|
|
50
|
-
config[:
|
|
51
|
+
unless config[:ssh_key] or config[:key_name]
|
|
52
|
+
do_ssh_setup(state, config, server)
|
|
53
|
+
end
|
|
51
54
|
rescue Fog::Errors::Error, Excon::Errors::Error => ex
|
|
52
55
|
raise ActionFailed, ex.message
|
|
53
56
|
end
|
|
@@ -101,7 +104,9 @@ module Kitchen
|
|
|
101
104
|
end
|
|
102
105
|
|
|
103
106
|
def get_ip(server)
|
|
104
|
-
if
|
|
107
|
+
if config[:openstack_network_name]
|
|
108
|
+
return server.addresses[config[:openstack_network_name]].first['addr']
|
|
109
|
+
elsif server.addresses['public'] and !server.addresses['public'].empty?
|
|
105
110
|
# server.public_ip_address stopped working in Fog 1.10.0
|
|
106
111
|
return server.addresses['public'].first['addr']
|
|
107
112
|
else
|
|
@@ -78,7 +78,8 @@ describe Kitchen::Driver::Openstack do
|
|
|
78
78
|
:name => 'puppy',
|
|
79
79
|
:openstack_tenant => 'that_one',
|
|
80
80
|
:openstack_region => 'atlantis',
|
|
81
|
-
:openstack_service_name => 'the_service'
|
|
81
|
+
:openstack_service_name => 'the_service',
|
|
82
|
+
:ssh_key => '/path/to/id_rsa'
|
|
82
83
|
}
|
|
83
84
|
end
|
|
84
85
|
|
|
@@ -88,6 +89,10 @@ describe Kitchen::Driver::Openstack do
|
|
|
88
89
|
expect(drv[k]).to eq(v)
|
|
89
90
|
end
|
|
90
91
|
end
|
|
92
|
+
|
|
93
|
+
it 'SSH with user-specified private key' do
|
|
94
|
+
expect(driver[:ssh_key]).to eq('/path/to/id_rsa')
|
|
95
|
+
end
|
|
91
96
|
end
|
|
92
97
|
end
|
|
93
98
|
|
|
@@ -366,6 +371,21 @@ describe Kitchen::Driver::Openstack do
|
|
|
366
371
|
expect(driver.send(:get_ip, server)).to eq('5.5.5.5')
|
|
367
372
|
end
|
|
368
373
|
end
|
|
374
|
+
|
|
375
|
+
context 'IPs in user-defined network group' do
|
|
376
|
+
let(:config) { { :openstack_network_name => 'mynetwork' } }
|
|
377
|
+
let(:addresses) do
|
|
378
|
+
{
|
|
379
|
+
'mynetwork' => [
|
|
380
|
+
{ 'addr' => '7.7.7.7' },
|
|
381
|
+
{ 'addr' => '8.8.8.8' }
|
|
382
|
+
]
|
|
383
|
+
}
|
|
384
|
+
end
|
|
385
|
+
it 'returns a IP in user-defined network group' do
|
|
386
|
+
expect(driver.send(:get_ip, server)).to eq('7.7.7.7')
|
|
387
|
+
end
|
|
388
|
+
end
|
|
369
389
|
end
|
|
370
390
|
|
|
371
391
|
describe '#do_ssh_setup' do
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kitchen-openstack
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.4.0
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2013-
|
|
12
|
+
date: 2013-06-06 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: test-kitchen
|
|
@@ -186,3 +186,4 @@ summary: A Test Kitchen OpenStack Nova driver
|
|
|
186
186
|
test_files:
|
|
187
187
|
- spec/kitchen/driver/openstack_spec.rb
|
|
188
188
|
- spec/spec_helper.rb
|
|
189
|
+
has_rdoc:
|