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 +4 -4
- data/kitchen-cloudstack.gemspec +1 -1
- data/lib/kitchen/driver/cloudstack.rb +24 -10
- data/lib/kitchen/driver/cloudstack_version.rb +1 -1
- metadata +8 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 525485d2f200010310f1cd4777a9422ceedd95cd
|
4
|
+
data.tar.gz: 8d965420f5a495fcd57575774ec51f91f1149784
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2349e93da6c432786b6e04d234826b2eae069ccf808fe7febe0e62326e9defbb974dc82f4b1dc1698ed1c70b55fea550acee68f973f2214b11caec0c49ef940a
|
7
|
+
data.tar.gz: 175d40c760a0d10e59444d1bfd8d709e03f8492e92d945b55bba3ee63841cdc2229e23cb4e27c4afe75c0455378332e8c61e75e92f6569297f5535d0419d3a8e
|
data/kitchen-cloudstack.gemspec
CHANGED
@@ -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.
|
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(
|
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
|
-
|
92
|
+
start_jobid = {'jobid' => server['deployvirtualmachineresponse'].fetch('jobid')}
|
90
93
|
info("CloudStack instance <#{state[:server_id]}> created.")
|
91
|
-
debug("Job ID #{
|
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
|
-
|
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
|
-
|
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
|
-
|
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)
|
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.
|
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
|
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.
|
39
|
+
version: '1.24'
|
40
40
|
- - ">="
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: 1.
|
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.
|
49
|
+
version: '1.24'
|
50
50
|
- - ">="
|
51
51
|
- !ruby/object:Gem::Version
|
52
|
-
version: 1.
|
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:
|
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:
|