diff --git a/changelogs/fragments/57738-rabbitmq_user_handle_non-zero_exit_codes.yaml b/changelogs/fragments/57738-rabbitmq_user_handle_non-zero_exit_codes.yaml new file mode 100644 index 00000000000..67912072138 --- /dev/null +++ b/changelogs/fragments/57738-rabbitmq_user_handle_non-zero_exit_codes.yaml @@ -0,0 +1,2 @@ +bugfixes: + - rabbitmq_user - Handle non-zero rabbitmqctl exit codes (https://github.com/ansible/ansible/issues/56164) diff --git a/lib/ansible/modules/messaging/rabbitmq/rabbitmq_user.py b/lib/ansible/modules/messaging/rabbitmq/rabbitmq_user.py index 5be2339e2fe..2fd52c05cbe 100644 --- a/lib/ansible/modules/messaging/rabbitmq/rabbitmq_user.py +++ b/lib/ansible/modules/messaging/rabbitmq/rabbitmq_user.py @@ -141,12 +141,12 @@ class RabbitMqUser(object): self._permissions = [] self._rabbitmqctl = module.get_bin_path('rabbitmqctl', True) - def _exec(self, args, run_in_check_mode=False): + def _exec(self, args, run_in_check_mode=False, check_rc=True): if not self.module.check_mode or run_in_check_mode: cmd = [self._rabbitmqctl, '-q'] if self.node: cmd.extend(['-n', self.node]) - rc, out, err = self.module.run_command(cmd + args, check_rc=True) + rc, out, err = self.module.run_command(cmd + args, check_rc=check_rc) return out.splitlines() return list() @@ -190,7 +190,8 @@ class RabbitMqUser(object): return perms_list def check_password(self): - return self._exec(['authenticate_user', self.username, self.password], True) + return self._exec(['authenticate_user', self.username, self.password], + run_in_check_mode=True, check_rc=False) def add(self): if self.password is not None: