kitchen-digitalocean 0.10.7 → 0.13.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fce6edc2a0bff67201d4a3db40ca1d786416028c164f099b5c1da82f16712c7b
4
- data.tar.gz: 6d35e47885940bd14e7ffcc57cf7bdfc07dcbb418ca92b9fa2bee5e2bc3a1770
3
+ metadata.gz: 57b24c201f1bc0b22c851d8d7ed316c6658af9a5eae401cc5656ed2de97e632e
4
+ data.tar.gz: 9ae18f394de58c969b81db50ed82fcf187be07a4419a490a228da7899a5da66c
5
5
  SHA512:
6
- metadata.gz: 93e92da4e01c434468719368da2e8a971d8bf82c5688350e485cb14bdc57bd95907fb10fa72cd9e70eda8eb0336e5e40f4163b7813d23cb86af95941f12ce1ea
7
- data.tar.gz: 4e0424a83db5049abcb667ecb3cfabd46f948b9c23f41396bc2e995fdac5c8706ea2e75fd8307716de5889cc87151accda5118f199c12973914b091bcb84976b
6
+ metadata.gz: 2ab3ba2374832a91f659e881b2096a77045010a14c9eb571dcff691afe680bfb3044eab8156a148c2d1e1a08dc357d1bbd5980d008257c5b585cbffb0138df7f
7
+ data.tar.gz: faacfdc85d589fbe10e617558c8cbe8df7cbd49dd942fa51d032237f24ffe941af5738eee01b66992d782bf94122466b395c675bdd75f60a5cd2db088b5c0e07
@@ -17,12 +17,13 @@
17
17
  # See the License for the specific language governing permissions and
18
18
  # limitations under the License.
19
19
 
20
- require 'benchmark'
21
- require 'droplet_kit'
22
- require 'kitchen'
23
- require 'etc'
24
- require 'socket'
25
- require 'json'
20
+ require "benchmark" unless defined?(Benchmark)
21
+ require "droplet_kit" unless defined?(DropletKit)
22
+ require "kitchen"
23
+ require "etc" unless defined?(Etc)
24
+ require "socket" unless defined?(Socket)
25
+ require "json" unless defined?(JSON)
26
+ autoload :YAML, "yaml"
26
27
 
27
28
  module Kitchen
28
29
  module Driver
@@ -30,9 +31,9 @@ module Kitchen
30
31
  #
31
32
  # @author Greg Fitzgerald <greg@gregf.org>
32
33
  class Digitalocean < Kitchen::Driver::SSHBase
33
- default_config :username, 'root'
34
- default_config :port, '22'
35
- default_config :size, '1gb'
34
+ default_config :username, "root"
35
+ default_config :port, "22"
36
+ default_config :size, "s-1vcpu-1gb"
36
37
  default_config :monitoring, false
37
38
  default_config(:image, &:default_image)
38
39
  default_config(:server_name, &:default_name)
@@ -41,40 +42,35 @@ module Kitchen
41
42
  default_config :user_data, nil
42
43
  default_config :tags, nil
43
44
  default_config :firewalls, nil
45
+ default_config :vpcs, nil
44
46
 
45
47
  default_config :region do
46
- ENV['DIGITALOCEAN_REGION'] || 'nyc1'
48
+ ENV["DIGITALOCEAN_REGION"] || "nyc1"
47
49
  end
48
50
 
49
51
  default_config :digitalocean_access_token do
50
- ENV['DIGITALOCEAN_ACCESS_TOKEN']
52
+ ENV["DIGITALOCEAN_ACCESS_TOKEN"]
51
53
  end
52
54
 
53
55
  default_config :ssh_key_ids do
54
- ENV['DIGITALOCEAN_SSH_KEY_IDS'] || ENV['SSH_KEY_IDS']
56
+ ENV["DIGITALOCEAN_SSH_KEY_IDS"] || ENV["SSH_KEY_IDS"]
55
57
  end
56
58
 
57
59
  required_config :digitalocean_access_token
58
60
  required_config :ssh_key_ids
59
61
 
60
62
  PLATFORM_SLUG_MAP = {
61
- 'centos-6' => 'centos-6-x64',
62
- 'centos-7' => 'centos-7-x64',
63
- 'centos-8' => 'centos-8-x64',
64
- 'coreos-stable' => 'coreos-stable',
65
- 'coreos-beta' => 'coreos-beta',
66
- 'coreos-alpha' => 'coreos-alpha',
67
- 'debian-9' => 'debian-9-x64',
68
- 'debian-10' => 'debian-10-x64',
69
- 'fedora-30' => 'fedora-30-x64',
70
- 'fedora-31' => 'fedora-31-x64',
71
- 'fedora-32' => 'fedora-32-x64',
72
- 'freebsd-11' => 'freebsd-11-x64-zfs',
73
- 'freebsd-12' => 'freebsd-12-x64-zfs',
74
- 'ubuntu-16' => 'ubuntu-16-04-x64',
75
- 'ubuntu-18' => 'ubuntu-18-04-x64',
76
- 'ubuntu-19' => 'ubuntu-19-10-x64',
77
- 'ubuntu-20' => 'ubuntu-20-04-x64'
63
+ "centos-7" => "centos-7-x64",
64
+ "centos-8" => "centos-8-x64",
65
+ "debian-9" => "debian-9-x64",
66
+ "debian-10" => "debian-10-x64",
67
+ "fedora-32" => "fedora-32-x64",
68
+ "fedora-33" => "fedora-33-x64",
69
+ "freebsd-11" => "freebsd-11-x64-zfs",
70
+ "freebsd-12" => "freebsd-12-x64-zfs",
71
+ "ubuntu-16" => "ubuntu-16-04-x64",
72
+ "ubuntu-18" => "ubuntu-18-04-x64",
73
+ "ubuntu-20" => "ubuntu-20-04-x64",
78
74
  }.freeze
79
75
 
80
76
  def create(state)
@@ -89,29 +85,29 @@ module Kitchen
89
85
  droplet = client.droplets.find(id: state[:server_id])
90
86
 
91
87
  break if droplet && droplet.networks[:v4] &&
92
- droplet.networks[:v4].any? { |n| n[:type] == 'public' }
88
+ droplet.networks[:v4].any? { |n| n[:type] == "public" }
93
89
  end
94
90
  droplet ||= client.droplets.find(id: state[:server_id])
95
91
 
96
92
  state[:hostname] = droplet.networks[:v4]
97
- .find { |n| n[:type] == 'public' }['ip_address']
93
+ .find { |n| n[:type] == "public" }["ip_address"]
98
94
 
99
95
  if config[:firewalls]
100
- debug('trying to add the firewall by id')
96
+ debug("trying to add the firewall by id")
101
97
  fw_ids = if config[:firewalls].is_a?(String)
102
98
  config[:firewalls].split(/\s+|,\s+|,+/)
103
99
  elsif config[:firewalls].is_a?(Array)
104
100
  config[:firewalls]
105
101
  else
106
- warn('firewalls attribute is not string/array, ignoring')
102
+ warn("firewalls attribute is not string/array, ignoring")
107
103
  []
108
104
  end
109
- debug("firewall : #{fw_ids.inspect.to_yaml}")
105
+ debug("firewall : #{YAML.dump(fw_ids.inspect)}")
110
106
  fw_ids.each do |fw_id|
111
107
  firewall = client.firewalls.find(id: fw_id)
112
108
  if firewall
113
109
  client.firewalls
114
- .add_droplets([droplet.id], id: firewall.id)
110
+ .add_droplets([droplet.id], id: firewall.id)
115
111
  debug("firewall added: #{firewall.id}")
116
112
  else
117
113
  warn("firewalls id: '#{fw_id}' was not found in api, ignoring")
@@ -133,7 +129,7 @@ module Kitchen
133
129
 
134
130
  break unless droplet
135
131
 
136
- if droplet.status != 'new'
132
+ if droplet.status != "new"
137
133
  client.droplets.delete(id: state[:server_id])
138
134
  break
139
135
  end
@@ -166,11 +162,11 @@ module Kitchen
166
162
  # Total: 63
167
163
  def default_name
168
164
  [
169
- instance.name.gsub(/\W/, '')[0..14],
170
- (Etc.getlogin || 'nologin').gsub(/\W/, '')[0..14],
171
- Socket.gethostname.gsub(/\W/, '')[0..22],
172
- Array.new(7) { rand(36).to_s(36) }.join
173
- ].join('-').tr('_', '-')
165
+ instance.name.gsub(/\W/, "")[0..14],
166
+ (Etc.getlogin || "nologin").gsub(/\W/, "")[0..14],
167
+ Socket.gethostname.gsub(/\W/, "")[0..22],
168
+ Array.new(7) { rand(36).to_s(36) }.join,
169
+ ].join("-").tr("_", "-")
174
170
  end
175
171
 
176
172
  private
@@ -194,6 +190,7 @@ module Kitchen
194
190
  private_networking: config[:private_networking],
195
191
  ipv6: config[:ipv6],
196
192
  user_data: config[:user_data],
193
+ vpc_uuid: config[:vpcs],
197
194
  tags: if config[:tags].is_a?(String)
198
195
  config[:tags].split(/\s+|,\s+|,+/)
199
196
  else
@@ -204,8 +201,8 @@ module Kitchen
204
201
  resp = client.droplets.create(droplet)
205
202
 
206
203
  if resp.class != DropletKit::Droplet
207
- error JSON.parse(resp)['message']
208
- error 'Please check your access token is set correctly.'
204
+ error JSON.parse(resp)["message"]
205
+ error "Please check your access token is set correctly."
209
206
  else
210
207
  resp
211
208
  end
@@ -20,7 +20,7 @@
20
20
  module Kitchen
21
21
  module Driver
22
22
  # Version string for Digital Ocean Kitchen driver
23
- DIGITALOCEAN_VERSION = '0.10.7'
23
+ DIGITALOCEAN_VERSION = "0.13.0"
24
24
  end
25
25
  end
26
26
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kitchen-digitalocean
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.7
4
+ version: 0.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Greg Fitzgerald
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-18 00:00:00.000000000 Z
11
+ date: 2021-07-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: droplet_kit
@@ -16,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '2.8'
19
+ version: '3.7'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
22
  version: '4.0'
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: '2.8'
29
+ version: '3.7'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: '4.0'
@@ -39,7 +39,7 @@ dependencies:
39
39
  version: '1.17'
40
40
  - - "<"
41
41
  - !ruby/object:Gem::Version
42
- version: '3'
42
+ version: '4'
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
@@ -49,21 +49,7 @@ dependencies:
49
49
  version: '1.17'
50
50
  - - "<"
51
51
  - !ruby/object:Gem::Version
52
- version: '3'
53
- - !ruby/object:Gem::Dependency
54
- name: bundler
55
- requirement: !ruby/object:Gem::Requirement
56
- requirements:
57
- - - ">="
58
- - !ruby/object:Gem::Version
59
- version: '0'
60
- type: :development
61
- prerelease: false
62
- version_requirements: !ruby/object:Gem::Requirement
63
- requirements:
64
- - - ">="
65
- - !ruby/object:Gem::Version
66
- version: '0'
52
+ version: '4'
67
53
  - !ruby/object:Gem::Dependency
68
54
  name: cane
69
55
  requirement: !ruby/object:Gem::Requirement
@@ -135,19 +121,19 @@ dependencies:
135
121
  - !ruby/object:Gem::Version
136
122
  version: '3.8'
137
123
  - !ruby/object:Gem::Dependency
138
- name: rubocop
124
+ name: chefstyle
139
125
  requirement: !ruby/object:Gem::Requirement
140
126
  requirements:
141
- - - "~>"
127
+ - - '='
142
128
  - !ruby/object:Gem::Version
143
- version: '0.74'
129
+ version: 2.0.5
144
130
  type: :development
145
131
  prerelease: false
146
132
  version_requirements: !ruby/object:Gem::Requirement
147
133
  requirements:
148
- - - "~>"
134
+ - - '='
149
135
  - !ruby/object:Gem::Version
150
- version: '0.74'
136
+ version: 2.0.5
151
137
  - !ruby/object:Gem::Dependency
152
138
  name: simplecov
153
139
  requirement: !ruby/object:Gem::Requirement
@@ -204,7 +190,7 @@ homepage: https://github.com/test-kitchen/kitchen-digitalocean
204
190
  licenses:
205
191
  - Apache-2.0
206
192
  metadata: {}
207
- post_install_message:
193
+ post_install_message:
208
194
  rdoc_options: []
209
195
  require_paths:
210
196
  - lib
@@ -212,15 +198,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
212
198
  requirements:
213
199
  - - ">="
214
200
  - !ruby/object:Gem::Version
215
- version: '0'
201
+ version: '2.5'
216
202
  required_rubygems_version: !ruby/object:Gem::Requirement
217
203
  requirements:
218
204
  - - ">="
219
205
  - !ruby/object:Gem::Version
220
206
  version: '0'
221
207
  requirements: []
222
- rubygems_version: 3.0.6
223
- signing_key:
208
+ rubygems_version: 3.2.15
209
+ signing_key:
224
210
  specification_version: 4
225
211
  summary: A Test Kitchen Driver for Digital Ocean
226
212
  test_files: []