kitchen-digitalocean 0.11.1 → 0.14.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: 9ee936b646475252b3c7690f1b75a05a41806f6a4c8acfea8b716b1f096607f7
4
- data.tar.gz: 37ec7efe3db5588d1aeb609e3261ec00fe9b2bf62d7793967282bd208019c932
3
+ metadata.gz: e672cac2c1f48149a9137a73ed6de23524007a0166450dab83c4bd5298bb961d
4
+ data.tar.gz: b87d05c0319e8e5f7c27008c414019991b22f2ad5d8df87c5710e23c69185798
5
5
  SHA512:
6
- metadata.gz: ddc4afea267452af18a249a95ba44f4772fbfbdfc914e0e40ebe17ef914fc186c9be42318ccd90ab4911ffb60c5e3174c934230cee054288ccb7eded877efdb8
7
- data.tar.gz: d8961e6347160b8a5a9e8de7528cde4551831a7f8407998800ad1a6cb847100cb04d09dc4e5613aa188b9b52a95bacc546cbb9d46d1d57040b5bef950ebe77ff
6
+ metadata.gz: de30257dd64980a1066e3a24ce2e6ff33819948cd6e969da3653a97bef81854835a4611238234af18b5c818f5cafb1dab0e16d487248d0651497b8334e27e217
7
+ data.tar.gz: 6fb5d6cb238690e9863c67de3c8ef6bfd4c54809b4ea1086f20e2bf0c92c0aec34dfb96df94f03c8f2b5f35d78baff68960f107d120e660cfd02d401df5b49f1
@@ -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' 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)
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)
@@ -43,40 +44,34 @@ module Kitchen
43
44
  default_config :firewalls, nil
44
45
  default_config :vpcs, nil
45
46
 
46
-
47
47
  default_config :region do
48
- ENV['DIGITALOCEAN_REGION'] || 'nyc1'
48
+ ENV["DIGITALOCEAN_REGION"] || "nyc1"
49
49
  end
50
50
 
51
51
  default_config :digitalocean_access_token do
52
- ENV['DIGITALOCEAN_ACCESS_TOKEN']
52
+ ENV["DIGITALOCEAN_ACCESS_TOKEN"]
53
53
  end
54
54
 
55
55
  default_config :ssh_key_ids do
56
- ENV['DIGITALOCEAN_SSH_KEY_IDS'] || ENV['SSH_KEY_IDS']
56
+ ENV["DIGITALOCEAN_SSH_KEY_IDS"] || ENV["SSH_KEY_IDS"]
57
57
  end
58
58
 
59
59
  required_config :digitalocean_access_token
60
60
  required_config :ssh_key_ids
61
61
 
62
62
  PLATFORM_SLUG_MAP = {
63
- 'centos-6' => 'centos-6-x64',
64
- 'centos-7' => 'centos-7-x64',
65
- 'centos-8' => 'centos-8-x64',
66
- 'coreos-stable' => 'coreos-stable',
67
- 'coreos-beta' => 'coreos-beta',
68
- 'coreos-alpha' => 'coreos-alpha',
69
- 'debian-9' => 'debian-9-x64',
70
- 'debian-10' => 'debian-10-x64',
71
- 'fedora-30' => 'fedora-30-x64',
72
- 'fedora-31' => 'fedora-31-x64',
73
- 'fedora-32' => 'fedora-32-x64',
74
- 'freebsd-11' => 'freebsd-11-x64-zfs',
75
- 'freebsd-12' => 'freebsd-12-x64-zfs',
76
- 'ubuntu-16' => 'ubuntu-16-04-x64',
77
- 'ubuntu-18' => 'ubuntu-18-04-x64',
78
- 'ubuntu-19' => 'ubuntu-19-10-x64',
79
- '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
+ "debian-11" => "debian-11-x64",
68
+ "fedora-32" => "fedora-32-x64",
69
+ "fedora-33" => "fedora-33-x64",
70
+ "freebsd-11" => "freebsd-11-x64-zfs",
71
+ "freebsd-12" => "freebsd-12-x64-zfs",
72
+ "ubuntu-16" => "ubuntu-16-04-x64",
73
+ "ubuntu-18" => "ubuntu-18-04-x64",
74
+ "ubuntu-20" => "ubuntu-20-04-x64",
80
75
  }.freeze
81
76
 
82
77
  def create(state)
@@ -91,29 +86,29 @@ module Kitchen
91
86
  droplet = client.droplets.find(id: state[:server_id])
92
87
 
93
88
  break if droplet && droplet.networks[:v4] &&
94
- droplet.networks[:v4].any? { |n| n[:type] == 'public' }
89
+ droplet.networks[:v4].any? { |n| n[:type] == "public" }
95
90
  end
96
91
  droplet ||= client.droplets.find(id: state[:server_id])
97
92
 
98
93
  state[:hostname] = droplet.networks[:v4]
99
- .find { |n| n[:type] == 'public' }['ip_address']
94
+ .find { |n| n[:type] == "public" }["ip_address"]
100
95
 
101
96
  if config[:firewalls]
102
- debug('trying to add the firewall by id')
97
+ debug("trying to add the firewall by id")
103
98
  fw_ids = if config[:firewalls].is_a?(String)
104
99
  config[:firewalls].split(/\s+|,\s+|,+/)
105
100
  elsif config[:firewalls].is_a?(Array)
106
101
  config[:firewalls]
107
102
  else
108
- warn('firewalls attribute is not string/array, ignoring')
103
+ warn("firewalls attribute is not string/array, ignoring")
109
104
  []
110
105
  end
111
- debug("firewall : #{fw_ids.inspect.to_yaml}")
106
+ debug("firewall : #{YAML.dump(fw_ids.inspect)}")
112
107
  fw_ids.each do |fw_id|
113
108
  firewall = client.firewalls.find(id: fw_id)
114
109
  if firewall
115
110
  client.firewalls
116
- .add_droplets([droplet.id], id: firewall.id)
111
+ .add_droplets([droplet.id], id: firewall.id)
117
112
  debug("firewall added: #{firewall.id}")
118
113
  else
119
114
  warn("firewalls id: '#{fw_id}' was not found in api, ignoring")
@@ -135,7 +130,7 @@ module Kitchen
135
130
 
136
131
  break unless droplet
137
132
 
138
- if droplet.status != 'new'
133
+ if droplet.status != "new"
139
134
  client.droplets.delete(id: state[:server_id])
140
135
  break
141
136
  end
@@ -168,11 +163,11 @@ module Kitchen
168
163
  # Total: 63
169
164
  def default_name
170
165
  [
171
- instance.name.gsub(/\W/, '')[0..14],
172
- (Etc.getlogin || 'nologin').gsub(/\W/, '')[0..14],
173
- Socket.gethostname.gsub(/\W/, '')[0..22],
174
- Array.new(7) { rand(36).to_s(36) }.join
175
- ].join('-').tr('_', '-')
166
+ instance.name.gsub(/\W/, "")[0..14],
167
+ (Etc.getlogin || "nologin").gsub(/\W/, "")[0..14],
168
+ Socket.gethostname.gsub(/\W/, "")[0..22],
169
+ Array.new(7) { rand(36).to_s(36) }.join,
170
+ ].join("-").tr("_", "-")
176
171
  end
177
172
 
178
173
  private
@@ -207,8 +202,8 @@ module Kitchen
207
202
  resp = client.droplets.create(droplet)
208
203
 
209
204
  if resp.class != DropletKit::Droplet
210
- error JSON.parse(resp)['message']
211
- error 'Please check your access token is set correctly.'
205
+ error JSON.parse(resp)["message"]
206
+ error "Please check your access token is set correctly."
212
207
  else
213
208
  resp
214
209
  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.11.1'
23
+ DIGITALOCEAN_VERSION = "0.14.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.11.1
4
+ version: 0.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Greg Fitzgerald
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-21 00:00:00.000000000 Z
11
+ date: 2021-10-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: droplet_kit
@@ -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.1.0
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.1.0
151
137
  - !ruby/object:Gem::Dependency
152
138
  name: simplecov
153
139
  requirement: !ruby/object:Gem::Requirement
@@ -212,14 +198,14 @@ 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.1.2
208
+ rubygems_version: 3.2.22
223
209
  signing_key:
224
210
  specification_version: 4
225
211
  summary: A Test Kitchen Driver for Digital Ocean