kitchen-cloudstack 0.10.0 → 0.20.0.pre

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: c8040fde05ddb78c105dcde532e513609778f21c
4
- data.tar.gz: 4026c35590d771c985f69282d31a0913af1e46f5
3
+ metadata.gz: 525485d2f200010310f1cd4777a9422ceedd95cd
4
+ data.tar.gz: 8d965420f5a495fcd57575774ec51f91f1149784
5
5
  SHA512:
6
- metadata.gz: eb0259abafb6e674cec30e039d5b21c381f53ce04a1f19969791c9ee23becce992d4d0764faad15bf9e9b73e4abd110bc38d124b097ede7fcd21380b08220e4a
7
- data.tar.gz: e0a1d0c94393570a6b8d487fc0f357297af5cc82a9140a6679d767081a20bc2e72c1ac4697d9aa1376e493ba4db7274acba37603a4fca8aa284e8ff7f08a00e7
6
+ metadata.gz: 2349e93da6c432786b6e04d234826b2eae069ccf808fe7febe0e62326e9defbb974dc82f4b1dc1698ed1c70b55fea550acee68f973f2214b11caec0c49ef940a
7
+ data.tar.gz: 175d40c760a0d10e59444d1bfd8d709e03f8492e92d945b55bba3ee63841cdc2229e23cb4e27c4afe75c0455378332e8c61e75e92f6569297f5535d0419d3a8e
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ['lib']
20
20
 
21
21
  spec.add_dependency 'test-kitchen', '~> 1.0', '>= 1.0.0'
22
- spec.add_dependency 'fog', '~> 1.23', '>= 1.23.0'
22
+ spec.add_dependency 'fog', '~> 1.24', '>= 1.24.0'
23
23
 
24
24
  spec.add_development_dependency 'bundler', '~> 1.3'
25
25
  spec.add_development_dependency 'rake', '~> 0'
@@ -64,10 +64,13 @@ module Kitchen
64
64
  options['keypair'] = config[:cloudstack_ssh_keypair_name]
65
65
  end
66
66
 
67
+ options[:templateid] = config[:cloudstack_template_id]
68
+ options[:serviceofferingid] = config[:cloudstack_serviceoffering_id]
69
+ options[:zoneid] = config[:cloudstack_zone_id]
70
+
67
71
  debug(options)
68
72
  # binding.pry
69
- compute.deploy_virtual_machine(config[:cloudstack_serviceoffering_id],
70
- config[:cloudstack_template_id], config[:cloudstack_zone_id], options)
73
+ compute.deploy_virtual_machine(options)
71
74
  end
72
75
 
73
76
  def create(state)
@@ -86,24 +89,35 @@ module Kitchen
86
89
  debug(server)
87
90
 
88
91
  state[:server_id] = server['deployvirtualmachineresponse'].fetch('id')
89
- jobid = server['deployvirtualmachineresponse'].fetch('jobid')
92
+ start_jobid = {'jobid' => server['deployvirtualmachineresponse'].fetch('jobid')}
90
93
  info("CloudStack instance <#{state[:server_id]}> created.")
91
- debug("Job ID #{jobid}")
94
+ debug("Job ID #{start_jobid}")
95
+ # Cloning the original job id hash because running the query_async_job_result updates the hash to include
96
+ # more than just the job id (which I could work around, but I'm lazy).
97
+ jobid = start_jobid.clone
92
98
 
93
99
  server_start = compute.query_async_job_result(jobid)
94
- while server_start['queryasyncjobresultresponse'].fetch('jobstatus') == 0
100
+ # jobstatus of zero is a running job
101
+ while server_start['queryasyncjobresultresponse'].fetch('jobstatus').to_i == 0
102
+ debug("Job status: #{server_start}")
95
103
  print ". "
96
104
  sleep(10)
105
+ debug("Running Job ID #{jobid}")
106
+ debug("Start Job ID #{start_jobid}")
107
+ # We have to reclone on each iteration, as the hash keeps getting updated.
108
+ jobid = start_jobid.clone
97
109
  server_start = compute.query_async_job_result(jobid)
98
110
  end
99
111
  debug("Server_Start: #{server_start} \n")
100
112
 
101
- if server_start['queryasyncjobresultresponse'].fetch('jobstatus') == 2
113
+ # jobstatus of 2 is an error response
114
+ if server_start['queryasyncjobresultresponse'].fetch('jobstatus').to_i == 2
102
115
  errortext = server_start['queryasyncjobresultresponse'].fetch('jobresult').fetch('errortext')
103
116
  error("ERROR! Job failed with #{errortext}")
104
117
  end
105
118
 
106
- if server_start['queryasyncjobresultresponse'].fetch('jobstatus') == 1
119
+ # jobstatus of 1 is a succesfully completed async job
120
+ if server_start['queryasyncjobresultresponse'].fetch('jobstatus').to_i == 1
107
121
  server_info = server_start['queryasyncjobresultresponse']['jobresult']['virtualmachine']
108
122
  debug(server_info)
109
123
  print "(server ready)"
@@ -162,9 +176,9 @@ module Kitchen
162
176
 
163
177
  def destroy(state)
164
178
  return if state[:server_id].nil?
165
-
166
- server = compute.servers.get(state[:server_id])
167
- compute.destroy_virtual_machine(state[:server_id]) unless server.nil?
179
+ debug("Destroying #{state[:server_id]}")
180
+ server = compute.servers.get({'id' => state[:server_id]})
181
+ compute.destroy_virtual_machine({'id' => state[:server_id]}) unless server.nil?
168
182
  info("CloudStack instance <#{state[:server_id]}> destroyed.")
169
183
  state.delete(:server_id)
170
184
  state.delete(:hostname)
@@ -21,6 +21,6 @@ module Kitchen
21
21
  module Driver
22
22
 
23
23
  # Version string for Cloudstack Kitchen driver
24
- CLOUDSTACK_VERSION = "0.10.0"
24
+ CLOUDSTACK_VERSION = "0.20.0.pre"
25
25
  end
26
26
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kitchen-cloudstack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.0
4
+ version: 0.20.0.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Moody
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-10 00:00:00.000000000 Z
11
+ date: 2014-10-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: test-kitchen
@@ -36,20 +36,20 @@ dependencies:
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '1.23'
39
+ version: '1.24'
40
40
  - - ">="
41
41
  - !ruby/object:Gem::Version
42
- version: 1.23.0
42
+ version: 1.24.0
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - "~>"
48
48
  - !ruby/object:Gem::Version
49
- version: '1.23'
49
+ version: '1.24'
50
50
  - - ">="
51
51
  - !ruby/object:Gem::Version
52
- version: 1.23.0
52
+ version: 1.24.0
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: bundler
55
55
  requirement: !ruby/object:Gem::Requirement
@@ -168,9 +168,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
168
168
  version: '0'
169
169
  required_rubygems_version: !ruby/object:Gem::Requirement
170
170
  requirements:
171
- - - ">="
171
+ - - ">"
172
172
  - !ruby/object:Gem::Version
173
- version: '0'
173
+ version: 1.3.1
174
174
  requirements: []
175
175
  rubyforge_project:
176
176
  rubygems_version: 2.2.2
@@ -179,4 +179,3 @@ specification_version: 4
179
179
  summary: Provides an interface for Test Kitchen to be able to run jobs against an
180
180
  Apache CloudStack cloud.
181
181
  test_files: []
182
- has_rdoc: