Blob Blame History Raw
From 0816b0773b1535780c7c3e5f05bda39434ab6bac Mon Sep 17 00:00:00 2001
From: Thomas Woerner <twoerner@redhat.com>
Date: Fri, 14 Feb 2020 13:21:54 +0100
Subject: [PATCH] ipahost: Fail on action member for new hosts, fix
 dnsrecord_add reverse flag

The check to make sure that member can not be used on non existing hosts
has bee missing. Also the reverse flag for the dnsrecord_add call was None
if the varaible was not set.

Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1803026
---
 plugins/modules/ipahost.py | 23 +++++++++++++++--------
 1 file changed, 15 insertions(+), 8 deletions(-)

diff --git a/plugins/modules/ipahost.py b/plugins/modules/ipahost.py
index a5fd482..558560e 100644
--- a/plugins/modules/ipahost.py
+++ b/plugins/modules/ipahost.py
@@ -1005,6 +1005,11 @@ def main():
                                 dnsrecord_args.get("aaaarecord"),
                                 _dnsrec.get("aaaarecord"))
 
+                else:
+                    if res_find is None:
+                        ansible_module.fail_json(
+                            msg="No host '%s'" % name)
+
                 if action != "host" or (action == "host" and res_find is None):
                     certificate_add = certificate or []
                     certificate_del = []
@@ -1178,15 +1183,17 @@ def main():
                     domain_name = name[name.find(".")+1:]
                     host_name = name[:name.find(".")]
 
+                    _args = {"idnsname": host_name}
+                    if reverse is not None:
+                        _args["a_extra_create_reverse"] = reverse
+                        _args["aaaa_extra_create_reverse"] = reverse
+                    if len(dnsrecord_a_add) > 0:
+                        _args["arecord"] = dnsrecord_a_add
+                    if len(dnsrecord_aaaa_add) > 0:
+                        _args["aaaarecord"] = dnsrecord_aaaa_add
+
                     commands.append([domain_name,
-                                     "dnsrecord_add",
-                                     {
-                                         "idnsname": host_name,
-                                         "arecord": dnsrecord_a_add,
-                                         "a_extra_create_reverse": reverse,
-                                         "aaaarecord": dnsrecord_aaaa_add,
-                                         "aaaa_extra_create_reverse": reverse
-                                     }])
+                                     "dnsrecord_add", _args])
 
                 if len(dnsrecord_a_del) > 0 or len(dnsrecord_aaaa_del) > 0:
                     domain_name = name[name.find(".")+1:]