kitchen-openstack 1.0.0 → 1.1.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 CHANGED
@@ -1,3 +1,13 @@
1
+ # 1.1.0 / 2013-12-07
2
+
3
+ ### Improvements
4
+
5
+ * Tested against, and working with, Test Kitchen 1.1.0
6
+
7
+ ### Bug Fixes
8
+
9
+ * PR [#31][] - Fix collision with TK 1.x; change `name` option to `server_name`
10
+
1
11
  # 1.0.0 / 2013-10-16
2
12
 
3
13
  ### New Features
@@ -52,6 +62,7 @@
52
62
 
53
63
  * Initial release! Woo!
54
64
 
65
+ [#31]: https://github.com/RoboticCheese/kitchen-openstack/pull/31
55
66
  [#27]: https://github.com/RoboticCheese/kitchen-openstack/pull/27
56
67
  [#26]: https://github.com/RoboticCheese/kitchen-openstack/pull/26
57
68
  [#25]: https://github.com/RoboticCheese/kitchen-openstack/pull/25
data/README.md CHANGED
@@ -1,4 +1,7 @@
1
- [![Gem Version](https://badge.fury.io/rb/kitchen-openstack.png)](http://badge.fury.io/rb/kitchen-openstack) [![Dependency Status](https://gemnasium.com/RoboticCheese/kitchen-openstack.png)](https://gemnasium.com/RoboticCheese/kitchen-openstack) [![Build Status](https://travis-ci.org/RoboticCheese/kitchen-openstack.png?branch=master)](https://travis-ci.org/RoboticCheese/kitchen-openstack) [![Code Climate](https://codeclimate.com/github/RoboticCheese/kitchen-openstack.png)](https://codeclimate.com/github/RoboticCheese/kitchen-openstack)
1
+ [![Gem Version](https://badge.fury.io/rb/kitchen-openstack.png)](http://badge.fury.io/rb/kitchen-openstack)
2
+ [![Build Status](https://travis-ci.org/RoboticCheese/kitchen-openstack.png?branch=master)](https://travis-ci.org/RoboticCheese/kitchen-openstack)
3
+ [![Code Climate](https://codeclimate.com/github/RoboticCheese/kitchen-openstack.png)](https://codeclimate.com/github/RoboticCheese/kitchen-openstack)
4
+ [![Dependency Status](https://gemnasium.com/RoboticCheese/kitchen-openstack.png)](https://gemnasium.com/RoboticCheese/kitchen-openstack)
2
5
 
3
6
  # Kitchen::OpenStack
4
7
 
@@ -25,8 +28,8 @@ Or install it yourself as:
25
28
 
26
29
  Provide, at a minimum, the required driver options in your `.kitchen.yml` file:
27
30
 
28
- driver_plugin: openstack
29
- driver_config:
31
+ driver:
32
+ name: openstack
30
33
  openstack_username: [YOUR OPENSTACK USERNAME]
31
34
  openstack_api_key: [YOUR OPENSTACK API KEY]
32
35
  openstack_auth_url: [YOUR OPENSTACK AUTH URL]
@@ -41,7 +44,7 @@ By default, a unique server name will be generated and the current user's SSH
41
44
  key will be used (with an RSA key taking precedence over a DSA), though that
42
45
  behavior can be overridden with additional options:
43
46
 
44
- name: [A UNIQUE SERVER NAME]
47
+ server_name: [A UNIQUE SERVER NAME]
45
48
  private_key_path: [PATH TO YOUR PRIVATE SSH KEY]
46
49
  public_key_path: [PATH TO YOUR SSH PUBLIC KEY]
47
50
  username: [SSH USER]
@@ -18,8 +18,10 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ['lib']
20
20
 
21
- spec.add_dependency 'test-kitchen', '~> 1.0.0.beta'
22
- spec.add_dependency 'fog', '~> 1.15'
21
+ spec.add_dependency 'test-kitchen', '~> 1.1'
22
+ spec.add_dependency 'fog', '~> 1.18'
23
+ # Newer Fogs throw a warning if unf isn't there :(
24
+ spec.add_dependency 'unf'
23
25
 
24
26
  spec.add_development_dependency 'bundler'
25
27
  spec.add_development_dependency 'rake'
@@ -31,7 +31,7 @@ module Kitchen
31
31
  class Openstack < Kitchen::Driver::SSHBase
32
32
  @@ip_pool_lock = Mutex.new
33
33
 
34
- default_config :name, nil
34
+ default_config :server_name, nil
35
35
  default_config :key_name, nil
36
36
  default_config :private_key_path do |driver|
37
37
  %w{id_rsa id_dsa}.collect do |k|
@@ -53,7 +53,7 @@ module Kitchen
53
53
  default_config :floating_ip, nil
54
54
 
55
55
  def create(state)
56
- config[:name] ||= generate_name(instance.name)
56
+ config[:server_name] ||= generate_name(instance.name)
57
57
  config[:disable_ssl_validation] and disable_ssl_validation
58
58
  server = create_server
59
59
  state[:server_id] = server.id
@@ -118,7 +118,7 @@ module Kitchen
118
118
  debug "Selected flavor: #{flavor.id} #{flavor.name}"
119
119
 
120
120
  server_def = {
121
- :name => config[:name],
121
+ :name => config[:server_name],
122
122
  :image_ref => image.id,
123
123
  :flavor_ref => flavor.id
124
124
  }
@@ -19,7 +19,7 @@
19
19
  module Kitchen
20
20
  module Driver
21
21
  # Version string for OpenStack Kitchen driver
22
- OPENSTACK_VERSION = '1.0.0'
22
+ OPENSTACK_VERSION = '1.1.0'
23
23
  end
24
24
  end
25
25
 
@@ -31,7 +31,9 @@ describe Kitchen::Driver::Openstack do
31
31
  let(:rsa) { File.expand_path('~/.ssh/id_rsa') }
32
32
 
33
33
  let(:instance) do
34
- double(:name => 'potatoes', :logger => logger, :to_str => 'instance')
34
+ double(
35
+ :name => 'potatoes', :logger => logger, :to_str => 'instance'
36
+ )
35
37
  end
36
38
 
37
39
  let(:driver) do
@@ -96,7 +98,7 @@ describe Kitchen::Driver::Openstack do
96
98
  end
97
99
 
98
100
  nils = [
99
- :name,
101
+ :server_name,
100
102
  :openstack_tenant,
101
103
  :openstack_region,
102
104
  :openstack_service_name,
@@ -118,7 +120,7 @@ describe Kitchen::Driver::Openstack do
118
120
  :public_key_path => '/tmp',
119
121
  :username => 'admin',
120
122
  :port => '2222',
121
- :name => 'puppy',
123
+ :server_name => 'puppy',
122
124
  :openstack_tenant => 'that_one',
123
125
  :openstack_region => 'atlantis',
124
126
  :openstack_service_name => 'the_service',
@@ -165,7 +167,7 @@ describe Kitchen::Driver::Openstack do
165
167
 
166
168
  it 'generates a server name in the absence of one' do
167
169
  driver.create(state)
168
- expect(driver[:name]).to eq('a_monkey!')
170
+ expect(driver[:server_name]).to eq('a_monkey!')
169
171
  end
170
172
 
171
173
  it 'gets a proper server ID' do
@@ -303,7 +305,7 @@ describe Kitchen::Driver::Openstack do
303
305
  describe '#create_server' do
304
306
  let(:config) do
305
307
  {
306
- :name => 'hello',
308
+ :server_name => 'hello',
307
309
  :image_ref => '111',
308
310
  :flavor_ref => '1',
309
311
  :public_key_path => 'tarpals'
@@ -330,50 +332,66 @@ describe Kitchen::Driver::Openstack do
330
332
  end
331
333
 
332
334
  context 'a default config' do
333
- before(:each) { @config = config.dup }
335
+ before(:each) do
336
+ @expected = config.merge(:name => config[:server_name])
337
+ @expected.delete_if do |k, v|
338
+ k == :server_name
339
+ end
340
+ end
334
341
 
335
342
  it 'creates the server using a compute connection' do
336
- expect(driver.send(:create_server)).to eq(@config)
343
+ expect(driver.send(:create_server)).to eq(@expected)
337
344
  end
338
345
  end
339
346
 
340
347
  context 'a provided public key path' do
341
348
  let(:config) do
342
349
  {
343
- :name => 'hello',
350
+ :server_name => 'hello',
344
351
  :image_ref => '111',
345
352
  :flavor_ref => '1',
346
353
  :public_key_path => 'tarpals'
347
354
  }
348
355
  end
349
- before(:each) { @config = config.dup }
356
+ before(:each) do
357
+ @expected = config.merge(:name => config[:server_name])
358
+ @expected.delete_if do |k, v|
359
+ k == :server_name
360
+ end
361
+ end
350
362
 
351
363
  it 'passes that public key path to Fog' do
352
- expect(driver.send(:create_server)).to eq(@config)
364
+ expect(driver.send(:create_server)).to eq(@expected)
353
365
  end
354
366
  end
355
367
 
356
368
  context 'a provided key name' do
357
369
  let(:config) do
358
370
  {
359
- :name => 'hello',
371
+ :server_name => 'hello',
360
372
  :image_ref => '111',
361
373
  :flavor_ref => '1',
362
374
  :public_key_path => 'montgomery',
363
375
  :key_name => 'tarpals'
364
376
  }
365
377
  end
366
- before(:each) { @config = config.dup }
378
+
379
+ before(:each) do
380
+ @expected = config.merge(:name => config[:server_name])
381
+ @expected.delete_if do |k, v|
382
+ k == :server_name
383
+ end
384
+ end
367
385
 
368
386
  it 'passes that key name to Fog' do
369
- expect(driver.send(:create_server)).to eq(@config)
387
+ expect(driver.send(:create_server)).to eq(@expected)
370
388
  end
371
389
  end
372
390
 
373
391
  context 'image/flavor specifies id' do
374
392
  let(:config) do
375
393
  {
376
- :name => 'hello',
394
+ :server_name => 'hello',
377
395
  :image_ref => '111',
378
396
  :flavor_ref => '1',
379
397
  :public_key_path => 'tarpals'
@@ -391,7 +409,7 @@ describe Kitchen::Driver::Openstack do
391
409
  context 'image/flavor specifies name' do
392
410
  let(:config) do
393
411
  {
394
- :name => 'hello',
412
+ :server_name => 'hello',
395
413
  :image_ref => 'fedora',
396
414
  :flavor_ref => 'small',
397
415
  :public_key_path => 'tarpals'
@@ -409,7 +427,7 @@ describe Kitchen::Driver::Openstack do
409
427
  context 'image/flavor specifies regex' do
410
428
  let(:config) do
411
429
  {
412
- :name => 'hello',
430
+ :server_name => 'hello',
413
431
  # pass regex as string as yml returns string values
414
432
  :image_ref => '/edo/',
415
433
  :flavor_ref => '/in/',
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: 1.0.0
4
+ version: 1.1.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-10-16 00:00:00.000000000 Z
12
+ date: 2013-12-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: test-kitchen
@@ -18,7 +18,7 @@ dependencies:
18
18
  requirements:
19
19
  - - ~>
20
20
  - !ruby/object:Gem::Version
21
- version: 1.0.0.beta
21
+ version: '1.1'
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ~>
28
28
  - !ruby/object:Gem::Version
29
- version: 1.0.0.beta
29
+ version: '1.1'
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: fog
32
32
  requirement: !ruby/object:Gem::Requirement
@@ -34,7 +34,7 @@ dependencies:
34
34
  requirements:
35
35
  - - ~>
36
36
  - !ruby/object:Gem::Version
37
- version: '1.15'
37
+ version: '1.18'
38
38
  type: :runtime
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
@@ -42,7 +42,23 @@ dependencies:
42
42
  requirements:
43
43
  - - ~>
44
44
  - !ruby/object:Gem::Version
45
- version: '1.15'
45
+ version: '1.18'
46
+ - !ruby/object:Gem::Dependency
47
+ name: unf
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
46
62
  - !ruby/object:Gem::Dependency
47
63
  name: bundler
48
64
  requirement: !ruby/object:Gem::Requirement