summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ipa-server/ipa-install/ipa-server-install31
-rw-r--r--ipa-server/ipaserver/dsinstance.py28
2 files changed, 34 insertions, 25 deletions
diff --git a/ipa-server/ipa-install/ipa-server-install b/ipa-server/ipa-install/ipa-server-install
index 041917e29..95b7790e7 100644
--- a/ipa-server/ipa-install/ipa-server-install
+++ b/ipa-server/ipa-install/ipa-server-install
@@ -245,6 +245,33 @@ def read_admin_password():
admin_password = read_password("IPA admin")
return admin_password
+def check_dirsrv():
+ serverids = ipaserver.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":
+ sys.exit(1)
+
+ try:
+ service.stop("dirsrv")
+ except:
+ pass
+
+ for serverid in serverids:
+ ipaserver.dsinstance.erase_ds_instance_data(serverid)
+
+ (ds_unsecure, ds_secure) = ipaserver.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 uninstall():
ipaserver.ntpinstance.NTPInstance().uninstall()
ipaserver.bindinstance.BindInstance().uninstall()
@@ -280,9 +307,7 @@ def main():
print "To accept the default shown in brackets, press the Enter key."
print ""
- ipaserver.dsinstance.check_existing_installation()
- ipaserver.dsinstance.check_ports()
-
+ check_dirsrv()
ds_user = ""
realm_name = ""
diff --git a/ipa-server/ipaserver/dsinstance.py b/ipa-server/ipaserver/dsinstance.py
index b3a445d88..041003382 100644
--- a/ipa-server/ipaserver/dsinstance.py
+++ b/ipa-server/ipaserver/dsinstance.py
@@ -71,34 +71,18 @@ def erase_ds_instance_data(serverid):
def check_existing_installation():
dirs = glob.glob("/etc/dirsrv/slapd-*")
if not dirs:
- return
- 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":
- sys.exit(1)
+ return []
- try:
- service.stop("dirsrv")
- except:
- pass
+ serverids = []
for d in dirs:
- serverid = os.path.basename(d).split("slapd-", 1)[1]
- if serverid:
- erase_ds_instance_data(serverid)
+ serverids.append(os.path.basename(d).split("slapd-", 1)[1])
+
+ return serverids
def check_ports():
ds_unsecure = installutils.port_available(389)
ds_secure = installutils.port_available(636)
- 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)
-
+ return (ds_unsecure, ds_secure)
INF_TEMPLATE = """
[General]