kitchen-digitalocean 0.10.7 → 0.13.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
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: []