From 955579cd72e0da36f94e6e6d110de54082a59f82 Mon Sep 17 00:00:00 2001 From: Pilou Date: Tue, 9 Oct 2018 00:34:08 +0200 Subject: [PATCH] rabbitmq_user: 'node' parameter: add default value (#38156) * Remove unnecessary workaround * add test: set RABBITMQ_NODENAME environment variable The following error occurs: TASK [rabbitmq_user : Add user] *** fatal: [testhost]: FAILED! => { "changed": false, "cmd": "/usr/sbin/rabbitmqctl -q list_users", "rc": 69, "msg": "Error:********@c65c2bc59398'. Please see diagnostics information and suggestions below.\n\nMost common reasons for this are:\n\n * Target node is unreachable (e.g. due to hostname resolution, TCP connection or firewall issues)\n * CLI tool fails to authenticate with the server (e.g. due to CLI tool's Erlang cookie not matching that of the server)\n * Target node is not running\n\nIn addition to the diagnostics info below:\n\n * See the CLI, clustering and networking guides on http://rabbitmq.com/documentation.html to learn more\n * Consult server logs on node test@c65c2bc59398\n\nDIAGNOSTICS\n===========\n\nattempted to contact:********@c65c2bc59398\n * effective user's home directory: /var/lib/rabbitmq\n * Erlang cookie hash: 3MxcYFrJzfhEL+FlUfLlQw==", "stderr": [...], "stderr_lines": [ "Error: unable to perform an operation on node 'test@c65c2bc59398'. Please see diagnostics information and suggestions below.", "", "Most common reasons for this are:", "", " * Target node is unreachable (e.g. due to hostname resolution, TCP connection or firewall issues)", " * CLI tool fails to authenticate with the server (e.g. due to CLI tool's Erlang cookie not matching that of the server)", " * Target node is not running", "", "In addition to the diagnostics info below:", "", " * See the CLI, clustering and networking guides on http://rabbitmq.com/documentation.html to learn more", " * Consult server logs on node test@c65c2bc59398", "", "DIAGNOSTICS", "===========", "", "attempted to contact: [test@c65c2bc59398]", "", "test@c65c2bc59398:", " * connected to epmd (port 4369) on c65c2bc59398", " * epmd reports: node 'test' not running at all", " other nodes on c65c2bc59398: [rabbit]", " * suggestion: start the node", "", "Current node details:", " * node name: rabbitmqcli2@c65c2bc59398", " * effective user's home directory: /var/lib/rabbitmq", " * Erlang cookie hash: 3MxcYFrJzfhEL+FlUfLlQw==", "" ], "stdout": "", "stdout_lines": [] } * node parameter: fix default value 'rabbit' is the default value mentioned in the module documentation. --- lib/ansible/modules/messaging/rabbitmq_user.py | 4 ++-- test/integration/targets/rabbitmq_user/tasks/main.yml | 10 ++++++++-- .../targets/setup_rabbitmq/tasks/ubuntu.yml | 8 -------- test/sanity/validate-modules/ignore.txt | 1 - 4 files changed, 10 insertions(+), 13 deletions(-) diff --git a/lib/ansible/modules/messaging/rabbitmq_user.py b/lib/ansible/modules/messaging/rabbitmq_user.py index 0ec7f2a42ee..46b1924c9ae 100644 --- a/lib/ansible/modules/messaging/rabbitmq_user.py +++ b/lib/ansible/modules/messaging/rabbitmq_user.py @@ -143,7 +143,7 @@ class RabbitMqUser(object): def _exec(self, args, run_in_check_mode=False): if not self.module.check_mode or run_in_check_mode: cmd = [self._rabbitmqctl, '-q'] - if self.node is not None: + if self.node: cmd.extend(['-n', self.node]) rc, out, err = self.module.run_command(cmd + args, check_rc=True) return out.splitlines() @@ -245,7 +245,7 @@ def main(): read_priv=dict(default='^$'), force=dict(default='no', type='bool'), state=dict(default='present', choices=['present', 'absent']), - node=dict(default=None), + node=dict(default='rabbit'), update_password=dict(default='on_create', choices=['on_create', 'always']) ) module = AnsibleModule( diff --git a/test/integration/targets/rabbitmq_user/tasks/main.yml b/test/integration/targets/rabbitmq_user/tasks/main.yml index b1993664cd0..e03d4c7aab3 100644 --- a/test/integration/targets/rabbitmq_user/tasks/main.yml +++ b/test/integration/targets/rabbitmq_user/tasks/main.yml @@ -1,4 +1,10 @@ --- -- include: tests.yml - when: ansible_distribution == 'Ubuntu' +- when: ansible_distribution == 'Ubuntu' + block: + + - import_tasks: tests.yml + + - import_tasks: tests.yml + environment: + RABBITMQ_NODENAME: test diff --git a/test/integration/targets/setup_rabbitmq/tasks/ubuntu.yml b/test/integration/targets/setup_rabbitmq/tasks/ubuntu.yml index 41e116aa54f..078adf4723e 100644 --- a/test/integration/targets/setup_rabbitmq/tasks/ubuntu.yml +++ b/test/integration/targets/setup_rabbitmq/tasks/ubuntu.yml @@ -33,11 +33,3 @@ - name: Start RabbitMQ service service: name=rabbitmq-server state=started - when: ansible_distribution_release == 'trusty' - -# This is an ugly workaround! -# There is a problem to run services via systemd inside docker containers (https://github.com/moby/moby/issues/2296): -# systemctl command fails with the error 'Failed to connect to bus: No such file or directory' -- name: Start RabbitMQ service - command: /etc/init.d/rabbitmq-server start - when: ansible_distribution_release == 'xenial' diff --git a/test/sanity/validate-modules/ignore.txt b/test/sanity/validate-modules/ignore.txt index a878fc40cc7..d8c90b9c8cd 100644 --- a/test/sanity/validate-modules/ignore.txt +++ b/test/sanity/validate-modules/ignore.txt @@ -581,7 +581,6 @@ lib/ansible/modules/messaging/rabbitmq_exchange.py E326 lib/ansible/modules/messaging/rabbitmq_policy.py E324 lib/ansible/modules/messaging/rabbitmq_queue.py E324 lib/ansible/modules/messaging/rabbitmq_queue.py E327 -lib/ansible/modules/messaging/rabbitmq_user.py E324 lib/ansible/modules/monitoring/airbrake_deployment.py E324 lib/ansible/modules/monitoring/bigpanda.py E322 lib/ansible/modules/monitoring/bigpanda.py E324