From 3f785bc0e9fe1ab3ad874ce4f26e6897189db8aa Mon Sep 17 00:00:00 2001 From: Rafael Guterres Jeffman <rjeffman@redhat.com> Date: Wed, 10 Jun 2020 22:20:20 -0300 Subject: [PATCH] Fix error message when adding dnsforwardzone without forwarders. --- plugins/modules/ipadnsforwardzone.py | 5 +++++ tests/dnsforwardzone/test_dnsforwardzone.yml | 13 +++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/plugins/modules/ipadnsforwardzone.py b/plugins/modules/ipadnsforwardzone.py index b28f28db..3968e6a1 100644 --- a/plugins/modules/ipadnsforwardzone.py +++ b/plugins/modules/ipadnsforwardzone.py @@ -217,6 +217,11 @@ def main(): # Make sure forwardzone exists existing_resource = find_dnsforwardzone(ansible_module, name) + # validate parameters + if state == 'present': + if existing_resource is None and not forwarders: + ansible_module.fail_json(msg='No forwarders specified.') + if existing_resource is None and operation == "update": # does not exist and is updating # trying to update something that doesn't exist, so error diff --git a/tests/dnsforwardzone/test_dnsforwardzone.yml b/tests/dnsforwardzone/test_dnsforwardzone.yml index ac08a48f..d94db9e5 100644 --- a/tests/dnsforwardzone/test_dnsforwardzone.yml +++ b/tests/dnsforwardzone/test_dnsforwardzone.yml @@ -5,10 +5,12 @@ gather_facts: false tasks: - - name: ensure forwardzone example.com is absent - prep + - name: ensure test forwardzones are absent - prep ipadnsforwardzone: ipaadmin_password: SomeADMINpassword - name: example.com + name: + - example.com + - newfailzone.com state: absent - name: ensure forwardzone example.com is created @@ -207,6 +209,13 @@ register: result failed_when: result.changed + - name: Ensure forwardzone is not added without forwarders, with correct message. + ipadnsforwardzone: + ipaadmin_password: SomeADMINpassword + name: newfailzone.com + register: result + failed_when: not result.failed or "No forwarders specified" not in result.msg + - name: ensure forwardzone example.com is absent - tidy up ipadnsforwardzone: ipaadmin_password: SomeADMINpassword -- GitLab