From 90b827a6d23d864bfac96d2ff0f89f1a3ba1d245 Mon Sep 17 00:00:00 2001 From: Stanislav Laznicka Date: Fri, 12 Aug 2016 11:59:41 +0200 Subject: [PATCH] Fail on topology disconnect/last role removal Disconnecting topology/removing last-role-host during server uninstallation should raise error rather than just being logged if the appropriate ignore settings are not present. https://fedorahosted.org/freeipa/ticket/6168 Reviewed-By: Martin Babinsky --- ipaserver/install/server/install.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ipaserver/install/server/install.py b/ipaserver/install/server/install.py index 94698898934844350488d5fc52d6e1e567624502..86b8402750b503ea7dacd1f4c59c82d9bd4082e6 100644 --- a/ipaserver/install/server/install.py +++ b/ipaserver/install/server/install.py @@ -25,6 +25,7 @@ from ipapython.ipa_log_manager import root_logger from ipapython.ipautil import ( decrypt_file, format_netloc, ipa_generate_password, run, user_input, is_fips_enabled) +from ipapython.admintool import ScriptError from ipaplatform import services from ipaplatform.paths import paths from ipaplatform.tasks import tasks @@ -294,7 +295,6 @@ def common_cleanup(func): def remove_master_from_managed_topology(api_instance, options): try: # we may force the removal - # if the master was already deleted we will just get a warning server_del_options = dict( force=True, ignore_topology_disconnect=options.ignore_topology_disconnect, @@ -303,8 +303,10 @@ def remove_master_from_managed_topology(api_instance, options): replication.run_server_del_as_cli( api_instance, api_instance.env.host, **server_del_options) - + except errors.ServerRemovalError as e: + raise ScriptError(str(e)) except Exception as e: + # if the master was already deleted we will just get a warning root_logger.warning("Failed to delete master: {}".format(e)) -- 2.9.3