kitchen-openstack 3.0.0 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a9507fa7ef6e5992264a1c247afd51d101a4900d
4
- data.tar.gz: 89250f568fd53af7606ac13b80b51207c8ced09c
3
+ metadata.gz: 0b45b8838c9ce9a545a07a8901639a6eb32ddd42
4
+ data.tar.gz: 7f1064f7e1b13a831174e2b04c8545f4f22eb4ee
5
5
  SHA512:
6
- metadata.gz: 3f9042d9819e7ded25c59456be4dc786e72565f8ffe1021dc82411c2684d2f6abe5e97c5c1efdef593c435a27182e5b5d6f739dda8234ce2790c57a43e1ef089
7
- data.tar.gz: 21fd4880c2a0fe69b288da4b39ca04b76018fef140f41aed4e30b0222b8bbe615401e8ae65e53eedcab4b8d4d5deec24386bc0481f5b18f309a7649fa7997f7a
6
+ metadata.gz: 4668a5ee747b461c5cf2402f136e82fec77b76e7a43836bd8987c0f3b1054caaaf2e860dd4c3c4776f17e85677220a56a9194d3387b800e6a0e866dd71cfea7a
7
+ data.tar.gz: d680ce65e0b59b420afa1375c8c290d50d6141dfdea5bfee781de7e4cd9c89cf4d8adfbd6a18471cf58f7ce4dda32e641258594a3839e821af6fc140e945bc8a
@@ -1,11 +1,25 @@
1
1
  # Change Log
2
2
 
3
- ## [v3.0.0](https://github.com/test-kitchen/kitchen-openstack/tree/v3.0.0) (2016-02-24)
3
+ ## [v3.1.0](https://github.com/test-kitchen/kitchen-openstack/tree/v3.1.0)
4
+
5
+ [Full Changelog](https://github.com/test-kitchen/kitchen-openstack/compare/v3.0.0...v3.1.0)
6
+
7
+ **Closed issues:**
8
+
9
+ - `use\_ipv6` setting not respected when using `openstack\_network\_name` [\#141](https://github.com/test-kitchen/kitchen-openstack/issues/141)
4
10
 
11
+ **Merged pull requests:**
12
+
13
+ - Add config drive [\#144](https://github.com/test-kitchen/kitchen-openstack/pull/144) ([bradkwadsworth](https://github.com/bradkwadsworth))
14
+ - Update to check IP version when using `openstack\_network\_name`. [\#142](https://github.com/test-kitchen/kitchen-openstack/pull/142) ([nmische](https://github.com/nmische))
15
+ - minor grammar tweak to sleep message [\#140](https://github.com/test-kitchen/kitchen-openstack/pull/140) ([dpetzel](https://github.com/dpetzel))
16
+
17
+ ## [v3.0.0](https://github.com/test-kitchen/kitchen-openstack/tree/v3.0.0) (2016-02-24)
5
18
  [Full Changelog](https://github.com/test-kitchen/kitchen-openstack/compare/v3.0.0.pre.1...v3.0.0)
6
19
 
7
20
  **Merged pull requests:**
8
21
 
22
+ - 3.0.0 prep work [\#139](https://github.com/test-kitchen/kitchen-openstack/pull/139) ([jjasghar](https://github.com/jjasghar))
9
23
  - 3.0.0 Release of kitchen-openstack [\#136](https://github.com/test-kitchen/kitchen-openstack/pull/136) ([jjasghar](https://github.com/jjasghar))
10
24
 
11
25
  ## [v3.0.0.pre.1](https://github.com/test-kitchen/kitchen-openstack/tree/v3.0.0.pre.1) (2016-02-12)
data/README.md CHANGED
@@ -197,6 +197,14 @@ for example:
197
197
  echo "do whatever you want to pre-configure your machine"
198
198
  ```
199
199
 
200
+ ### config\_drive
201
+
202
+ If your vms require config drive.
203
+
204
+ ```
205
+ config_drive: true
206
+ ```
207
+
200
208
  ### network\_ref
201
209
 
202
210
  **Deprecated** A list of network names or ids to create instances with.
@@ -306,6 +314,10 @@ to use second `10.0.1.1` IP address you need to specify
306
314
  ```
307
315
  assuming that test network is configured as private.
308
316
 
317
+ ### use_ipv6
318
+
319
+ If true use IPv6 addresses to for SSH connections. If false, the default, use
320
+ IPv4 addresses for SSH connections.
309
321
 
310
322
  ### network\_ref
311
323
 
@@ -35,4 +35,5 @@ Gem::Specification.new do |spec|
35
35
  spec.add_development_dependency 'simplecov'
36
36
  spec.add_development_dependency 'simplecov-console'
37
37
  spec.add_development_dependency 'coveralls'
38
+ spec.add_development_dependency 'github_changelog_generator'
38
39
  end
@@ -179,7 +179,8 @@ module Kitchen
179
179
  :security_groups,
180
180
  :public_key_path,
181
181
  :key_name,
182
- :user_data
182
+ :user_data,
183
+ :config_drive
183
184
  ].each do |c|
184
185
  server_def[c] = optional_config(c) if config[c]
185
186
  end
@@ -324,7 +325,8 @@ module Kitchen
324
325
  # should also work for private networks
325
326
  if config[:openstack_network_name]
326
327
  debug "Using configured net: #{config[:openstack_network_name]}"
327
- return server.addresses[config[:openstack_network_name]].first['addr']
328
+ return filter_ips(server.addresses[config[:openstack_network_name]])
329
+ .first['addr']
328
330
  end
329
331
 
330
332
  pub, priv = get_public_private_ips(server)
@@ -335,6 +337,14 @@ module Kitchen
335
337
  fail(ActionFailed, 'Could not find an IP') # rubocop:disable Metrics/LineLength, SignalException
336
338
  end
337
339
 
340
+ def filter_ips(addresses)
341
+ if config[:use_ipv6]
342
+ return addresses.select { |i| IPAddr.new(i['addr']).ipv6? }
343
+ else
344
+ return addresses.select { |i| IPAddr.new(i['addr']).ipv4? }
345
+ end
346
+ end
347
+
338
348
  def parse_ips(pub, priv)
339
349
  pub = Array(pub)
340
350
  priv = Array(priv)
@@ -375,7 +385,7 @@ module Kitchen
375
385
 
376
386
  def wait_for_server(state)
377
387
  if config[:server_wait]
378
- info "Sleeping for #{config[:server_wait]} seconds to let your server to start up..." # rubocop:disable Metrics/LineLength
388
+ info "Sleeping for #{config[:server_wait]} seconds to let your server start up..." # rubocop:disable Metrics/LineLength
379
389
  countdown(config[:server_wait])
380
390
  end
381
391
  info 'Waiting for server to be ready...'
@@ -22,6 +22,6 @@ module Kitchen
22
22
  #
23
23
  # @author Jonathan Hartman <j@p4nt5.com>
24
24
  module Driver
25
- OPENSTACK_VERSION = '3.0.0'.freeze
25
+ OPENSTACK_VERSION = '3.1.0'.freeze
26
26
  end
27
27
  end
@@ -713,7 +713,32 @@ describe Kitchen::Driver::Openstack do
713
713
  flavor_ref: '1',
714
714
  availability_zone: nil,
715
715
  public_key_path: 'tarpals',
716
- user_data: data)
716
+ user_data: data
717
+ )
718
+ driver.send(:create_server)
719
+ end
720
+ end
721
+
722
+ context 'config drive enabled' do
723
+ let(:config) do
724
+ {
725
+ server_name: 'hello',
726
+ image_ref: '111',
727
+ flavor_ref: '1',
728
+ public_key_path: 'tarpals',
729
+ config_drive: true
730
+ }
731
+ end
732
+
733
+ it 'enables config drive' do
734
+ expect(servers).to receive(:create).with(
735
+ name: 'hello',
736
+ image_ref: '111',
737
+ flavor_ref: '1',
738
+ availability_zone: nil,
739
+ public_key_path: 'tarpals',
740
+ config_drive: true
741
+ )
717
742
  driver.send(:create_server)
718
743
  end
719
744
  end
@@ -952,9 +977,11 @@ describe Kitchen::Driver::Openstack do
952
977
  context 'an OpenStack deployment without the floating IP extension' do
953
978
  before do
954
979
  allow(server).to receive(:public_ip_addresses).and_raise(
955
- Fog::Compute::OpenStack::NotFound)
980
+ Fog::Compute::OpenStack::NotFound
981
+ )
956
982
  allow(server).to receive(:private_ip_addresses).and_raise(
957
- Fog::Compute::OpenStack::NotFound)
983
+ Fog::Compute::OpenStack::NotFound
984
+ )
958
985
  end
959
986
 
960
987
  context 'both public and private IPs in the addresses hash' do
@@ -987,6 +1014,38 @@ describe Kitchen::Driver::Openstack do
987
1014
  end
988
1015
  end
989
1016
 
1017
+ context 'when openstack_network_name is provided and use_ipv6 is false' do
1018
+ let(:addresses) do
1019
+ {
1020
+ 'public' => [{ 'addr' => '4::1' }, { 'addr' => '7.7.7.7' }],
1021
+ 'private' => [{ 'addr' => '5::1' }, { 'addr' => '9.9.9.9' }]
1022
+ }
1023
+ end
1024
+ let(:config) { { openstack_network_name: 'public' } }
1025
+
1026
+ it 'should respond with the first IPv4 address from the addresses' do
1027
+ allow(driver).to receive(:config).and_return(config)
1028
+
1029
+ expect(driver.send(:get_ip, server)).to eq('7.7.7.7')
1030
+ end
1031
+ end
1032
+
1033
+ context 'when openstack_network_name is provided and use_ipv6 is true' do
1034
+ let(:addresses) do
1035
+ {
1036
+ 'public' => [{ 'addr' => '4::1' }, { 'addr' => '7.7.7.7' }],
1037
+ 'private' => [{ 'addr' => '5::1' }, { 'addr' => '9.9.9.9' }]
1038
+ }
1039
+ end
1040
+ let(:config) { { openstack_network_name: 'public', use_ipv6: true } }
1041
+
1042
+ it 'should respond with the first IPv6 address from the addresses' do
1043
+ allow(driver).to receive(:config).and_return(config)
1044
+
1045
+ expect(driver.send(:get_ip, server)).to eq('4::1')
1046
+ end
1047
+ end
1048
+
990
1049
  context 'only public IPs in the address hash' do
991
1050
  let(:addresses) do
992
1051
  { 'public' => [{ 'addr' => '6.6.6.6' }, { 'addr' => '7.7.7.7' }] }
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.0.0
4
+ version: 3.1.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: 2016-02-24 00:00:00.000000000 Z
12
+ date: 2016-06-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: test-kitchen
@@ -199,6 +199,20 @@ dependencies:
199
199
  - - ">="
200
200
  - !ruby/object:Gem::Version
201
201
  version: '0'
202
+ - !ruby/object:Gem::Dependency
203
+ name: github_changelog_generator
204
+ requirement: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
209
+ type: :development
210
+ prerelease: false
211
+ version_requirements: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
202
216
  description: A Test Kitchen OpenStack Nova driver
203
217
  email:
204
218
  - j@p4nt5.com
@@ -242,7 +256,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
242
256
  version: '0'
243
257
  requirements: []
244
258
  rubyforge_project:
245
- rubygems_version: 2.2.2
259
+ rubygems_version: 2.5.1
246
260
  signing_key:
247
261
  specification_version: 4
248
262
  summary: A Test Kitchen OpenStack Nova driver