kitchen-openstack 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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