From f6240f21fc9ae2ade54acedf98770e5f5e433d38 Mon Sep 17 00:00:00 2001 From: Martin Babinsky Date: Fri, 27 Nov 2015 14:05:21 +0100 Subject: [PATCH] perform IPA client uninstallation as a last step of server uninstall With the ability to promote replicas from an enrolled client the uninstallation procedure has to be changed slightly. If the client-side components are not removed last during replica uninstallation, we can end up with leftover ipa default.conf preventing future client re-enrollment. https://fedorahosted.org/freeipa/ticket/5410 Reviewed-By: Martin Basti Reviewed-By: Jan Cholasta --- ipaserver/install/server/install.py | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/ipaserver/install/server/install.py b/ipaserver/install/server/install.py index 6ecb87ac9..bd07793bb 100644 --- a/ipaserver/install/server/install.py +++ b/ipaserver/install/server/install.py @@ -1046,19 +1046,6 @@ def uninstall(installer): except Exception as e: pass - print("Removing IPA client configuration") - try: - (stdout, stderr, rc) = run([paths.IPA_CLIENT_INSTALL, "--on-master", - "--unattended", "--uninstall"], - raiseonerr=False) - if rc not in [0, 2]: - root_logger.debug("ipa-client-install returned %d" % rc) - raise RuntimeError(stdout) - except Exception as e: - rv = 1 - print("Uninstall of client side components failed!") - print("ipa-client-install returned: " + str(e)) - ntpinstance.NTPInstance(fstore).uninstall() kra.uninstall(False) @@ -1138,6 +1125,19 @@ def uninstall(installer): ' # getcert stop-tracking -i \n' 'for each id in: %s' % ', '.join(ids)) + print("Removing IPA client configuration") + try: + (stdout, stderr, rc) = run([paths.IPA_CLIENT_INSTALL, "--on-master", + "--unattended", "--uninstall"], + raiseonerr=False) + if rc not in [0, 2]: + root_logger.debug("ipa-client-install returned %d" % rc) + raise RuntimeError(stdout) + except Exception as e: + rv = 1 + print("Uninstall of client side components failed!") + print("ipa-client-install returned: " + str(e)) + sys.exit(rv)