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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1331d108ec0fd4f436ec283eea7b297e8ba7ddbd
4
- data.tar.gz: 8b7c178ffc9bac18f8cdac11fc61e96eda4fe600
3
+ metadata.gz: 60e2ad59397194be230673615a799951113e06a5
4
+ data.tar.gz: aa1487f1397b039d131a53cbe6ecd5d00287f11e
5
5
  SHA512:
6
- metadata.gz: cd1a6c190c6cc3e50dc3df2459281da2c651cb95f86a66d2c3f85efd877e226f6f732b8d74eed64be1646344548c75ae2a8ec2bd885dbfcb6236d000db389c2a
7
- data.tar.gz: 957ca38b58e557d28c6f8da2fb6bced0dc1fc0b5d9dce0f47282283123715efe4510a958403bb45624d2496d2e034353de536d7a36a7291df95ea78fd653a811
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
- delete_data
73
- delete_runner
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
- @work_image = Docker::Image.build_from_dir(
102
+ @intermediate_image = Docker::Image.build_from_dir(
101
103
  context_root,
102
- { 'nocache' => true, 'forcerm' => true },
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
- raise 'work_image build failed'
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 instance_platform_name
144
- instance.platform.name
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 work_image
148
- return "#{image_prefix}/#{instance_name}" unless image_prefix.nil?
149
- instance_name
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 delete_runner
157
- debug "driver - deleting container #{runner_container_name}"
158
- delete_container runner_container_name
161
+ def instance_platform_name
162
+ instance.platform.name
159
163
  end
160
164
 
161
- def delete_chef_container
162
- debug "driver - deleting container #{chef_container_name}"
163
- delete_container chef_container_name
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 delete_data
167
- debug "driver - deleting container #{data_container_name}"
168
- delete_container data_container_name
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 delete_container(name)
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(args['name'], false)
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 pull_image(image)
317
- with_retries { Docker::Image.create({ 'fromImage' => repo(image), 'tag' => tag(image) }, docker_connection) }
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 platform_image
326
- config[:image]
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 chef_image
334
- "someara/chef:#{chef_version}"
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 data_container_name
346
- "#{instance.name}-data"
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
@@ -19,6 +19,6 @@
19
19
  module Kitchen
20
20
  module Driver
21
21
  # Version string for Dokken Kitchen driver
22
- DOKKEN_VERSION = '0.0.18'
22
+ DOKKEN_VERSION = '0.0.19'
23
23
  end
24
24
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kitchen-dokken
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.18
4
+ version: 0.0.19
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean OMeara