kitchen-openstack 2.0.0.dev.2 → 2.0.0.dev.3

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: cef0991824a20e3a44ecfe230dfe3e5ef9057e7d
4
- data.tar.gz: 70dd8e1b27f23ce8d1a576cdae41ffcedc0cadb5
3
+ metadata.gz: 66008f6399b2f88b79228a8e4bdcb0d4d66e1e23
4
+ data.tar.gz: 025e776aeb603cf6e5c461eec6af7ba9517f2f35
5
5
  SHA512:
6
- metadata.gz: eea8bd9d0d91d0b996e2fa382b983beff57fadd1de33bec438786e3fa9efa98c3ee38f3cae4f3a9836958f44ade3c91a6767d5e6bba2f1407d01e9a840423b5a
7
- data.tar.gz: c070913b199da7bff57171cc9f8245a956038734a825e491f8e4191576bc07d728adc25abc37d3eef3c74bc9d6811be9df0d0ca05be48408363b5d4376803da9
6
+ metadata.gz: 6f8887259c413711e78cac4bb47c364c4d234601a30b76c93a18dd1961904fee17748f61ef9e9a70a3248405372e4ac0e266f5310c85b41c793f12b2ee7792d6
7
+ data.tar.gz: 2b861ee3fb1d09f3e74e5b38e57b284277a300fb752c5456aba843225da1f55b9e0f85907080f5e1eae7f1090111600a148c1f892f9b8d5aec00656236b4681b
@@ -5,6 +5,10 @@
5
5
  * Re-written for the new test-kitchen underlying framework
6
6
  * Windows and WinRM support
7
7
  * Stole some code from PR [#80][] - from [@jmahowald][]
8
+ * Resolve for issue [#96][]
9
+ * Don't create instance if name is already created [#100][] - from [@dpetzel][]
10
+ * Load openstack_version for plugin_version [#99][] - from [@BobbyRyterski][]
11
+ * Support all Fog OpenStack options [#98][] - from [@BobbyRyterski][]
8
12
 
9
13
  # 1.8.1 / 2015-07-22
10
14
 
data/README.md CHANGED
@@ -55,6 +55,9 @@ driver:
55
55
  The `image_ref` and `flavor_ref` options can be specified as an exact id,
56
56
  an exact name, or as a regular expression matching the name of the image or flavor.
57
57
 
58
+ All of Fog's `openstack` options (`openstack_domain_name`, `openstack_project_name`,
59
+ ...) are supported. This includes support for the OpenStack Identity v3 API.
60
+
58
61
  Test Kitchen 1.4 supports multiple transports, and transports can be configure globally:
59
62
 
60
63
  ```yaml
@@ -73,15 +73,24 @@ module Kitchen
73
73
  end
74
74
  end
75
75
 
76
+ # Set the proper server name in the config
77
+ def config_server_name
78
+ return if config[:server_name]
79
+
80
+ if config[:server_name_prefix]
81
+ config[:server_name] = server_name_prefix(
82
+ config[:server_name_prefix]
83
+ )
84
+ else
85
+ config[:server_name] = default_name
86
+ end
87
+ end
88
+
76
89
  def create(state)
77
- unless config[:server_name]
78
- if config[:server_name_prefix]
79
- config[:server_name] = server_name_prefix(
80
- config[:server_name_prefix]
81
- )
82
- else
83
- config[:server_name] = default_name
84
- end
90
+ config_server_name
91
+ if state[:server_id]
92
+ info "#{config[:server_name]} (#{state[:server_id]}) already exists."
93
+ return
85
94
  end
86
95
  disable_ssl_validation if config[:disable_ssl_validation]
87
96
  server = create_server
@@ -118,7 +127,7 @@ module Kitchen
118
127
  provider: 'OpenStack'
119
128
  }
120
129
  required_server_settings.each { |s| server_def[s] = config[s] }
121
- optional_server_settings.each { |s| server_def[s] = config[s] }
130
+ optional_server_settings.each { |s| server_def[s] = config[s] if config[s] } # rubocop:disable Metrics/LineLength
122
131
  server_def
123
132
  end
124
133
 
@@ -127,7 +136,9 @@ module Kitchen
127
136
  end
128
137
 
129
138
  def optional_server_settings
130
- [:openstack_tenant, :openstack_region, :openstack_service_name]
139
+ Fog::Compute::OpenStack.recognized.select do |k|
140
+ k.to_s.start_with?('openstack')
141
+ end - required_server_settings
131
142
  end
132
143
 
133
144
  def network
@@ -323,14 +334,14 @@ module Kitchen
323
334
  if bourne_shell?
324
335
  info 'Adding OpenStack hint for ohai'
325
336
  mkdir_cmd = "sudo mkdir -p #{hints_path}"
326
- touch_cmd = "sudo touch #{hints_path}/openstack.json"
337
+ touch_cmd = "sudo cat '{}' >> #{hints_path}/openstack.json"
327
338
  instance.transport.connection(state).execute(
328
339
  "#{mkdir_cmd} && #{touch_cmd}"
329
340
  )
330
341
  elsif windows_os?
331
342
  info 'Adding OpenStack hint for ohai'
332
343
  mkdir_cmd = "mkdir #{hints_path}"
333
- touch_cmd = "'' > #{hints_path}\\openstack.json"
344
+ touch_cmd = "'{}' > #{hints_path}\\openstack.json"
334
345
  instance.transport.connection(state).execute(
335
346
  "#{mkdir_cmd} && #{touch_cmd}"
336
347
  )
@@ -21,6 +21,6 @@ module Kitchen
21
21
  #
22
22
  # @author Jonathan Hartman <j@p4nt5.com>
23
23
  module Driver
24
- OPENSTACK_VERSION = '2.0.0.dev.2'
24
+ OPENSTACK_VERSION = '2.0.0.dev.3'
25
25
  end
26
26
  end
@@ -232,6 +232,14 @@ describe Kitchen::Driver::Openstack do
232
232
  driver.create(state)
233
233
  end
234
234
  end
235
+
236
+ context 'when a server is already created' do
237
+ it 'does not create a new instance' do
238
+ state[:server_id] = '123'
239
+ expect(driver).not_to receive(:create_server)
240
+ driver.create(state)
241
+ end
242
+ end
235
243
  end
236
244
 
237
245
  describe '#destroy' do
@@ -330,10 +338,10 @@ describe Kitchen::Driver::Openstack do
330
338
 
331
339
  describe '#optional_server_settings' do
332
340
  it 'returns the optional settings for an OpenStack server' do
333
- expected = [
334
- :openstack_tenant, :openstack_region, :openstack_service_name
341
+ excluded = [
342
+ :openstack_username, :openstack_api_key, :openstack_auth_url
335
343
  ]
336
- expect(driver.send(:optional_server_settings)).to eq(expected)
344
+ expect(driver.send(:optional_server_settings)).not_to include(*excluded)
337
345
  end
338
346
  end
339
347
 
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: 2.0.0.dev.2
4
+ version: 2.0.0.dev.3
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: 2015-09-16 00:00:00.000000000 Z
12
+ date: 2015-09-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: test-kitchen