Hello, This patch addresses ticket https://fedorahosted.org/freeipa/ticket/3867.
-- Regards, Ana Krivokapic Associate Software Engineer FreeIPA team Red Hat Inc.
From 29732542431dfa3d2a41607f6537690655a7a027 Mon Sep 17 00:00:00 2001 From: Ana Krivokapic <[email protected]> Date: Thu, 29 Aug 2013 17:44:02 +0200 Subject: [PATCH] Add warning when uninstalling active replica Add a warning when trying to uninstall a replica that has active replication agreements. https://fedorahosted.org/freeipa/ticket/3867 --- install/tools/ipa-server-install | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/install/tools/ipa-server-install b/install/tools/ipa-server-install index 86ca3447bfaab1763324ce57c67c073a8fa93963..7444a6f8720f2c6ca89fcd0bcbf0a2077dabf83f 100755 --- a/install/tools/ipa-server-install +++ b/install/tools/ipa-server-install @@ -28,18 +28,16 @@ import sys import os -import errno import grp -import subprocess import signal import shutil -import glob import pickle import random import tempfile import nss.error import base64 -from optparse import OptionGroup, OptionValueError, SUPPRESS_HELP +import pwd +from optparse import OptionGroup, OptionValueError from ipaserver.install import dsinstance from ipaserver.install import krbinstance @@ -51,10 +49,11 @@ from ipaserver.install import cainstance from ipaserver.install import memcacheinstance from ipaserver.install import otpdinstance from ipaserver.install import sysupgrade - +from ipaserver.install import replication from ipaserver.install import service, installutils from ipapython import version from ipapython import certmonger +from ipapython import ipaldap from ipaserver.install.installutils import * from ipaserver.plugins.ldap2 import ldap2 @@ -624,6 +623,29 @@ def main(): print "Aborting uninstall operation." sys.exit(1) + conn = ipaldap.IPAdmin(api.env.host, ldapi=True, realm=api.env.realm) + conn.do_external_bind(pwd.getpwuid(os.geteuid()).pw_name) + rm = replication.ReplicationManager(api.env.realm, api.env.host, None, + conn=conn) + agreements = rm.find_ipa_replication_agreements() + + if agreements: + other_masters = [a.get('cn')[0][4:] for a in agreements] + print "\nReplication agreements with the following IPA masters " + print "found: %s." % ", ".join(other_masters) + print "Removing any replication agreements before uninstalling " + print "the server is strongly recommended." + print "You can remove replication agreements by running the " + print "following command on any other IPA master:" + print "$ ipa-replica-manage del %s" % api.env.host + if not (options.unattended or user_input("Are you sure you want " + "to continue with the " + "uninstall procedure?", + False)): + print "" + print "Aborting uninstall operation." + sys.exit(1) + return uninstall() if options.external_ca: -- 1.8.3.1
_______________________________________________ Freeipa-devel mailing list [email protected] https://www.redhat.com/mailman/listinfo/freeipa-devel
