From cd96c8a07c0ca837655d2536f8e1cc4d0bbe61fd Mon Sep 17 00:00:00 2001
From: Thomas Woerner <twoerner@redhat.com>
Date: Thu, 22 Nov 2018 15:27:12 +0100
Subject: [PATCH] ipaserver: Transform DNS overlap end_play into a failure

This is more like the normal installer behavior and should also help with
issue #50: https://github.com/freeipa/ansible-freeipa/issues/50
---
 roles/ipaserver/library/ipaserver_test.py | 8 +++-----
 roles/ipaserver/tasks/install.yml         | 2 +-
 2 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/roles/ipaserver/library/ipaserver_test.py b/roles/ipaserver/library/ipaserver_test.py
index 34eb09ae..7d386847 100644
--- a/roles/ipaserver/library/ipaserver_test.py
+++ b/roles/ipaserver/library/ipaserver_test.py
@@ -256,14 +256,12 @@ def main():
                 msg="File %s does not exist." % options.dirsrv_config_file)
 
     # domain_name
-    if (options.setup_dns and not options.allow_zone_overlap):
+    if (options.setup_dns and not options.allow_zone_overlap and \
+        options.domain_name is not None):
         try:
             check_zone_overlap(options.domain_name, False)
         except ValueError as e:
-            if "already exists in DNS" in str(e):
-                ansible_module.log(str(e))
-                ansible_module.exit_json(changed=False, dns_zone_exists=True)
-            raise
+            ansible_module.fail_json(str(e))
 
     # dm_password
     with redirect_stdout(ansible_log):
diff --git a/roles/ipaserver/tasks/install.yml b/roles/ipaserver/tasks/install.yml
index c0a9f97b..c995b4f8 100644
--- a/roles/ipaserver/tasks/install.yml
+++ b/roles/ipaserver/tasks/install.yml
@@ -92,7 +92,7 @@
   register: result_ipaserver_test
 
 - meta: end_play
-  when: not result_ipaserver_test.changed and (result_ipaserver_test.dns_zone_exists is defined or result_ipaserver_test.client_already_configured is defined or result_ipaserver_test.server_already_configured is defined)
+  when: not result_ipaserver_test.changed and (result_ipaserver_test.client_already_configured is defined or result_ipaserver_test.server_already_configured is defined)
 
 - block:
 
-- 
GitLab