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