Blame SOURCES/ansible-freeipa-0.1.8-ipahost-Fail-on-action-member-for-new-hosts-fix-dnsrecord_add-reverse-flag_rhbz#1803026.patch

d9912c
From 0816b0773b1535780c7c3e5f05bda39434ab6bac Mon Sep 17 00:00:00 2001
d9912c
From: Thomas Woerner <twoerner@redhat.com>
d9912c
Date: Fri, 14 Feb 2020 13:21:54 +0100
d9912c
Subject: [PATCH] ipahost: Fail on action member for new hosts, fix
d9912c
 dnsrecord_add reverse flag
d9912c
d9912c
The check to make sure that member can not be used on non existing hosts
d9912c
has bee missing. Also the reverse flag for the dnsrecord_add call was None
d9912c
if the varaible was not set.
d9912c
d9912c
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1803026
d9912c
---
d9912c
 plugins/modules/ipahost.py | 23 +++++++++++++++--------
d9912c
 1 file changed, 15 insertions(+), 8 deletions(-)
d9912c
d9912c
diff --git a/plugins/modules/ipahost.py b/plugins/modules/ipahost.py
d9912c
index a5fd482..558560e 100644
d9912c
--- a/plugins/modules/ipahost.py
d9912c
+++ b/plugins/modules/ipahost.py
d9912c
@@ -1005,6 +1005,11 @@ def main():
d9912c
                                 dnsrecord_args.get("aaaarecord"),
d9912c
                                 _dnsrec.get("aaaarecord"))
d9912c
 
d9912c
+                else:
d9912c
+                    if res_find is None:
d9912c
+                        ansible_module.fail_json(
d9912c
+                            msg="No host '%s'" % name)
d9912c
+
d9912c
                 if action != "host" or (action == "host" and res_find is None):
d9912c
                     certificate_add = certificate or []
d9912c
                     certificate_del = []
d9912c
@@ -1178,15 +1183,17 @@ def main():
d9912c
                     domain_name = name[name.find(".")+1:]
d9912c
                     host_name = name[:name.find(".")]
d9912c
 
d9912c
+                    _args = {"idnsname": host_name}
d9912c
+                    if reverse is not None:
d9912c
+                        _args["a_extra_create_reverse"] = reverse
d9912c
+                        _args["aaaa_extra_create_reverse"] = reverse
d9912c
+                    if len(dnsrecord_a_add) > 0:
d9912c
+                        _args["arecord"] = dnsrecord_a_add
d9912c
+                    if len(dnsrecord_aaaa_add) > 0:
d9912c
+                        _args["aaaarecord"] = dnsrecord_aaaa_add
d9912c
+
d9912c
                     commands.append([domain_name,
d9912c
-                                     "dnsrecord_add",
d9912c
-                                     {
d9912c
-                                         "idnsname": host_name,
d9912c
-                                         "arecord": dnsrecord_a_add,
d9912c
-                                         "a_extra_create_reverse": reverse,
d9912c
-                                         "aaaarecord": dnsrecord_aaaa_add,
d9912c
-                                         "aaaa_extra_create_reverse": reverse
d9912c
-                                     }])
d9912c
+                                     "dnsrecord_add", _args])
d9912c
 
d9912c
                 if len(dnsrecord_a_del) > 0 or len(dnsrecord_aaaa_del) > 0:
d9912c
                     domain_name = name[name.find(".")+1:]