mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Remove questions from ipaserver.dsinstance
Let's assume that all ipaserver.dsinstance could be used somewhere where asking questions on stdout/stdin is not approriate and re-factor the code to be suitable in those situations too. i.e. make check_existing_installation() return a list of server IDs and make check_ports() return an (unsecure, secure) tuple indication which ports are in use. Signed-off-by: Mark McLoughlin <markmc@redhat.com>
This commit is contained in:
@@ -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 = ""
|
||||
|
||||
@@ -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]
|
||||
|
||||
Reference in New Issue
Block a user