kitchen-cloudstack 0.10.0 → 0.20.0.pre

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