kitchen-openstack 3.6.2 → 6.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
- SHA1:
3
- metadata.gz: fc326dd999c7738478bb678cfab98e1c49003920
4
- data.tar.gz: b39b92e871aa4de9611befc908996aee4822289d
2
+ SHA256:
3
+ metadata.gz: 16893c5388d5afa323c078534d17c9ad94bb294cb9db3577c67e7620d58cfcd7
4
+ data.tar.gz: d5ab4ff3115b267a77eb9084bfe354d25eea77bbd9afcabb02b24eec1c3c6190
5
5
  SHA512:
6
- metadata.gz: ccb7b7df752ab662a13986d78d19cab65885ace8429c1f7856bfea29fc07ed3c1ceb6a94b92b9be3fc7f54ee0fca6daa9c52b254cc9dd2e4d3b655b34bd4d820
7
- data.tar.gz: 3e7595e497099897687b6be9995198330c8181fbfd6a246ddcbfccc21fb7f21de7fba313830a822d588f35fab86bed718f100c0301a411d20082d73ddd5a6d67
6
+ metadata.gz: 2b333a6c382943d6fca7f647a77ff8248e688335fcd6c1719db6cb348d105016ffa63f94f9c21c7e8e37e1a66f6e6bfab5155ad2c86117bc678da0c879eea9d4
7
+ data.tar.gz: 52e4a20679da413c401b62e2982a48022992964514595bec563902117e737d017699d6a5d94c63afbf5f40c049a9f28fab23ee204d37db184fb70e703d990195
data/README.md CHANGED
@@ -1,9 +1,7 @@
1
1
  # <a name="title"></a> Kitchen::OpenStack: A Test Kitchen Driver for OpenStack
2
2
 
3
3
  [![Gem Version](https://img.shields.io/gem/v/kitchen-openstack.svg)][gem]
4
- [![Build Status](https://img.shields.io/travis/test-kitchen/kitchen-openstack.svg)][travis]
5
- [![Code Climate](https://img.shields.io/codeclimate/github/test-kitchen/kitchen-openstack.svg)][codeclimate]
6
- [![Coverage Status](https://img.shields.io/coveralls/test-kitchen/kitchen-openstack.svg)][coveralls]
4
+ ![CI](https://github.com/test-kitchen/kitchen-openstack/workflows/CI/badge.svg)
7
5
 
8
6
  A [Test Kitchen][kitchen_ci] Driver for [OpenStack][openstack_web].
9
7
 
@@ -11,12 +9,22 @@ This driver uses the [fog gem][fog_web] to provision and destroy nova instances.
11
9
 
12
10
  Shamelessly copied from [Fletcher Nichol](https://github.com/fnichol)'s awesome work on an [EC2 driver](https://github.com/test-kitchen/kitchen-ec2), and [Adam Leff](https://github.com/adamleff)'s amazing work on an [VRO driver](https://github.com/chef-partners/kitchen-vro).
13
11
 
12
+ ## Status
13
+
14
+ This software project is no longer under active development as it has no active maintainers. The software may continue to work for some or all use cases, but issues filed in GitHub will most likely not be triaged. If a new maintainer is interested in working on this project please come chat with us in #test-kitchen on Chef Community Slack.
15
+
14
16
  ## Requirements
15
17
 
16
18
  There are **no** external system requirements for this driver. However you will need access to an OpenStack cloud.
17
19
 
18
20
  ## Installation and Setup
19
21
 
22
+ This plugin ships out of the box with Chef Workstation, which is the easiest way to make sure you always have the latest testing dependencies in a single package.
23
+
24
+ [Download Chef Workstation](https://downloads.chef.io/tools/workstation) to get started
25
+
26
+ ### Manual Installation
27
+
20
28
  Add this line to your application's Gemfile:
21
29
 
22
30
  ```ruby
@@ -35,12 +43,6 @@ Or install it yourself as:
35
43
  $ gem install kitchen-openstack
36
44
  ```
37
45
 
38
- Or if using [chefdk][chefdk_dl] install with:
39
-
40
- ```bash
41
- $ chef gem install kitchen-openstack
42
- ```
43
-
44
46
  ## Minimum Configuration
45
47
 
46
48
  ```yaml
@@ -176,7 +178,7 @@ security_groups:
176
178
 
177
179
  ### user\_data
178
180
 
179
- If your vms have `cloud-init` enabled you can use the `user_data` in your
181
+ If your VMs have `cloud-init` enabled you can use the `user_data` in your
180
182
  kitchen.yml to inject commands at boot time.
181
183
 
182
184
  ```
@@ -192,9 +194,28 @@ for example:
192
194
  echo "do whatever you want to pre-configure your machine"
193
195
  ```
194
196
 
197
+ ### cloud\_config
198
+
199
+ If your VMs have `cloud-init` enabled you can use `cloud_config` to generate userdata for use by cloud-init in the [cloud-config format](https://cloudinit.readthedocs.io/en/latest/topics/format.html#cloud-config-data). This provides a convenient way to specify cloud-init config inline. As the cloud-config format uses YAML the resulting userdata is essentially a copy+paste of `cloud_config` with the header line '#cloud-config'
200
+
201
+ ```
202
+ driver_config:
203
+ cloud_config:
204
+ hostname: my-hostname
205
+ ```
206
+
207
+ This will pass the following user data to OpenStack:
208
+
209
+ ```
210
+ #cloud-config
211
+ hostname: my-hostname
212
+ ```
213
+
214
+ The `cloud_config` and `user_data` options are mutually exclusive.
215
+
195
216
  ### config\_drive
196
217
 
197
- If your vms require config drive.
218
+ If your VMs require config drive.
198
219
 
199
220
  ```
200
221
  config_drive: true
@@ -281,6 +302,9 @@ Otherwise set this to `false`.
281
302
  #### creation\_timeout
282
303
  Timeout to wait for volume to become available. If a large volume is provisioned, it might take time to provision it on the backend. Maximum amount of time to wait for volume to be created and be available.
283
304
 
305
+ #### attach\_timeout
306
+ If using a customized version of Openstack such a VMWare Integrated OPenstack (VIO), it may mark a volume active even though it is still performing some actions which may cause test kitchen to attach the volume to early which results in errors. Specify in seconds the amount of time to delay attaching the volume after its been marked active. Default timeout is 0.
307
+
284
308
  #### Example
285
309
 
286
310
  ```yaml
@@ -291,6 +315,7 @@ block_device_mapping:
291
315
  availability_zone: nova
292
316
  delete_on_termination: false
293
317
  creation_timeout: 120
318
+ attach_timeout: 240
294
319
  ```
295
320
 
296
321
  ## Network and Communication Configuration
@@ -444,10 +469,6 @@ Apache 2.0 (see [LICENSE][license])
444
469
 
445
470
 
446
471
  [gem]: https://rubygems.org/gems/kitchen-openstack
447
- [travis]: https://travis-ci.org/test-kitchen/kitchen-openstack
448
- [codeclimate]: https://codeclimate.com/github/test-kitchen/kitchen-openstack
449
- [coveralls]: https://coveralls.io/r/test-kitchen/kitchen-openstack
450
- [gemnasium]: https://gemnasium.com/test-kitchen/kitchen-openstack
451
472
 
452
473
  [author]: https://github.com/RoboticCheese
453
474
  [maintainer]: https://github.com/jjasghar
@@ -455,8 +476,7 @@ Apache 2.0 (see [LICENSE][license])
455
476
  [license]: https://github.com/test-kitchen/kitchen-openstack/blob/master/LICENSE.txt
456
477
  [repo]: https://github.com/test-kitchen/kitchen-openstack
457
478
  [driver_usage]: https://github.com/test-kitchen/kitchen-openstack
458
- [chef_omnibus_dl]: http://www.chef.io/chef/install/
459
- [chefdk_dl]: https://downloads.chef.io/chef-dk
479
+ [chef_omnibus_dl]: https://downloads.chef.io/tools/infra-client
460
480
  [kitchen_ci]: http://kitchen.ci
461
481
 
462
482
  [openstack_web]: http://www.openstack.org
@@ -1,4 +1,3 @@
1
- # Encoding: UTF-8
2
1
  # frozen_string_literal: true
3
2
 
4
3
  #
@@ -6,7 +5,7 @@
6
5
  # Author:: JJ Asghar (<jj@chef.io>)
7
6
  #
8
7
  # Copyright (C) 2013-2015, Jonathan Hartman
9
- # Copyright (C) 2015-2017, Chef Inc
8
+ # Copyright (C) 2015-2020, Chef Software Inc.
10
9
  #
11
10
  # Licensed under the Apache License, Version 2.0 (the "License");
12
11
  # you may not use this file except in compliance with the License.
@@ -22,7 +21,8 @@
22
21
 
23
22
  require "kitchen"
24
23
  require "fog/openstack"
25
- require "ohai"
24
+ require "ohai" unless defined?(Ohai::System)
25
+ require "yaml"
26
26
  require_relative "openstack_version"
27
27
  require_relative "openstack/volume"
28
28
 
@@ -117,8 +117,7 @@ module Kitchen
117
117
  pub_ip = pub[config[:public_ip_order].to_i] || nil
118
118
  if pub_ip
119
119
  info "Retrieve the ID of floating IP <#{pub_ip}>"
120
- floating_ip_id = network.list_floating_ips(floating_ip_address: pub_ip)
121
- .body["floatingips"][0]["id"]
120
+ floating_ip_id = network.list_floating_ips(floating_ip_address: pub_ip).body["floatingips"][0]["id"]
122
121
  network.delete_floating_ip(floating_ip_id)
123
122
  info "OpenStack Floating IP <#{pub_ip}> released."
124
123
  end
@@ -134,7 +133,6 @@ module Kitchen
134
133
 
135
134
  def openstack_server
136
135
  server_def = {
137
- provider: "OpenStack",
138
136
  connection_options: {},
139
137
  }
140
138
  required_server_settings.each { |s| server_def[s] = config[s] }
@@ -148,7 +146,7 @@ module Kitchen
148
146
  end
149
147
 
150
148
  def optional_server_settings
151
- Fog::Compute::OpenStack.recognized.select do |k|
149
+ Fog::OpenStack::Compute.recognized.select do |k|
152
150
  k.to_s.start_with?("openstack")
153
151
  end - required_server_settings
154
152
  end
@@ -158,11 +156,11 @@ module Kitchen
158
156
  end
159
157
 
160
158
  def network
161
- Fog::Network.new(openstack_server)
159
+ Fog::OpenStack::Network.new(openstack_server)
162
160
  end
163
161
 
164
162
  def compute
165
- Fog::Compute.new(openstack_server)
163
+ Fog::OpenStack::Compute.new(openstack_server)
166
164
  end
167
165
 
168
166
  def volume
@@ -175,7 +173,8 @@ module Kitchen
175
173
 
176
174
  def create_server
177
175
  server_def = init_configuration
178
- fail(ActionFailed, "Cannot specify both network_ref and network_id") if config[:network_id] && config[:network_ref] # rubocop:disable SignalException
176
+ raise(ActionFailed, "Cannot specify both network_ref and network_id") if config[:network_id] && config[:network_ref]
177
+
179
178
  if config[:network_id]
180
179
  networks = [].concat([config[:network_id]])
181
180
  server_def[:nics] = networks.flatten.map do |net_id|
@@ -202,6 +201,12 @@ module Kitchen
202
201
  server_def[c] = optional_config(c) if config[c]
203
202
  end
204
203
 
204
+ if config[:cloud_config]
205
+ raise(ActionFailed, "Cannot specify both cloud_config and user_data") if config[:user_data]
206
+
207
+ server_def[:user_data] = Kitchen::Util.stringified_hash(config[:cloud_config]).to_yaml.gsub(/^---\n/, "#cloud-config\n")
208
+ end
209
+
205
210
  # Can't use the Fog bootstrap and/or setup methods here; they require a
206
211
  # public IP address that can't be guaranteed to exist across all
207
212
  # OpenStack deployments (e.g. TryStack ARM only has private IPs).
@@ -209,8 +214,9 @@ module Kitchen
209
214
  end
210
215
 
211
216
  def init_configuration
212
- fail(ActionFailed, "Cannot specify both image_ref and image_id") if config[:image_id] && config[:image_ref] # rubocop:disable SignalException
213
- fail(ActionFailed, "Cannot specify both flavor_ref and flavor_id") if config[:flavor_id] && config[:flavor_ref] # rubocop:disable SignalException
217
+ raise(ActionFailed, "Cannot specify both image_ref and image_id") if config[:image_id] && config[:image_ref]
218
+ raise(ActionFailed, "Cannot specify both flavor_ref and flavor_id") if config[:flavor_id] && config[:flavor_ref]
219
+
214
220
  {
215
221
  name: config[:server_name],
216
222
  image_ref: config[:image_id] || find_image(config[:image_ref]).id,
@@ -232,21 +238,24 @@ module Kitchen
232
238
 
233
239
  def find_image(image_ref)
234
240
  image = find_matching(compute.images, image_ref)
235
- fail(ActionFailed, "Image not found") unless image # rubocop:disable SignalException
241
+ raise(ActionFailed, "Image not found") unless image
242
+
236
243
  debug "Selected image: #{image.id} #{image.name}"
237
244
  image
238
245
  end
239
246
 
240
247
  def find_flavor(flavor_ref)
241
248
  flavor = find_matching(compute.flavors, flavor_ref)
242
- fail(ActionFailed, "Flavor not found") unless flavor # rubocop:disable SignalException
249
+ raise(ActionFailed, "Flavor not found") unless flavor
250
+
243
251
  debug "Selected flavor: #{flavor.id} #{flavor.name}"
244
252
  flavor
245
253
  end
246
254
 
247
255
  def find_network(network_ref)
248
256
  net = find_matching(network.networks.all, network_ref)
249
- fail(ActionFailed, "Network not found") unless net # rubocop:disable SignalException
257
+ raise(ActionFailed, "Network not found") unless net
258
+
250
259
  debug "Selected net: #{net.id} #{net.name}"
251
260
  net
252
261
  end
@@ -298,8 +307,10 @@ module Kitchen
298
307
  @@ip_pool_lock.synchronize do
299
308
  info "Attaching floating IP from <#{pool}> pool"
300
309
  if config[:allocate_floating_ip]
301
- network_id = network.list_networks(name: pool)
302
- .body["networks"][0]["id"]
310
+ network_id = network
311
+ .list_networks(
312
+ name: pool
313
+ ).body["networks"][0]["id"]
303
314
  resp = network.create_floating_ip(network_id)
304
315
  ip = resp.body["floatingip"]["floating_ip_address"]
305
316
  info "Created floating IP <#{ip}> from <#{pool}> pool"
@@ -309,8 +320,9 @@ module Kitchen
309
320
  i.ip if i.fixed_ip.nil? && i.instance_id.nil? && i.pool == pool
310
321
  end.compact
311
322
  if free_addrs.empty?
312
- fail ActionFailed, "No available IPs in pool <#{pool}>" # rubocop:disable SignalException
323
+ raise ActionFailed, "No available IPs in pool <#{pool}>"
313
324
  end
325
+
314
326
  config[:floating_ip] = free_addrs[0]
315
327
  end
316
328
  attach_ip(server, config[:floating_ip])
@@ -326,7 +338,7 @@ module Kitchen
326
338
  begin
327
339
  pub = server.public_ip_addresses
328
340
  priv = server.private_ip_addresses
329
- rescue Fog::Compute::OpenStack::NotFound, Excon::Errors::Forbidden
341
+ rescue Fog::OpenStack::Compute::NotFound, Excon::Errors::Forbidden
330
342
  # See Fog issue: https://github.com/fog/fog/issues/2160
331
343
  addrs = server.addresses
332
344
  addrs["public"] && pub = addrs["public"].map { |i| i["addr"] }
@@ -353,8 +365,7 @@ module Kitchen
353
365
  # should also work for private networks
354
366
  if config[:openstack_network_name]
355
367
  debug "Using configured net: #{config[:openstack_network_name]}"
356
- return filter_ips(server.addresses[config[:openstack_network_name]])
357
- .first["addr"]
368
+ return filter_ips(server.addresses[config[:openstack_network_name]]).first["addr"]
358
369
  end
359
370
 
360
371
  pub, priv = get_public_private_ips(server)
@@ -362,7 +373,7 @@ module Kitchen
362
373
  pub, priv = parse_ips(pub, priv)
363
374
  pub[config[:public_ip_order].to_i] ||
364
375
  priv[config[:private_ip_order].to_i] ||
365
- fail(ActionFailed, "Could not find an IP") # rubocop:disable SignalException
376
+ raise(ActionFailed, "Could not find an IP")
366
377
  end
367
378
 
368
379
  def filter_ips(addresses)
@@ -407,7 +418,7 @@ module Kitchen
407
418
  end
408
419
 
409
420
  def disable_ssl_validation
410
- require "excon"
421
+ require "excon" unless defined?(Excon)
411
422
  Excon.defaults[:ssl_verify_peer] = false
412
423
  end
413
424
 
@@ -437,7 +448,7 @@ module Kitchen
437
448
  if name.start_with?("/") && name.end_with?("/")
438
449
  regex = Regexp.new(name[1...-1])
439
450
  # check for regex name match
440
- collection.each { |single| return single if regex =~ single.name }
451
+ collection.each { |single| return single if regex&.match?(single.name) }
441
452
  else
442
453
  # check for exact id match
443
454
  collection.each { |single| return single if single.id == name }
@@ -1,4 +1,3 @@
1
- # Encoding: UTF-8
2
1
  # frozen_string_literal: true
3
2
 
4
3
  #
@@ -36,7 +35,7 @@ module Kitchen
36
35
  end
37
36
 
38
37
  def volume(openstack_server)
39
- Fog::Volume.new(openstack_server)
38
+ Fog::OpenStack::Volume.new(openstack_server)
40
39
  end
41
40
 
42
41
  def create_volume(config, os)
@@ -48,10 +47,13 @@ module Kitchen
48
47
  opt[key] = bdm[key]
49
48
  end
50
49
  @logger.info "Creating Volume..."
51
- resp = volume(os).create_volume("#{config[:server_name]}-volume",
52
- "#{config[:server_name]} volume",
53
- bdm[:volume_size],
54
- opt)
50
+ resp = volume(os)
51
+ .create_volume(
52
+ "#{config[:server_name]}-volume",
53
+ "#{config[:server_name]} volume",
54
+ bdm[:volume_size],
55
+ opt
56
+ )
55
57
  vol_id = resp[:body]["volume"]["id"]
56
58
 
57
59
  # Get Volume Model to make waiting for ready easy
@@ -67,9 +69,17 @@ module Kitchen
67
69
  vol_model.wait_for(creation_timeout) do
68
70
  sleep(1)
69
71
  raise("Failed to make volume") if status.casecmp("error".downcase) == 0
72
+
70
73
  ready?
71
74
  end
72
75
 
76
+ attach_timeout = bdm.key?(:attach_timeout) ? bdm[:attach_timeout] : 0
77
+
78
+ if attach_timeout > 0
79
+ @logger.debug "Sleeping for an additional #{attach_timeout} seconds before attaching volume to wait for Openstack to finish disk creation process.."
80
+ sleep(attach_timeout)
81
+ end
82
+
73
83
  @logger.debug "Volume Ready"
74
84
 
75
85
  vol_id
@@ -1,11 +1,10 @@
1
- # Encoding: UTF-8
2
1
  # frozen_string_literal: true
3
2
 
4
3
  #
5
4
  # Author:: Jonathan Hartman (<j@p4nt5.com>)
6
5
  #
7
6
  # Copyright (C) 2013-2015, Jonathan Hartman
8
- # Copyright (C) 2015-2018, Chef Software Inc
7
+ # Copyright (C) 2015-2021, Chef Software Inc
9
8
  #
10
9
  # Licensed under the Apache License, Version 2.0 (the "License");
11
10
  # you may not use this file except in compliance with the License.
@@ -24,6 +23,6 @@ module Kitchen
24
23
  #
25
24
  # @author Jonathan Hartman <j@p4nt5.com>
26
25
  module Driver
27
- OPENSTACK_VERSION = "3.6.2"
26
+ OPENSTACK_VERSION = "6.1.0"
28
27
  end
29
28
  end
metadata CHANGED
@@ -1,64 +1,50 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kitchen-openstack
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.6.2
4
+ version: 6.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Hartman
8
8
  - JJ Asghar
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2018-09-13 00:00:00.000000000 Z
12
+ date: 2021-07-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: test-kitchen
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - "~>"
19
- - !ruby/object:Gem::Version
20
- version: '1.4'
21
18
  - - ">="
22
19
  - !ruby/object:Gem::Version
23
20
  version: 1.4.1
21
+ - - "<"
22
+ - !ruby/object:Gem::Version
23
+ version: '4'
24
24
  type: :runtime
25
25
  prerelease: false
26
26
  version_requirements: !ruby/object:Gem::Requirement
27
27
  requirements:
28
- - - "~>"
29
- - !ruby/object:Gem::Version
30
- version: '1.4'
31
28
  - - ">="
32
29
  - !ruby/object:Gem::Version
33
30
  version: 1.4.1
31
+ - - "<"
32
+ - !ruby/object:Gem::Version
33
+ version: '4'
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: fog-openstack
36
36
  requirement: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0.1'
40
+ version: '1.0'
41
41
  type: :runtime
42
42
  prerelease: false
43
43
  version_requirements: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0.1'
48
- - !ruby/object:Gem::Dependency
49
- name: unf
50
- requirement: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- type: :runtime
56
- prerelease: false
57
- version_requirements: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
47
+ version: '1.0'
62
48
  - !ruby/object:Gem::Dependency
63
49
  name: ohai
64
50
  requirement: !ruby/object:Gem::Requirement
@@ -115,20 +101,6 @@ dependencies:
115
101
  - - ">="
116
102
  - !ruby/object:Gem::Version
117
103
  version: '0'
118
- - !ruby/object:Gem::Dependency
119
- name: cane
120
- requirement: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- version: '0'
125
- type: :development
126
- prerelease: false
127
- version_requirements: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - ">="
130
- - !ruby/object:Gem::Version
131
- version: '0'
132
104
  - !ruby/object:Gem::Dependency
133
105
  name: countloc
134
106
  requirement: !ruby/object:Gem::Requirement
@@ -157,48 +129,6 @@ dependencies:
157
129
  - - ">="
158
130
  - !ruby/object:Gem::Version
159
131
  version: '0'
160
- - !ruby/object:Gem::Dependency
161
- name: simplecov
162
- requirement: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - ">="
165
- - !ruby/object:Gem::Version
166
- version: '0'
167
- type: :development
168
- prerelease: false
169
- version_requirements: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - ">="
172
- - !ruby/object:Gem::Version
173
- version: '0'
174
- - !ruby/object:Gem::Dependency
175
- name: simplecov-console
176
- requirement: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - ">="
179
- - !ruby/object:Gem::Version
180
- version: '0'
181
- type: :development
182
- prerelease: false
183
- version_requirements: !ruby/object:Gem::Requirement
184
- requirements:
185
- - - ">="
186
- - !ruby/object:Gem::Version
187
- version: '0'
188
- - !ruby/object:Gem::Dependency
189
- name: coveralls
190
- requirement: !ruby/object:Gem::Requirement
191
- requirements:
192
- - - ">="
193
- - !ruby/object:Gem::Version
194
- version: '0'
195
- type: :development
196
- prerelease: false
197
- version_requirements: !ruby/object:Gem::Requirement
198
- requirements:
199
- - - ">="
200
- - !ruby/object:Gem::Version
201
- version: '0'
202
132
  - !ruby/object:Gem::Dependency
203
133
  name: github_changelog_generator
204
134
  requirement: !ruby/object:Gem::Requirement
@@ -221,26 +151,15 @@ executables: []
221
151
  extensions: []
222
152
  extra_rdoc_files: []
223
153
  files:
224
- - ".gitignore"
225
- - ".rubocop.yml"
226
- - ".travis.yml"
227
- - CHANGELOG.md
228
- - Gemfile
229
- - LICENSE.txt
230
154
  - README.md
231
- - Rakefile
232
- - kitchen-openstack.gemspec
233
155
  - lib/kitchen/driver/openstack.rb
234
156
  - lib/kitchen/driver/openstack/volume.rb
235
157
  - lib/kitchen/driver/openstack_version.rb
236
- - spec/kitchen/driver/openstack/volume_spec.rb
237
- - spec/kitchen/driver/openstack_spec.rb
238
- - spec/spec_helper.rb
239
158
  homepage: https://github.com/test-kitchen/kitchen-openstack
240
159
  licenses:
241
- - Apache
160
+ - Apache-2.0
242
161
  metadata: {}
243
- post_install_message:
162
+ post_install_message:
244
163
  rdoc_options: []
245
164
  require_paths:
246
165
  - lib
@@ -248,19 +167,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
248
167
  requirements:
249
168
  - - ">="
250
169
  - !ruby/object:Gem::Version
251
- version: 2.0.0
170
+ version: 2.6.0
252
171
  required_rubygems_version: !ruby/object:Gem::Requirement
253
172
  requirements:
254
173
  - - ">="
255
174
  - !ruby/object:Gem::Version
256
175
  version: '0'
257
176
  requirements: []
258
- rubyforge_project:
259
- rubygems_version: 2.5.1
260
- signing_key:
177
+ rubygems_version: 3.2.15
178
+ signing_key:
261
179
  specification_version: 4
262
180
  summary: A Test Kitchen OpenStack Nova driver
263
- test_files:
264
- - spec/kitchen/driver/openstack/volume_spec.rb
265
- - spec/kitchen/driver/openstack_spec.rb
266
- - spec/spec_helper.rb
181
+ test_files: []