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 +4 -4
- data/.gitignore +3 -0
- data/CHANGELOG.md +7 -0
- data/Rakefile +5 -3
- data/kitchen-opennebula.gemspec +1 -1
- data/lib/kitchen/driver/opennebula.rb +24 -13
- data/lib/kitchen/driver/opennebula_version.rb +1 -1
- metadata +5 -12
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4643133b424f45bd40a1c7dca4bfcb422e0e2b48
|
|
4
|
+
data.tar.gz: f55a4c362814f33108361087611a492d0c1b8db3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 40726c75ea943f1d3de2d8c4c5a40bd8460914d7395d3d385283a8df21e49ebbacfffd38a9949dd34eb838c54a90add6f78214b179ffb1cfbde4ef82b3e737d9
|
|
7
|
+
data.tar.gz: b5ce1b7330d0801edbbec218688a39007ff2d279da7c3516a505766feb36d933c2927efbec93290f23931ee51570c9a33038bd5da0fcda8548f5635b3090f2c2
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
data/Rakefile
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
require
|
|
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.
|
|
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
|
|
21
|
+
task :quality => [:cane, :tailor]
|
|
20
22
|
|
|
21
23
|
task :default => [:quality]
|
data/kitchen-opennebula.gemspec
CHANGED
|
@@ -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', '
|
|
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
|
-
|
|
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
|
|
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]}"
|
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.
|
|
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:
|
|
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.
|
|
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:
|