X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/7bde93de3260e08503c7bf9c06fd3448972d378a..c3e2a93527a137fbeb3e2bb13c5ab344a95ab47f:/services/dockercleaner/arvados_docker/cleaner.py diff --git a/services/dockercleaner/arvados_docker/cleaner.py b/services/dockercleaner/arvados_docker/cleaner.py index f9d727f2ec..88b8a4bc3c 100755 --- a/services/dockercleaner/arvados_docker/cleaner.py +++ b/services/dockercleaner/arvados_docker/cleaner.py @@ -177,10 +177,10 @@ class DockerImageUseRecorder(DockerEventListener): class DockerImageCleaner(DockerImageUseRecorder): event_handlers = DockerImageUseRecorder.event_handlers.copy() - def __init__(self, images, docker_client, events, remove_stopped_containers=False): + def __init__(self, images, docker_client, events, remove_containers_onexit=False): super().__init__(images, docker_client, events) self.logged_unknown = set() - self.remove_stopped_containers = remove_stopped_containers + self.remove_containers_onexit = remove_containers_onexit def new_container(self, event, container_hash): container_image_id = container_hash['Image'] @@ -191,7 +191,7 @@ class DockerImageCleaner(DockerImageUseRecorder): def _remove_container(self, cid): try: - self.docker_client.remove_container(cid) + self.docker_client.remove_container(cid, v=True) except docker.errors.APIError as error: logger.warning("Failed to remove container %s: %s", cid, error) else: @@ -199,9 +199,8 @@ class DockerImageCleaner(DockerImageUseRecorder): @event_handlers.on('die') def clean_container(self, event=None): - if not self.remove_stopped_containers: - return - self._remove_container(event['id']) + if self.remove_containers_onexit: + self._remove_container(event['id']) def check_stopped_containers(self, remove=False): logger.info("Checking for stopped containers") @@ -278,7 +277,7 @@ def run(args, docker_client): use_recorder.run() cleaner = DockerImageCleaner( images, docker_client, docker_client.events(since=start_time), - remove_stopped_containers=args.remove_stopped_containers != 'never') + remove_containers_onexit=args.remove_stopped_containers != 'never') cleaner.check_stopped_containers( remove=args.remove_stopped_containers == 'always') logger.info("Checking image quota at startup") @@ -289,7 +288,7 @@ def run(args, docker_client): def main(arguments): args = parse_arguments(arguments) setup_logging(args) - run(args, docker.Client()) + run(args, docker.Client(version='1.14')) if __name__ == '__main__': main(sys.argv[1:])