diff --git a/changelogs/fragments/60381-docker_login-logout-change.yml b/changelogs/fragments/60381-docker_login-logout-change.yml new file mode 100644 index 00000000000..f2697c57216 --- /dev/null +++ b/changelogs/fragments/60381-docker_login-logout-change.yml @@ -0,0 +1,2 @@ +bugfixes: +- "docker_login - report change on successful logout (https://github.com/ansible/ansible/issues/59232)" diff --git a/lib/ansible/modules/cloud/docker/docker_login.py b/lib/ansible/modules/cloud/docker/docker_login.py index 19df546de39..590379a4ba2 100644 --- a/lib/ansible/modules/cloud/docker/docker_login.py +++ b/lib/ansible/modules/cloud/docker/docker_login.py @@ -224,6 +224,15 @@ class LoginManager(DockerBaseClass): (rc, out, err) = self.client.module.run_command(cmd) if rc != 0: self.fail("Could not log out: %s" % err) + if b'Not logged in to ' in out: + self.results['changed'] = False + elif b'Removing login credentials for ' in out: + self.results['changed'] = True + else: + self.client.module.warn('Unable to determine whether logout was successful.') + + # Adding output to actions, so that user can inspect what was actually returned + self.results['actions'].append(to_text(out)) def config_file_exists(self, path): if os.path.exists(path):