kitchen-softlayer 0.1.0 → 1.0.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
  SHA1:
3
- metadata.gz: 490411db2bd36714e967aabfbd5517b83e9f93e0
4
- data.tar.gz: 43689042ddcf3bebcc6a6a84aa313f22119e61dd
3
+ metadata.gz: 013a71150cbda12647fd0f2e3d6ad97f2850d1f2
4
+ data.tar.gz: 8f64d3f54079265ed045b44c40e130b9a4746d21
5
5
  SHA512:
6
- metadata.gz: 077925f2ca58b015d1097b7401b77ef6f8fa04aaa7aa7dc2e489f7079924b348e65071c8fc157b7d4721f426d863d17329010215ac3d3bd1fff7e9857c187761
7
- data.tar.gz: 9df0820590baad9db937adcdff8957737f4d55ea0b02aab3d91205eb4b1b67b69d6cbb0626e7be0700e80449b5335a9e8304ea7a7b921af9c8591dbd8d23fcb4
6
+ metadata.gz: 7a8c6226624125539e56202788b6dd9bfc7216da135b5f4e771351be166f332cc8ef0cd7f0ba3c5137109c53c2fcb0a5e80f1d50c1a9b2b0844117d6a29cf019
7
+ data.tar.gz: 907cd8365b975128a949da19c842832708488440914f7528f0a32b687a932dd0a2c3e2d3773380c212cb633bf96dc59f8876fcb3549445c48b546da38fef48e3
data/README.md CHANGED
@@ -45,11 +45,10 @@ An example of the driver options in your `.kitchen.yml` file:
45
45
  ssh_key: C:/mykeys/my_private_sshkey.pem
46
46
  username: root
47
47
  server_name: 'myserver-test'
48
- hostname: 'MyProject-test01'
48
+ domain: softlayer.com
49
49
  flavor_id: m1.tiny
50
50
  # image_id: '3b235124-a190-40b5-9720-c020e61b99e1'
51
51
  os_code: 'CENTOS_7_64'
52
- domain: softlayer.com
53
52
  private_network_only: true
54
53
  cpu: 1,
55
54
  ram: 1024,
@@ -77,9 +76,9 @@ For test-kitchen to access the server via ssh it needs to be on the softlayer pr
77
76
  The `image_ref` and `flavor_ref` options can be specified as an exact id,
78
77
  an exact name, or as a regular expression matching the name of the image or flavor.
79
78
 
80
- ### hostname
79
+ ### server_name
81
80
 
82
- the driver checks for a server with the hostname and will use that server instead of creating another one.
81
+ the driver checks for a server with the server_name and will use that server instead of creating another one.
83
82
 
84
83
  ### disable_ssl_validation
85
84
 
@@ -103,7 +102,6 @@ disable_ssl_validation | false | ssl validation for fog softlayer api
103
102
  username | 'root' | server's administration user
104
103
  password | nil | server's administration password
105
104
  port | '22' | ssh port of servef
106
- hostname| nil | hostname of server
107
105
  domain | ENV['softlayer_default_domain'] | domain nane of server
108
106
  fqdn | nil | fully qualified domain name
109
107
  cpu | nil | no of cpus
@@ -116,7 +114,7 @@ image_id | nil | image name or internal id
116
114
  ephemeral_storage | nil | storage
117
115
  network_components | nil | network
118
116
  ssh_timeout | 300 | timeout to ssh when server starting
119
- ssh_via_hostname | false | use hostname for ssh instead of IP
117
+ ssh_via_hostname | false | use server_name for ssh instead of IP
120
118
  alternate_ip | nil | alternate ip address for ssh access
121
119
  destroy_wait | true | wait for destroy to complete
122
120
  destroy_timeout | 300 | timeout to wait until server destroyed
@@ -1,4 +1,5 @@
1
1
  # Encoding: utf-8
2
+
2
3
  #
3
4
  # Licensed under the Apache License, Version 2.0 (the "License");
4
5
  # you may not use this file except in compliance with the License.
@@ -27,7 +28,7 @@ module Kitchen
27
28
  default_config :key_name, nil
28
29
  required_config :key_name
29
30
  default_config :ssh_key do
30
- %w(id_rsa id_dsa).map do |k|
31
+ %w[id_rsa id_dsa].map do |k|
31
32
  f = File.expand_path("~/.ssh/#{k}")
32
33
  f if File.exist?(f)
33
34
  end.compact.first
@@ -38,7 +39,6 @@ module Kitchen
38
39
  default_config :username, 'root'
39
40
  default_config :password, nil
40
41
  default_config :port, '22'
41
- default_config :hostname, nil
42
42
  default_config :domain, ENV['softlayer_default_domain']
43
43
  default_config :fqdn, nil
44
44
  default_config :cpu, nil
@@ -75,12 +75,19 @@ module Kitchen
75
75
  default_config :provision_script, nil
76
76
  default_config :ssh_via_hostname, false
77
77
  default_config :alternate_ip, nil
78
+ default_config :connect_timeout, 120
79
+ default_config :read_timeout, 120
80
+ default_config :write_timeout, 120
78
81
 
82
+ # rubocop:disable Metrics/AbcSize
79
83
  def create(state)
80
84
  config_server_name
81
85
  config[:disable_ssl_validation] && disable_ssl_validation
82
- server = find_server(config[:hostname])
83
- server = create_server unless server
86
+ config[:fqdn] = "#{config[:server_name]}.#{config[:domain]}"
87
+ debug "fqdn: #{config[:fqdn]}"
88
+ debug "server_name: #{config[:server_name]}"
89
+ debug "server_name_prefix: #{config[:server_name_prefix]}"
90
+ server = create_server unless find_server(config[:fqdn])
84
91
  state[:server_id] = server.id
85
92
  info "Softlayer instance <#{state[:server_id]}> created."
86
93
  server.wait_for do
@@ -89,8 +96,9 @@ module Kitchen
89
96
  end
90
97
  info "\n(server ready)"
91
98
  tag_server(server)
99
+ # set state[:hostname] to be able to setup ssh using Fog::SSH
92
100
  state[:hostname] = if config[:ssh_via_hostname]
93
- config[:hostname]
101
+ config[:server_name]
94
102
  elsif config[:alternate_ip]
95
103
  config[:alternate_ip]
96
104
  else
@@ -111,7 +119,7 @@ module Kitchen
111
119
  wait_for_server_to_delete(state) if config[:destroy_wait]
112
120
  info "Softlayer instance <#{state[:server_id]}> destroyed."
113
121
  state.delete(:server_id)
114
- state.delete(:hostname)
122
+ state.delete(:server_name)
115
123
  end
116
124
 
117
125
  private
@@ -175,14 +183,12 @@ module Kitchen
175
183
  )
176
184
  end
177
185
 
178
- def find_server(hostname)
186
+ def find_server(fqdn)
179
187
  s = nil
180
- servers = compute.servers.all
181
- servers.each do |server|
182
- if server.name == hostname
183
- s = server
184
- info "Server with hostname #{hostname} already created"
185
- end
188
+ srvs = compute.servers.all.select { |x| x.fqdn == fqdn }
189
+ unless srvs.empty?
190
+ s = srvs[0]
191
+ info "Server with fqdn #{fqdn} already created"
186
192
  end
187
193
  s
188
194
  end
@@ -227,30 +233,30 @@ module Kitchen
227
233
  # { 'net_id' => find_network(net).id }
228
234
  # end
229
235
  # end
230
- [
231
- :username,
232
- :password,
233
- :port,
234
- :domain,
235
- :fqdn,
236
- :cpu,
237
- :ram,
238
- :disk,
239
- :flavor_id,
240
- :bare_metal,
241
- :os_code,
242
- :image_id,
243
- :ephemeral_storage,
244
- :network_components,
245
- :account_id,
246
- :single_tenant,
247
- :global_identifier,
248
- :tags,
249
- :user_data,
250
- :uid,
251
- :vlan,
252
- :private_vlan,
253
- :provision_script
236
+ %i[
237
+ username
238
+ password
239
+ port
240
+ domain
241
+ fqdn
242
+ cpu
243
+ ram
244
+ disk
245
+ flavor_id
246
+ bare_metal
247
+ os_code
248
+ image_id
249
+ ephemeral_storage
250
+ network_components
251
+ account_id
252
+ single_tenant
253
+ global_identifier
254
+ tags
255
+ user_data
256
+ uid
257
+ vlan
258
+ private_vlan
259
+ provision_script
254
260
  ].each do |c|
255
261
  server_def[c] = optional_config(c) if config[c]
256
262
  end
@@ -262,7 +268,6 @@ module Kitchen
262
268
  {
263
269
  name: config[:server_name],
264
270
  key_pairs: [compute.key_pairs.by_label(config[:key_name])],
265
- hostname: config[:hostname],
266
271
  datacenter: config[:datacenter],
267
272
  hourly_billing_flag: config[:hourly_billing_flag],
268
273
  private_network_only: config[:private_network_only]
@@ -1,4 +1,5 @@
1
1
  # Encoding: UTF-8
2
+
2
3
  #
3
4
  # Licensed under the Apache License, Version 2.0 (the "License");
4
5
  # you may not use this file except in compliance with the License.
@@ -15,6 +16,6 @@
15
16
  module Kitchen
16
17
  # Version string for Softlayer Kitchen driver
17
18
  module Driver
18
- SOFTLAYER_VERSION = '0.1.0'.freeze
19
+ SOFTLAYER_VERSION = '1.0.0'.freeze
19
20
  end
20
21
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kitchen-softlayer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Neill Turner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-23 00:00:00.000000000 Z
11
+ date: 2017-04-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: test-kitchen