From c7c94bc7630bfb68fa00c07bbc3f785e6d854a62 Mon Sep 17 00:00:00 2001 From: Rob Crittenden Date: Mon, 14 Apr 2008 19:04:43 -0400 Subject: Detect existing DS instances and prompt for removal during replica install. 442454 --- ipa-server/ipa-install/ipa-replica-install | 32 ++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/ipa-server/ipa-install/ipa-replica-install b/ipa-server/ipa-install/ipa-replica-install index 98b74a7f..3bfe07a2 100644 --- a/ipa-server/ipa-install/ipa-replica-install +++ b/ipa-server/ipa-install/ipa-replica-install @@ -137,10 +137,42 @@ def install_http(config): print "error copying files: " + str(e) sys.exit(1) +def check_dirsrv(): + serverids = dsinstance.check_existing_installation() + if serverids: + print "" + print "An existing Directory Server has been detected." + yesno = raw_input("Do you wish to remove it and create a new one? [no]: ") + if not yesno or yesno.lower()[0] != "y": + print "" + print "Only a single Directory Server instance is allowed on an IPA" + print "server, the one used by IPA itself." + sys.exit(1) + + try: + service.stop("dirsrv") + except: + pass + + for serverid in serverids: + dsinstance.erase_ds_instance_data(serverid) + + (ds_unsecure, ds_secure) = dsinstance.check_ports() + if not ds_unsecure or not ds_secure: + print "IPA requires ports 389 and 636 for the Directory Server." + print "These are currently in use:" + if not ds_unsecure: + print "\t389" + if not ds_secure: + print "\t636" + sys.exit(1) + def main(): options, filename = parse_options() installutils.standard_logging_setup("/var/log/ipareplica-install.log", options.debug) + check_dirsrv() + top_dir, dir = expand_info(filename) config = ReplicaConfig() -- cgit