From dfabf2707a47367cbaf0181fed81fca82a41759a Mon Sep 17 00:00:00 2001 From: Stephen Paul Suarez Date: Wed, 25 Jun 2014 14:20:07 +0800 Subject: [PATCH 1/2] fixes the now-incorrect module for ApiError https://github.com/dotcloud/docker-py/blob/0.3.2/docker/errors.py - ApiError is now(0.3.2) under the docker.errors --- library/cloud/docker_image | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/cloud/docker_image b/library/cloud/docker_image index 1727486f8a..512f17cfd1 100644 --- a/library/cloud/docker_image +++ b/library/cloud/docker_image @@ -235,7 +235,7 @@ def main(): module.exit_json(failed=failed, changed=manager.has_changed(), msg=msg, image_id=image_id) - except docker.client.APIError as e: + except docker.errors.APIError as e: module.exit_json(failed=True, changed=manager.has_changed(), msg="Docker API error: " + e.explanation) except RequestException as e: From 49cf5831c5bdc1482dbdce0d404a2b6466411413 Mon Sep 17 00:00:00 2001 From: Stephen Paul Suarez Date: Wed, 25 Jun 2014 14:52:00 +0800 Subject: [PATCH 2/2] support old and new versions of APIError --- library/cloud/docker_image | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/library/cloud/docker_image b/library/cloud/docker_image index 512f17cfd1..90f5adcd07 100644 --- a/library/cloud/docker_image +++ b/library/cloud/docker_image @@ -113,6 +113,11 @@ except ImportError, e: print "failed=True msg='failed to import python module: %s'" % e sys.exit(1) +try: + from docker.errors import APIError as DockerAPIError +except ImportError: + from docker.client import APIError as DockerAPIError + class DockerImageManager: def __init__(self, module): @@ -187,7 +192,7 @@ class DockerImageManager: try: self.client.remove_image(i['Id']) self.changed = True - except docker.APIError as e: + except DockerAPIError as e: # image can be removed by docker if not used pass @@ -235,7 +240,7 @@ def main(): module.exit_json(failed=failed, changed=manager.has_changed(), msg=msg, image_id=image_id) - except docker.errors.APIError as e: + except DockerAPIError as e: module.exit_json(failed=True, changed=manager.has_changed(), msg="Docker API error: " + e.explanation) except RequestException as e: