kitchen-opennebula 0.2.2 → 0.2.3

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: 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: