438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
|
# File 'lib/beaker/hypervisor/docker.rb', line 438
def cleanup
@logger.notify "Cleaning up docker"
@hosts.each do |host|
unless host['docker_preserve_container']
container = find_container(host)
if container
@logger.debug("stop container #{container.id}")
begin
container.kill
sleep 2 rescue Excon::Errors::ClientError => e
@logger.warn("stop of container #{container.id} failed: #{e.response.body}")
end
@logger.debug("delete container #{container.id}")
begin
container.delete(force: true)
rescue Excon::Errors::ClientError => e
@logger.warn("deletion of container #{container.id} failed: #{e.response.body}")
end
end
unless host['docker_preserve_image']
image_id = host['docker_image_id']
if image_id
@logger.debug("deleting image #{image_id}")
begin
::Docker::Image.remove(image_id)
rescue Excon::Errors::ClientError => e
@logger.warn("deletion of image #{image_id} failed: #{e.response.body}")
rescue ::Docker::Error::DockerError => e
@logger.warn("deletion of image #{image_id} caused internal Docker error: #{e.message}")
end
else
@logger.warn("Intended to delete the host's docker image, but host['docker_image_id'] was not set")
end
end
end
end
end
|