beaker-docker 0.5.3 → 0.5.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7b9f93de9358670645ea7e0c3bf982a7c822b8ca
4
- data.tar.gz: 19730ee76587c0e098504bf7bae15627c10f1603
3
+ metadata.gz: c08f5cd20c40f88ec243742f3471581e3bdedaac
4
+ data.tar.gz: a51dd89bab315c5bc3061e4c290335ca305c8932
5
5
  SHA512:
6
- metadata.gz: 78b6a3d9dda05f73f12861c8f3675647b3265428cfa634de30dbd89da20eac938353ecbf44c900079cdc1a7113a9f7304e13915c78c3f39426e1364be9fee0e8
7
- data.tar.gz: a88c7fe2fa9ec4655e629e1996310baa0154bfc8c69e7294f0111479c447f3ef878305df2cf14b8c4fcd36b272f761c06fa9181bfa330ed943e51a27f63eded5
6
+ metadata.gz: b475e8f7ce22f303fbe772749f0176511581ec9b84f3d116ad690fe2c5d318bc4b33b9f68186938bf5715b81e1a5f8b05f2a7833b6a3e469f7970eebfe5068b8
7
+ data.tar.gz: f7a3654d9252c82362d88be8dcbfa75aa3a546d01f156e65838d0eed1525a17e55c2fbd937c559fb5dba472fce1f02b27282daee917be49d183d52e03ed83c82
@@ -1,3 +1,3 @@
1
1
  module BeakerDocker
2
- VERSION = '0.5.3'
2
+ VERSION = '0.5.4'
3
3
  end
@@ -144,10 +144,9 @@ module Beaker
144
144
 
145
145
  container = find_container(host)
146
146
 
147
- # Provisioning - Only provision if:
148
- # - provisioning was explicitly requested via options, or
149
- # - the host's container can't be found via its name or ID
150
- if @options[:provision] || container.nil?
147
+ # Provisioning - Only provision if the host's container can't be found
148
+ # via its name or ID
149
+ if container.nil?
151
150
  unless host['mount_folders'].nil?
152
151
  container_opts['HostConfig'] ||= {}
153
152
  container_opts['HostConfig']['Binds'] = host['mount_folders'].values.map do |mount|
@@ -162,6 +161,10 @@ module Beaker
162
161
  end
163
162
  end
164
163
 
164
+ if host['docker_env']
165
+ container_opts['Env'] = host['docker_env']
166
+ end
167
+
165
168
  if host['docker_cap_add']
166
169
  container_opts['HostConfig']['CapAdd'] = host['docker_cap_add']
167
170
  end
@@ -172,6 +175,8 @@ module Beaker
172
175
 
173
176
  @logger.debug("Creating container from image #{image_name}")
174
177
  container = ::Docker::Container.create(container_opts)
178
+ else
179
+ host['use_existing_container'] = true
175
180
  end
176
181
 
177
182
  if container.nil?
@@ -279,38 +284,44 @@ module Beaker
279
284
  def cleanup
280
285
  @logger.notify "Cleaning up docker"
281
286
  @hosts.each do |host|
282
- container = find_container(host)
283
- if container
284
- @logger.debug("stop container #{container.id}")
285
- begin
286
- container.kill
287
- sleep 2 # avoid a race condition where the root FS can't unmount
288
- rescue Excon::Errors::ClientError => e
289
- @logger.warn("stop of container #{container.id} failed: #{e.response.body}")
290
- end
291
- @logger.debug("delete container #{container.id}")
292
- begin
293
- container.delete
294
- rescue Excon::Errors::ClientError => e
295
- @logger.warn("deletion of container #{container.id} failed: #{e.response.body}")
296
- end
297
- end
298
-
299
- # Do not remove the image if docker_preserve_image is set to true, otherwise remove it
300
- unless host['docker_preserve_image']
301
- image_id = host['docker_image_id']
302
-
303
- if image_id
304
- @logger.debug("deleting image #{image_id}")
287
+ # leave the container running if docker_preserve_container is set
288
+ # setting docker_preserve_container also implies docker_preserve_image
289
+ # is set, since you can't delete an image that's the base of a running
290
+ # container
291
+ unless host['docker_preserve_container']
292
+ container = find_container(host)
293
+ if container
294
+ @logger.debug("stop container #{container.id}")
305
295
  begin
306
- ::Docker::Image.remove(image_id)
296
+ container.kill
297
+ sleep 2 # avoid a race condition where the root FS can't unmount
307
298
  rescue Excon::Errors::ClientError => e
308
- @logger.warn("deletion of image #{image_id} failed: #{e.response.body}")
309
- rescue ::Docker::Error::DockerError => e
310
- @logger.warn("deletion of image #{image_id} caused internal Docker error: #{e.message}")
299
+ @logger.warn("stop of container #{container.id} failed: #{e.response.body}")
300
+ end
301
+ @logger.debug("delete container #{container.id}")
302
+ begin
303
+ container.delete
304
+ rescue Excon::Errors::ClientError => e
305
+ @logger.warn("deletion of container #{container.id} failed: #{e.response.body}")
306
+ end
307
+ end
308
+
309
+ # Do not remove the image if docker_preserve_image is set to true, otherwise remove it
310
+ unless host['docker_preserve_image']
311
+ image_id = host['docker_image_id']
312
+
313
+ if image_id
314
+ @logger.debug("deleting image #{image_id}")
315
+ begin
316
+ ::Docker::Image.remove(image_id)
317
+ rescue Excon::Errors::ClientError => e
318
+ @logger.warn("deletion of image #{image_id} failed: #{e.response.body}")
319
+ rescue ::Docker::Error::DockerError => e
320
+ @logger.warn("deletion of image #{image_id} caused internal Docker error: #{e.message}")
321
+ end
322
+ else
323
+ @logger.warn("Intended to delete the host's docker image, but host['docker_image_id'] was not set")
311
324
  end
312
- else
313
- @logger.warn("Intended to delete the host's docker image, but host['docker_image_id'] was not set")
314
325
  end
315
326
  end
316
327
  end
@@ -498,6 +509,7 @@ module Beaker
498
509
 
499
510
  return container unless container.nil?
500
511
  @logger.debug("Existing container not found")
512
+ return nil
501
513
  end
502
514
 
503
515
  # return true if we are inside a docker container
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: beaker-docker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.3
4
+ version: 0.5.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rishi Javia, Kevin Imber, Tony Vu
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-05-06 00:00:00.000000000 Z
11
+ date: 2019-07-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec