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 102f9237..de2a380d 100644 --- a/plugins/connection/docker_api.py +++ b/plugins/connection/docker_api.py @@ -118,7 +118,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 393e2ef3..3438bc83 100644 --- a/plugins/modules/docker_container_exec.py +++ b/plugins/modules/docker_container_exec.py @@ -299,7 +299,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: