kitchen-dokken 0.0.18 → 0.0.19
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/lib/kitchen/driver/dokken.rb +64 -59
- data/lib/kitchen/driver/dokken_version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 60e2ad59397194be230673615a799951113e06a5
|
|
4
|
+
data.tar.gz: aa1487f1397b039d131a53cbe6ecd5d00287f11e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 13032c9258781c1e309f0477c9dee736354b5397cfdc93006cf897882f6b6f9bbab61c4a80847c566ea8c34def9f106e4630ec4a403e49bcd683f5660c0a5278
|
|
7
|
+
data.tar.gz: 70488a3094a0bde091a18bd73aff17dfb79fd8ff7a960149926eb864d5ef473d0322dcf247e55ee373746833e0818f927072e990c66b7af32160cdd5f6eb901f
|
|
@@ -64,18 +64,20 @@ module Kitchen
|
|
|
64
64
|
save_misc_state state
|
|
65
65
|
end
|
|
66
66
|
|
|
67
|
-
def api_retries
|
|
68
|
-
config[:api_retries]
|
|
69
|
-
end
|
|
70
|
-
|
|
71
67
|
def destroy(_state)
|
|
72
|
-
|
|
73
|
-
|
|
68
|
+
stop_data_container
|
|
69
|
+
delete_data_container
|
|
70
|
+
stop_runner_container
|
|
71
|
+
delete_runner_container
|
|
74
72
|
delete_work_image
|
|
75
73
|
end
|
|
76
74
|
|
|
77
75
|
private
|
|
78
76
|
|
|
77
|
+
def api_retries
|
|
78
|
+
config[:api_retries]
|
|
79
|
+
end
|
|
80
|
+
|
|
79
81
|
def docker_connection
|
|
80
82
|
opts = Docker.options
|
|
81
83
|
opts[:read_timeout] = config[:read_timeout]
|
|
@@ -97,22 +99,19 @@ module Kitchen
|
|
|
97
99
|
|
|
98
100
|
begin
|
|
99
101
|
with_retries do
|
|
100
|
-
@
|
|
102
|
+
@intermediate_image = Docker::Image.build_from_dir(
|
|
101
103
|
context_root,
|
|
102
|
-
{
|
|
104
|
+
{
|
|
105
|
+
'nocache' => true,
|
|
106
|
+
'forcerm' => true,
|
|
107
|
+
'q' => true,
|
|
108
|
+
't' => work_image
|
|
109
|
+
},
|
|
103
110
|
docker_connection
|
|
104
111
|
)
|
|
105
112
|
end
|
|
106
113
|
rescue
|
|
107
|
-
|
|
108
|
-
end
|
|
109
|
-
|
|
110
|
-
with_retries do
|
|
111
|
-
@work_image.tag(
|
|
112
|
-
'repo' => repo(work_image),
|
|
113
|
-
'tag' => tag(work_image),
|
|
114
|
-
'force' => true
|
|
115
|
-
)
|
|
114
|
+
fail 'work_image build failed'
|
|
116
115
|
end
|
|
117
116
|
state[:work_image] = work_image
|
|
118
117
|
end
|
|
@@ -140,32 +139,42 @@ module Kitchen
|
|
|
140
139
|
instance.name
|
|
141
140
|
end
|
|
142
141
|
|
|
143
|
-
def
|
|
144
|
-
|
|
142
|
+
def delete_chef_container
|
|
143
|
+
debug "driver - deleting container #{chef_container_name}"
|
|
144
|
+
delete_container chef_container_name
|
|
145
145
|
end
|
|
146
146
|
|
|
147
|
-
def
|
|
148
|
-
|
|
149
|
-
|
|
147
|
+
def delete_data_container
|
|
148
|
+
debug "driver - deleting container #{data_container_name}"
|
|
149
|
+
delete_container data_container_name
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
def delete_runner_container
|
|
153
|
+
debug "driver - deleting container #{runner_container_name}"
|
|
154
|
+
delete_container runner_container_name
|
|
150
155
|
end
|
|
151
156
|
|
|
152
157
|
def image_prefix
|
|
153
158
|
config[:image_prefix]
|
|
154
159
|
end
|
|
155
160
|
|
|
156
|
-
def
|
|
157
|
-
|
|
158
|
-
delete_container runner_container_name
|
|
161
|
+
def instance_platform_name
|
|
162
|
+
instance.platform.name
|
|
159
163
|
end
|
|
160
164
|
|
|
161
|
-
def
|
|
162
|
-
debug "driver -
|
|
163
|
-
|
|
165
|
+
def stop_runner_container
|
|
166
|
+
debug "driver - stopping container #{runner_container_name}"
|
|
167
|
+
stop_container runner_container_name
|
|
164
168
|
end
|
|
165
169
|
|
|
166
|
-
def
|
|
167
|
-
debug "driver -
|
|
168
|
-
|
|
170
|
+
def stop_data_container
|
|
171
|
+
debug "driver - stopping container #{data_container_name}"
|
|
172
|
+
stop_container data_container_name
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
def work_image
|
|
176
|
+
return "#{image_prefix}/#{instance_name}" unless image_prefix.nil?
|
|
177
|
+
instance_name
|
|
169
178
|
end
|
|
170
179
|
|
|
171
180
|
def start_runner_container(state)
|
|
@@ -272,27 +281,23 @@ module Kitchen
|
|
|
272
281
|
@container ? @container.info['State'] : {}
|
|
273
282
|
end
|
|
274
283
|
|
|
275
|
-
def
|
|
284
|
+
def stop_container(name)
|
|
276
285
|
begin
|
|
277
|
-
puts "Destroying container #{name}."
|
|
278
286
|
with_retries { @container = Docker::Container.get(name, docker_connection) }
|
|
279
|
-
rescue
|
|
280
|
-
puts "Container #{name} not found. Nothing to destroy"
|
|
281
|
-
return
|
|
282
|
-
end
|
|
283
|
-
|
|
284
|
-
begin
|
|
285
287
|
with_retries do
|
|
286
288
|
@container.stop(force: true)
|
|
287
|
-
wait_running_state(
|
|
289
|
+
wait_running_state(name, false)
|
|
288
290
|
end
|
|
289
|
-
rescue
|
|
291
|
+
rescue Docker::Error::NotFoundError
|
|
290
292
|
debug "Container #{name} not found. Nothing to stop."
|
|
291
293
|
end
|
|
294
|
+
end
|
|
292
295
|
|
|
296
|
+
def delete_container(name)
|
|
293
297
|
begin
|
|
298
|
+
with_retries { @container = Docker::Container.get(name, docker_connection) }
|
|
294
299
|
with_retries { @container.delete(force: true, v: true) }
|
|
295
|
-
rescue
|
|
300
|
+
rescue Docker::Error::NotFoundError
|
|
296
301
|
debug "Container #{name} not found. Nothing to delete."
|
|
297
302
|
end
|
|
298
303
|
end
|
|
@@ -313,37 +318,37 @@ module Kitchen
|
|
|
313
318
|
image.split(':')[1] || 'latest'
|
|
314
319
|
end
|
|
315
320
|
|
|
316
|
-
def
|
|
317
|
-
|
|
318
|
-
end
|
|
319
|
-
|
|
320
|
-
def pull_if_missing(image)
|
|
321
|
-
return if Docker::Image.exist?("#{repo(image)}:#{tag(image)}", docker_connection)
|
|
322
|
-
pull_image image
|
|
321
|
+
def chef_container_name
|
|
322
|
+
"chef-#{chef_version}"
|
|
323
323
|
end
|
|
324
324
|
|
|
325
|
-
def
|
|
326
|
-
|
|
325
|
+
def chef_image
|
|
326
|
+
"someara/chef:#{chef_version}"
|
|
327
327
|
end
|
|
328
328
|
|
|
329
329
|
def chef_version
|
|
330
330
|
config[:chef_version]
|
|
331
331
|
end
|
|
332
332
|
|
|
333
|
-
def
|
|
334
|
-
"
|
|
335
|
-
end
|
|
336
|
-
|
|
337
|
-
def chef_container_name
|
|
338
|
-
"chef-#{chef_version}"
|
|
333
|
+
def data_container_name
|
|
334
|
+
"#{instance.name}-data"
|
|
339
335
|
end
|
|
340
336
|
|
|
341
337
|
def data_image
|
|
342
338
|
config[:data_image]
|
|
343
339
|
end
|
|
344
340
|
|
|
345
|
-
def
|
|
346
|
-
|
|
341
|
+
def platform_image
|
|
342
|
+
config[:image]
|
|
343
|
+
end
|
|
344
|
+
|
|
345
|
+
def pull_if_missing(image)
|
|
346
|
+
return if Docker::Image.exist?("#{repo(image)}:#{tag(image)}", docker_connection)
|
|
347
|
+
pull_image image
|
|
348
|
+
end
|
|
349
|
+
|
|
350
|
+
def pull_image(image)
|
|
351
|
+
with_retries { Docker::Image.create({ 'fromImage' => repo(image), 'tag' => tag(image) }, docker_connection) }
|
|
347
352
|
end
|
|
348
353
|
|
|
349
354
|
def runner_container_name
|