kitchen-openstack 3.2.0 → 3.3.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 +10 -1
- data/README.md +29 -5
- data/lib/kitchen/driver/openstack.rb +13 -3
- data/lib/kitchen/driver/openstack_version.rb +1 -1
- data/spec/kitchen/driver/openstack/volume_spec.rb +0 -1
- data/spec/kitchen/driver/openstack_spec.rb +115 -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: d66ce0ff71e2179911c7fa1b6537621df9807ac0
|
|
4
|
+
data.tar.gz: d1c8922782d6c668225bb025bbbadb49db017c89
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4938e5b6b9ee42907c96afdb8440699c85dc61d8572d92371d40a1497a8bbe333502277bb9836e3b5b11a59ea0ea130b4ebc8230d0442d475abbb2bd3293e5af
|
|
7
|
+
data.tar.gz: 6dcd850d52c56601b4b77426cd45fdb7afc23992f0cd0a049cfd4886f2a648df5ae35aa420c0ddcdedc291bf380f81fd5cd0778ce8139022257c11ed3b7d3708
|
data/CHANGELOG.md
CHANGED
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
-
## [v3.
|
|
3
|
+
## [v3.3.0](https://github.com/test-kitchen/kitchen-openstack/tree/v3.3.0)
|
|
4
4
|
|
|
5
|
+
[Full Changelog](https://github.com/test-kitchen/kitchen-openstack/compare/v3.2.0...v3.3.0)
|
|
6
|
+
|
|
7
|
+
**Merged pull requests:**
|
|
8
|
+
|
|
9
|
+
- Uuids [\#159](https://github.com/test-kitchen/kitchen-openstack/pull/159) ([boc-tothefuture](https://github.com/boc-tothefuture))
|
|
10
|
+
|
|
11
|
+
## [v3.2.0](https://github.com/test-kitchen/kitchen-openstack/tree/v3.2.0) (2017-03-02)
|
|
5
12
|
[Full Changelog](https://github.com/test-kitchen/kitchen-openstack/compare/v3.1.0...v3.2.0)
|
|
6
13
|
|
|
7
14
|
**Closed issues:**
|
|
8
15
|
|
|
16
|
+
- Expose excon timeouts to kitchen [\#157](https://github.com/test-kitchen/kitchen-openstack/issues/157)
|
|
9
17
|
- Enhancement: generate openstack keypair on create [\#150](https://github.com/test-kitchen/kitchen-openstack/issues/150)
|
|
10
18
|
- kitchen-openstack should use SSH Agent [\#149](https://github.com/test-kitchen/kitchen-openstack/issues/149)
|
|
11
19
|
- Permission Denied on kitchen runs after first [\#146](https://github.com/test-kitchen/kitchen-openstack/issues/146)
|
|
@@ -14,6 +22,7 @@
|
|
|
14
22
|
|
|
15
23
|
**Merged pull requests:**
|
|
16
24
|
|
|
25
|
+
- Prep for v3.2.0 [\#158](https://github.com/test-kitchen/kitchen-openstack/pull/158) ([jjasghar](https://github.com/jjasghar))
|
|
17
26
|
- Expose excon timeout configuration [\#156](https://github.com/test-kitchen/kitchen-openstack/pull/156) ([MariusCC](https://github.com/MariusCC))
|
|
18
27
|
- Dynamically allocate Floating IP for the test server. [\#155](https://github.com/test-kitchen/kitchen-openstack/pull/155) ([dannytrigo](https://github.com/dannytrigo))
|
|
19
28
|
- Defer ssh key handling to transport. [\#154](https://github.com/test-kitchen/kitchen-openstack/pull/154) ([cliles](https://github.com/cliles))
|
data/README.md
CHANGED
|
@@ -87,11 +87,23 @@ All of Fog's `openstack` options (`openstack_domain_name`, `openstack_project_na
|
|
|
87
87
|
|
|
88
88
|
### image\_ref
|
|
89
89
|
|
|
90
|
-
**
|
|
90
|
+
**image_ref or image_id required** Server Image Name or ID.
|
|
91
|
+
|
|
92
|
+
### image\_id
|
|
93
|
+
|
|
94
|
+
**image_ref or image_id required** Server Image ID. Specifying the ID instead of reference results in a faster create time.
|
|
95
|
+
|
|
96
|
+
**Note** If the image UUID changes this value will need to be updated.
|
|
91
97
|
|
|
92
98
|
### flavor\_ref
|
|
93
99
|
|
|
94
|
-
**
|
|
100
|
+
**flavor_ref or flavor_id required** Server Flavor Name or ID.
|
|
101
|
+
|
|
102
|
+
### flavor\_ref
|
|
103
|
+
|
|
104
|
+
**flavor_ref or flavor_id required** Server Flavor ID. Specifying the ID instead of reference results in a faster create time.
|
|
105
|
+
|
|
106
|
+
**Note** If the flavor UUID changes this value will need to be updated.
|
|
95
107
|
|
|
96
108
|
### server\_name
|
|
97
109
|
|
|
@@ -190,12 +202,24 @@ If your vms require config drive.
|
|
|
190
202
|
|
|
191
203
|
### network\_ref
|
|
192
204
|
|
|
193
|
-
**Deprecated** A list of network names
|
|
205
|
+
**Deprecated** A list of network names to create instances with.
|
|
206
|
+
|
|
207
|
+
```yaml
|
|
208
|
+
network_ref:
|
|
209
|
+
- [OPENSTACK NETWORK NAMES]
|
|
210
|
+
- [CREATE INSTANCE WITH]
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### network\_id
|
|
214
|
+
|
|
215
|
+
A list of network ids to create instances with. Specifying the id instead of reference results in a faster create time.
|
|
216
|
+
|
|
217
|
+
**Note** If the network UUID changes this value will need to be updated.
|
|
194
218
|
|
|
195
219
|
```yaml
|
|
196
220
|
network_ref:
|
|
197
|
-
- [OPENSTACK NETWORK
|
|
198
|
-
- [
|
|
221
|
+
- [OPENSTACK NETWORK UUIDs]
|
|
222
|
+
- [TO CREATE INSTANCE WITH]
|
|
199
223
|
```
|
|
200
224
|
|
|
201
225
|
### no\_ssh\_tcp\_check
|
|
@@ -51,6 +51,7 @@ module Kitchen
|
|
|
51
51
|
default_config :availability_zone, nil
|
|
52
52
|
default_config :security_groups, nil
|
|
53
53
|
default_config :network_ref, nil
|
|
54
|
+
default_config :network_id, nil
|
|
54
55
|
default_config :no_ssh_tcp_check, false
|
|
55
56
|
default_config :no_ssh_tcp_check_sleep, 120
|
|
56
57
|
default_config :glance_cache_wait_timeout, 600
|
|
@@ -166,7 +167,13 @@ module Kitchen
|
|
|
166
167
|
|
|
167
168
|
def create_server
|
|
168
169
|
server_def = init_configuration
|
|
169
|
-
if config[:network_ref]
|
|
170
|
+
fail(ActionFailed, 'Cannot specify both network_ref and network_id') if config[:network_id] && config[:network_ref] # rubocop:disable Metrics/LineLength, SignalException
|
|
171
|
+
if config[:network_id]
|
|
172
|
+
networks = [].concat([config[:network_id]])
|
|
173
|
+
server_def[:nics] = networks.flatten.map do |net_id|
|
|
174
|
+
{ 'net_id' => net_id }
|
|
175
|
+
end
|
|
176
|
+
elsif config[:network_ref]
|
|
170
177
|
networks = [].concat([config[:network_ref]])
|
|
171
178
|
server_def[:nics] = networks.flatten.map do |net|
|
|
172
179
|
{ 'net_id' => find_network(net).id }
|
|
@@ -193,10 +200,12 @@ module Kitchen
|
|
|
193
200
|
end
|
|
194
201
|
|
|
195
202
|
def init_configuration
|
|
203
|
+
fail(ActionFailed, 'Cannot specify both image_ref and image_id') if config[:image_id] && config[:image_ref] # rubocop:disable Metrics/LineLength, SignalException
|
|
204
|
+
fail(ActionFailed, 'Cannot specify both flavor_ref and flavor_id') if config[:flavor_id] && config[:flavor_ref] # rubocop:disable Metrics/LineLength, SignalException
|
|
196
205
|
{
|
|
197
206
|
name: config[:server_name],
|
|
198
|
-
image_ref: find_image(config[:image_ref]).id,
|
|
199
|
-
flavor_ref: find_flavor(config[:flavor_ref]).id,
|
|
207
|
+
image_ref: config[:image_id] || find_image(config[:image_ref]).id,
|
|
208
|
+
flavor_ref: config[:flavor_id] || find_flavor(config[:flavor_ref]).id,
|
|
200
209
|
availability_zone: config[:availability_zone]
|
|
201
210
|
}
|
|
202
211
|
end
|
|
@@ -315,6 +324,7 @@ module Kitchen
|
|
|
315
324
|
[pub, priv]
|
|
316
325
|
end
|
|
317
326
|
|
|
327
|
+
# rubocop:disable AbcSize
|
|
318
328
|
def get_ip(server)
|
|
319
329
|
if config[:floating_ip]
|
|
320
330
|
debug "Using floating ip: #{config[:floating_ip]}"
|
|
@@ -15,7 +15,6 @@ require 'ohai'
|
|
|
15
15
|
require 'excon'
|
|
16
16
|
require 'fog'
|
|
17
17
|
|
|
18
|
-
# rubocop: disable Metrics/BlockLength
|
|
19
18
|
describe Kitchen::Driver::Openstack do
|
|
20
19
|
let(:logged_output) { StringIO.new }
|
|
21
20
|
let(:logger) { Logger.new(logged_output) }
|
|
@@ -92,7 +91,9 @@ describe Kitchen::Driver::Openstack do
|
|
|
92
91
|
let(:config) do
|
|
93
92
|
{
|
|
94
93
|
image_ref: '22',
|
|
94
|
+
image_id: '4391b03e-f7fb-46fd-a356-fa5e42f6d728',
|
|
95
95
|
flavor_ref: '33',
|
|
96
|
+
flavor_id: '19a2281e-591e-4b47-be06-631c3c7704e8',
|
|
96
97
|
public_key_path: '/tmp',
|
|
97
98
|
username: 'admin',
|
|
98
99
|
port: '2222',
|
|
@@ -104,6 +105,7 @@ describe Kitchen::Driver::Openstack do
|
|
|
104
105
|
floating_ip_pool: 'swimmers',
|
|
105
106
|
floating_ip: '11111',
|
|
106
107
|
network_ref: '0xCAFFE',
|
|
108
|
+
network_id: '57d6e41a-f369-4c92-9ebe-1fbf198bc783',
|
|
107
109
|
use_ssh_agent: true,
|
|
108
110
|
connect_timeout: 123,
|
|
109
111
|
read_timeout: 234,
|
|
@@ -520,6 +522,78 @@ describe Kitchen::Driver::Openstack do
|
|
|
520
522
|
end
|
|
521
523
|
end
|
|
522
524
|
|
|
525
|
+
context 'image_id specified' do
|
|
526
|
+
let(:config) do
|
|
527
|
+
{
|
|
528
|
+
server_name: 'hello',
|
|
529
|
+
image_id: '1e1f4346-e3ea-48ba-9d1b-0002bfcb8981',
|
|
530
|
+
flavor_ref: '1'
|
|
531
|
+
}
|
|
532
|
+
end
|
|
533
|
+
|
|
534
|
+
it 'exact id match' do
|
|
535
|
+
expect(servers).to receive(:create).with(
|
|
536
|
+
name: 'hello',
|
|
537
|
+
image_ref: '1e1f4346-e3ea-48ba-9d1b-0002bfcb8981',
|
|
538
|
+
flavor_ref: '1',
|
|
539
|
+
availability_zone: nil
|
|
540
|
+
)
|
|
541
|
+
driver.send(:create_server)
|
|
542
|
+
end
|
|
543
|
+
end
|
|
544
|
+
|
|
545
|
+
context 'image_id and image_ref specified' do
|
|
546
|
+
let(:config) do
|
|
547
|
+
{
|
|
548
|
+
server_name: 'hello',
|
|
549
|
+
image_id: '1e1f4346-e3ea-48ba-9d1b-0002bfcb8981',
|
|
550
|
+
image_ref: '111',
|
|
551
|
+
flavor_ref: '1'
|
|
552
|
+
}
|
|
553
|
+
end
|
|
554
|
+
|
|
555
|
+
it 'raises an exception' do
|
|
556
|
+
expect { driver.send(:create_server) }.to \
|
|
557
|
+
raise_error(Kitchen::ActionFailed)
|
|
558
|
+
end
|
|
559
|
+
end
|
|
560
|
+
|
|
561
|
+
context 'flavor_id specified' do
|
|
562
|
+
let(:config) do
|
|
563
|
+
{
|
|
564
|
+
server_name: 'hello',
|
|
565
|
+
flavor_id: '1e1f4346-e3ea-48ba-9d1b-0002bfcb8981',
|
|
566
|
+
image_ref: '111'
|
|
567
|
+
}
|
|
568
|
+
end
|
|
569
|
+
|
|
570
|
+
it 'exact id match' do
|
|
571
|
+
expect(servers).to receive(:create).with(
|
|
572
|
+
name: 'hello',
|
|
573
|
+
flavor_ref: '1e1f4346-e3ea-48ba-9d1b-0002bfcb8981',
|
|
574
|
+
image_ref: '111',
|
|
575
|
+
availability_zone: nil
|
|
576
|
+
)
|
|
577
|
+
driver.send(:create_server)
|
|
578
|
+
end
|
|
579
|
+
end
|
|
580
|
+
|
|
581
|
+
context 'flavor_id and flavor_ref specified' do
|
|
582
|
+
let(:config) do
|
|
583
|
+
{
|
|
584
|
+
server_name: 'hello',
|
|
585
|
+
image_id: '1e1f4346-e3ea-48ba-9d1b-0002bfcb8981',
|
|
586
|
+
flavor_id: '1e1f4346-e3ea-48ba-9d1b-0002bfcb8981',
|
|
587
|
+
flavor_ref: '1'
|
|
588
|
+
}
|
|
589
|
+
end
|
|
590
|
+
|
|
591
|
+
it 'raises an exception' do
|
|
592
|
+
expect { driver.send(:create_server) }.to \
|
|
593
|
+
raise_error(Kitchen::ActionFailed)
|
|
594
|
+
end
|
|
595
|
+
end
|
|
596
|
+
|
|
523
597
|
context 'image/flavor specifies id' do
|
|
524
598
|
let(:config) do
|
|
525
599
|
{
|
|
@@ -575,6 +649,46 @@ describe Kitchen::Driver::Openstack do
|
|
|
575
649
|
end
|
|
576
650
|
end
|
|
577
651
|
|
|
652
|
+
context 'network specifies network_id' do
|
|
653
|
+
let(:config) do
|
|
654
|
+
{
|
|
655
|
+
server_name: 'hello',
|
|
656
|
+
image_ref: '111',
|
|
657
|
+
flavor_ref: '1',
|
|
658
|
+
network_id: '0922b7aa-0a2f-4e68-8ff7-2886c4fc472d'
|
|
659
|
+
}
|
|
660
|
+
end
|
|
661
|
+
|
|
662
|
+
it 'exact id match' do
|
|
663
|
+
networks = [
|
|
664
|
+
{ 'net_id' => '0922b7aa-0a2f-4e68-8ff7-2886c4fc472d' }
|
|
665
|
+
]
|
|
666
|
+
expect(servers).to receive(:create).with(name: 'hello',
|
|
667
|
+
image_ref: '111',
|
|
668
|
+
flavor_ref: '1',
|
|
669
|
+
availability_zone: nil,
|
|
670
|
+
nics: networks)
|
|
671
|
+
driver.send(:create_server)
|
|
672
|
+
end
|
|
673
|
+
end
|
|
674
|
+
|
|
675
|
+
context 'network_id and network_ref specified' do
|
|
676
|
+
let(:config) do
|
|
677
|
+
{
|
|
678
|
+
server_name: 'hello',
|
|
679
|
+
image_id: '1e1f4346-e3ea-48ba-9d1b-0002bfcb8981',
|
|
680
|
+
flavor_id: '1e1f4346-e3ea-48ba-9d1b-0002bfcb8981',
|
|
681
|
+
network_id: '0922b7aa-0a2f-4e68-8ff7-2886c4fc472d',
|
|
682
|
+
network_ref: '1'
|
|
683
|
+
}
|
|
684
|
+
end
|
|
685
|
+
|
|
686
|
+
it 'raises an exception' do
|
|
687
|
+
expect { driver.send(:create_server) }.to \
|
|
688
|
+
raise_error(Kitchen::ActionFailed)
|
|
689
|
+
end
|
|
690
|
+
end
|
|
691
|
+
|
|
578
692
|
context 'network specifies id' do
|
|
579
693
|
let(:config) do
|
|
580
694
|
{
|
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: 3.
|
|
4
|
+
version: 3.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jonathan Hartman
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2017-03-
|
|
12
|
+
date: 2017-03-13 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: test-kitchen
|