From 88cbbf63096651725ca6fe31f1ab2819a7121d37 Mon Sep 17 00:00:00 2001
From: Thomas Woerner <twoerner@redhat.com>
Date: Tue, 26 Mar 2019 14:12:17 +0100
Subject: [PATCH] ipareplica_test: Dop not fail, but end play if replica is
 already installed

Up to now the try to deploy an already deployed replica resulted in an
error. Now this ends in an end play and no error is reported.
---
 roles/ipareplica/library/ipareplica_test.py | 9 +++++++--
 roles/ipareplica/tasks/install.yml          | 3 +++
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/roles/ipareplica/library/ipareplica_test.py b/roles/ipareplica/library/ipareplica_test.py
index c7601816..8ff391f2 100644
--- a/roles/ipareplica/library/ipareplica_test.py
+++ b/roles/ipareplica/library/ipareplica_test.py
@@ -297,7 +297,12 @@ def main():
         with redirect_stdout(ansible_log):
             common_check(options.no_ntp)
     except Exception as msg: #ScriptError as msg:
-        ansible_module.fail_json(msg=str(msg))
+        _msg = str(msg)
+        if "server is already configured" in _msg:
+            ansible_module.exit_json(changed=False,
+                                     server_already_configured=True)
+        else:
+            ansible_module.fail_json(msg=_msg)
 
     # TODO: Check ntp_servers and ntp_pool
 
@@ -321,7 +326,7 @@ def main():
 
     # done #
 
-    ansible_module.exit_json(changed=True,
+    ansible_module.exit_json(changed=False,
                              ipa_python_version=IPA_PYTHON_VERSION,
                              ### basic ###
                              domain=options.domain_name,
diff --git a/roles/ipareplica/tasks/install.yml b/roles/ipareplica/tasks/install.yml
index e8e8056a..a6309561 100644
--- a/roles/ipareplica/tasks/install.yml
+++ b/roles/ipareplica/tasks/install.yml
@@ -68,6 +68,9 @@
     no_dnssec_validation: "{{ ipareplica_no_dnssec_validation }}"
   register: result_ipareplica_test
 
+- meta: end_play
+  when: result_ipareplica_test.client_already_configured is defined or result_ipareplica_test.server_already_configured is defined
+
 - block:
 
   - name: Install - Setup client
-- 
GitLab