kitchen-opennebula 0.2.2 → 0.2.3

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
  SHA1:
3
- metadata.gz: 952184d163c45c32a2a238a231ec2f06f197e104
4
- data.tar.gz: 416bea360b1a26c48320fbbd80c76642fdb2a2e4
3
+ metadata.gz: 4643133b424f45bd40a1c7dca4bfcb422e0e2b48
4
+ data.tar.gz: f55a4c362814f33108361087611a492d0c1b8db3
5
5
  SHA512:
6
- metadata.gz: e3123a8611a73deda4e2bc296e9ccca3d8aa807294836a5088eef39ef98fbc9fe8384b3b69c768b4ac31033b5e31ac4165a9402f65eac15b9f5b65713be441ac
7
- data.tar.gz: 9c504d723301c80e3cc5ebfcf5fd8afa09c7ff2f3274fdb41685b4b99d6b9f20231ad00484883247ea7e982c422bdf80baab01e7cbb8fa5c31c6cb14f48f7c21
6
+ metadata.gz: 40726c75ea943f1d3de2d8c4c5a40bd8460914d7395d3d385283a8df21e49ebbacfffd38a9949dd34eb838c54a90add6f78214b179ffb1cfbde4ef82b3e737d9
7
+ data.tar.gz: b5ce1b7330d0801edbbec218688a39007ff2d279da7c3516a505766feb36d933c2927efbec93290f23931ee51570c9a33038bd5da0fcda8548f5635b3090f2c2
data/.gitignore CHANGED
@@ -1 +1,4 @@
1
1
  .project
2
+ .idea
3
+ Gemfile.lock
4
+ pkg
@@ -1,3 +1,10 @@
1
+ ## 0.2.3
2
+
3
+ * add random string to instance name
4
+ * allow specifying cpu for box
5
+ * use documented ONE_AUTH key
6
+ * keep lower bound of requirement to '>= 4.10'
7
+
1
8
  ## 0.2.2
2
9
 
3
10
  * Restrict opennebula gem dependency version to be '~> 4.10', '< 5'.
data/Rakefile CHANGED
@@ -1,10 +1,12 @@
1
- require "bundler/gem_tasks"
1
+ require 'bundler'
2
+ require 'bundler/gem_tasks'
2
3
  require 'cane/rake_task'
3
4
  require 'tailor/rake_task'
4
5
 
5
6
  desc "Run cane to check quality metrics"
6
7
  Cane::RakeTask.new do |cane|
7
- cane.canefile = './.cane'
8
+ cane.abc_max = 80
9
+ cane.style_measure = 120
8
10
  end
9
11
 
10
12
  Tailor::RakeTask.new
@@ -16,6 +18,6 @@ task :stats do
16
18
  end
17
19
 
18
20
  desc "Run all quality tasks"
19
- task :quality => [:cane, :tailor, :stats]
21
+ task :quality => [:cane, :tailor]
20
22
 
21
23
  task :default => [:quality]
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_dependency 'test-kitchen', '~> 1.2'
22
22
  spec.add_dependency 'fog', '~> 1.30'
23
- spec.add_dependency 'opennebula', '~> 4.10', '< 5'
23
+ spec.add_dependency 'opennebula', '>= 4.10'
24
24
 
25
25
  spec.add_development_dependency 'bundler', '~> 1.3'
26
26
  spec.add_development_dependency 'rake'
@@ -34,7 +34,8 @@ module Kitchen
34
34
  ENV.fetch('ONE_AUTH', "#{ENV['HOME']}/.one/one_auth")
35
35
 
36
36
  default_config :vm_hostname do |driver|
37
- "#{driver.instance.name}"
37
+ randstr = 8.times.collect{[*'a'..'z',*('0'..'9')].sample}.join
38
+ "#{driver.instance.name}-#{randstr}"
38
39
  end
39
40
 
40
41
  default_config :public_key_path do
@@ -48,6 +49,8 @@ module Kitchen
48
49
 
49
50
  default_config :username, 'local'
50
51
  default_config :memory, 512
52
+ default_config :vcpu, 1
53
+ default_config :cpu, 1
51
54
  default_config :user_variables, { }
52
55
  default_config :context_variables, { }
53
56
 
@@ -56,7 +59,7 @@ module Kitchen
56
59
  default_config :no_ssh_tcp_check_sleep, 120
57
60
  default_config :no_passwordless_sudo_check, false
58
61
  default_config :no_passwordless_sudo_sleep, 120
59
-
62
+
60
63
  def initialize(config)
61
64
  super
62
65
  Fog.timeout = config[:wait_for].to_i
@@ -68,14 +71,14 @@ module Kitchen
68
71
  # Ensure we can authenticate with OpenNebula
69
72
  rc = conn.client.get_version
70
73
  raise(rc.message) if OpenNebula.is_error?(rc)
71
-
74
+
72
75
  # Check if VM is already created.
73
76
  if state[:vm_id] && !conn.list_vms({:id => state[:vm_id]}).empty?
74
77
  info("OpenNebula instance #{instance.to_str} already created.")
75
78
  return
76
79
  end
77
-
78
- if config[:template_id].nil? and config[:template_name].nil?
80
+
81
+ if config[:template_id].nil? and config[:template_name].nil?
79
82
  raise "template_name or template_id not specified in .kitchen.yml"
80
83
  elsif !config[:template_id].nil? and !config[:template_name].nil?
81
84
  raise "Only one of template_name or template_id should be specified in .kitchen.yml"
@@ -100,12 +103,12 @@ module Kitchen
100
103
  raise "Could not find template to create VM. -- Verify your template filters and one_auth credentials"
101
104
  end
102
105
  newvm.name = config[:vm_hostname]
103
-
106
+
104
107
  newvm.flavor.user_variables = {} if newvm.flavor.user_variables.nil? || newvm.flavor.user_variables.empty?
105
108
  config[:user_variables].each do |key, val|
106
109
  newvm.flavor.user_variables[key.to_s] = val
107
110
  end
108
-
111
+
109
112
  newvm.flavor.context = {} if newvm.flavor.context.nil? || newvm.flavor.context.empty?
110
113
  newvm.flavor.context['SSH_PUBLIC_KEY'] = File.read(config[:public_key_path]).chomp
111
114
  newvm.flavor.context['TEST_KITCHEN'] = "YES"
@@ -114,7 +117,9 @@ module Kitchen
114
117
  newvm.flavor.context[key.to_s] = val
115
118
  end
116
119
  newvm.flavor.memory = config[:memory]
117
-
120
+ newvm.flavor.vcpu = config[:vcpu]
121
+ newvm.flavor.cpu = config[:cpu]
122
+
118
123
  # TODO: Set up NIC and disk if not specified in template
119
124
  vm = newvm.save
120
125
  vm.wait_for { ready? }
@@ -131,7 +136,7 @@ module Kitchen
131
136
  sleep(config[:no_ssh_tcp_check_sleep]) if config[:no_ssh_tcp_check]
132
137
  debug("SSH ready on #{instance.to_str}")
133
138
  end
134
-
139
+
135
140
  def passwordless_sudo_check(state)
136
141
  if config[:no_passwordless_sudo_check]
137
142
  sleep(config[:no_passwordless_sudo_sleep])
@@ -140,7 +145,7 @@ module Kitchen
140
145
  end
141
146
  debug("Passwordless sudo ready on #{instance.to_str}")
142
147
  end
143
-
148
+
144
149
  def wait_for_passwordless_sudo(state)
145
150
  retries = config[:passwordless_sudo_timeout] || 300
146
151
  retry_interval = config[:passwordless_sudo_retry_interval] || 10
@@ -156,7 +161,7 @@ module Kitchen
156
161
  raise ActionFailed, e.message
157
162
  end
158
163
  end
159
-
164
+
160
165
  def converge(state)
161
166
  super
162
167
  end
@@ -172,9 +177,15 @@ module Kitchen
172
177
 
173
178
  protected
174
179
 
175
- def opennebula_connect()
180
+ def opennebula_connect()
176
181
  opennebula_creds = nil
177
- if File.exists?(config[:oneauth_file])
182
+ if ENV.has_key?('ONE_AUTH')
183
+ if File.exist?(ENV['ONE_AUTH'])
184
+ opennebula_creds = File.read(ENV['ONE_AUTH'])
185
+ else
186
+ opennebula_creds = ENV['ONE_AUTH']
187
+ end
188
+ elsif File.exist?(config[:oneauth_file])
178
189
  opennebula_creds = File.read(config[:oneauth_file])
179
190
  else
180
191
  raise ActionFailed, "Could not find one_auth file #{config[:oneauth_file]}"
@@ -21,6 +21,6 @@ module Kitchen
21
21
  module Driver
22
22
 
23
23
  # Version string for Opennebula Kitchen driver
24
- OPENNEBULA_VERSION = "0.2.2"
24
+ OPENNEBULA_VERSION = "0.2.3"
25
25
  end
26
26
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kitchen-opennebula
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew J. Brown
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-21 00:00:00.000000000 Z
11
+ date: 2017-11-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: test-kitchen
@@ -42,22 +42,16 @@ dependencies:
42
42
  name: opennebula
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '4.10'
48
- - - "<"
49
- - !ruby/object:Gem::Version
50
- version: '5'
51
48
  type: :runtime
52
49
  prerelease: false
53
50
  version_requirements: !ruby/object:Gem::Requirement
54
51
  requirements:
55
- - - "~>"
52
+ - - ">="
56
53
  - !ruby/object:Gem::Version
57
54
  version: '4.10'
58
- - - "<"
59
- - !ruby/object:Gem::Version
60
- version: '5'
61
55
  - !ruby/object:Gem::Dependency
62
56
  name: bundler
63
57
  requirement: !ruby/object:Gem::Requirement
@@ -164,9 +158,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
164
158
  version: '0'
165
159
  requirements: []
166
160
  rubyforge_project:
167
- rubygems_version: 2.5.2
161
+ rubygems_version: 2.6.11
168
162
  signing_key:
169
163
  specification_version: 4
170
164
  summary: A Test Kitchen Driver for Opennebula
171
165
  test_files: []
172
- has_rdoc: