diff --git a/changelogs/fragments/546-conflict-error.yml b/changelogs/fragments/546-conflict-error.yml new file mode 100644 index 00000000..3b067bc6 --- /dev/null +++ b/changelogs/fragments/546-conflict-error.yml @@ -0,0 +1,3 @@ +bugfixes: + - "docker_api connection plugin - fix error handling when 409 Conflict is returned by the Docker daemon in case of a stopped container (https://github.com/ansible-collections/community.docker/pull/546)." + - "docker_container_exec - fix error handling when 409 Conflict is returned by the Docker daemon in case of a stopped container (https://github.com/ansible-collections/community.docker/pull/546)." diff --git a/plugins/connection/docker_api.py b/plugins/connection/docker_api.py index 1a48f084..712d65ae 100644 --- a/plugins/connection/docker_api.py +++ b/plugins/connection/docker_api.py @@ -113,7 +113,7 @@ class Connection(ConnectionBase): else: raise AnsibleConnectionFailure('Could not find container "{1}" ({0})'.format(e, self.get_option('remote_addr'))) except APIError as e: - if e.response and e.response.status_code == 409: + if e.response is not None and e.response.status_code == 409: raise AnsibleConnectionFailure('The container "{1}" has been paused ({0})'.format(e, self.get_option('remote_addr'))) self.client.fail( 'An unexpected Docker error occurred for container "{1}": {0}'.format(e, self.get_option('remote_addr')) diff --git a/plugins/modules/docker_container_exec.py b/plugins/modules/docker_container_exec.py index b39646d9..d9126126 100644 --- a/plugins/modules/docker_container_exec.py +++ b/plugins/modules/docker_container_exec.py @@ -295,7 +295,7 @@ def main(): except NotFound: client.fail('Could not find container "{0}"'.format(container)) except APIError as e: - if e.response and e.response.status_code == 409: + if e.response is not None and e.response.status_code == 409: client.fail('The container "{0}" has been paused ({1})'.format(container, to_native(e))) client.fail('An unexpected Docker error occurred: {0}'.format(to_native(e)), exception=traceback.format_exc()) except DockerException as e: