diff options
author | Martin Kosek <mkosek@redhat.com> | 2011-10-06 11:20:53 +0200 |
---|---|---|
committer | Martin Kosek <mkosek@redhat.com> | 2011-10-06 11:28:25 +0200 |
commit | 526a39903a9d9136b7a2cef25cde59074ba1f39c (patch) | |
tree | c06cfbd834b3ead30ccf26e586c11a91b8a4c9dd /install | |
parent | 6dcd1d81216848b2428ea71237bcca826c40686d (diff) | |
download | freeipa-526a39903a9d9136b7a2cef25cde59074ba1f39c.tar.gz freeipa-526a39903a9d9136b7a2cef25cde59074ba1f39c.tar.xz freeipa-526a39903a9d9136b7a2cef25cde59074ba1f39c.zip |
Improve ipa-replica-prepare DNS check
Currently, verify_fqdn() function raises RuntimeError for every
problem with the hostname. This makes it difficult for tools
like ipa-replica-prepare to behave differently for a subset of
raised errors (for example to be able to create a DNS record for
new replica when verify_fqdn() reports a lookup error).
Implement own exceptions for verify_fqdn() that they can be safely
used to distinguish the error type.
https://fedorahosted.org/freeipa/ticket/1899
Diffstat (limited to 'install')
-rwxr-xr-x | install/tools/ipa-ca-install | 4 | ||||
-rwxr-xr-x | install/tools/ipa-replica-install | 4 | ||||
-rwxr-xr-x | install/tools/ipa-replica-prepare | 6 | ||||
-rwxr-xr-x | install/tools/ipa-server-install | 15 |
4 files changed, 12 insertions, 17 deletions
diff --git a/install/tools/ipa-ca-install b/install/tools/ipa-ca-install index bfb947bcd..445b06214 100755 --- a/install/tools/ipa-ca-install +++ b/install/tools/ipa-ca-install @@ -30,7 +30,7 @@ from ipaserver.install import installutils, service from ipaserver.install import certs from ipaserver.install.installutils import HostnameLocalhost from ipaserver.install.installutils import ReplicaConfig, expand_replica_info, read_replica_info -from ipaserver.install.installutils import get_host_name +from ipaserver.install.installutils import get_host_name, BadHostError from ipaserver.install import dsinstance, cainstance from ipaserver.install.replication import replica_conn_check from ipapython import version @@ -119,7 +119,7 @@ def main(): config.dirman_password = dirman_password try: host = get_host_name(options.no_host_dns) - except RuntimeError, e: + except BadHostError, e: logging.error(str(e)) sys.exit(1) if config.host_name != host: diff --git a/install/tools/ipa-replica-install b/install/tools/ipa-replica-install index c7ef54ce3..dbc736764 100755 --- a/install/tools/ipa-replica-install +++ b/install/tools/ipa-replica-install @@ -32,7 +32,7 @@ from ipaserver.install import bindinstance, httpinstance, ntpinstance, certs from ipaserver.install.replication import replica_conn_check from ipaserver.install.installutils import HostnameLocalhost, resolve_host from ipaserver.install.installutils import ReplicaConfig, expand_replica_info, read_replica_info -from ipaserver.install.installutils import get_host_name +from ipaserver.install.installutils import get_host_name, BadHostError from ipaserver.plugins.ldap2 import ldap2 from ipaserver.install import cainstance from ipapython import version @@ -331,7 +331,7 @@ def main(): config.dirman_password = dirman_password try: host = get_host_name(options.no_host_dns) - except RuntimeError, e: + except BadHostError, e: logging.error(str(e)) sys.exit(1) if config.host_name != host: diff --git a/install/tools/ipa-replica-prepare b/install/tools/ipa-replica-prepare index cd141be18..6b7130be9 100755 --- a/install/tools/ipa-replica-prepare +++ b/install/tools/ipa-replica-prepare @@ -29,7 +29,7 @@ from ipapython import ipautil from ipaserver.install import bindinstance, dsinstance, installutils, certs from ipaserver.install.bindinstance import add_zone, add_reverse_zone, add_fwd_rr, add_ptr_rr, dns_container_exists from ipaserver.install.replication import enable_replication_version_checking -from ipaserver.install.installutils import resolve_host +from ipaserver.install.installutils import resolve_host, BadHostError, HostLookupError from ipaserver.plugins.ldap2 import ldap2 from ipapython import version from ipapython.config import IPAOptionParser @@ -270,9 +270,9 @@ def main(): try: installutils.verify_fqdn(replica_fqdn, system_name_check=False) - except RuntimeError, e: + except BadHostError, e: msg = str(e) - if msg.startswith('Unable to resolve host name'): + if isinstance(e, HostLookupError): if options.ip_address is None: if dns_container_exists(api.env.host, api.env.basedn, dm_password=dirman_password, diff --git a/install/tools/ipa-server-install b/install/tools/ipa-server-install index fe91fe5b7..7839dbd9f 100755 --- a/install/tools/ipa-server-install +++ b/install/tools/ipa-server-install @@ -388,15 +388,10 @@ def read_host_name(host_default,no_host_dns=False): print "" if host_default == "": host_default = "master.example.com" - while True: - host_name = user_input("Server host name", host_default, allow_empty = False) - print "" - try: - verify_fqdn(host_name,no_host_dns) - except Exception, e: - raise e - else: - break + host_name = user_input("Server host name", host_default, allow_empty = False) + print "" + verify_fqdn(host_name,no_host_dns) + return host_name def read_domain_name(domain_name, unattended): @@ -750,7 +745,7 @@ def main(): host_name = host_default else: host_name = read_host_name(host_default,options.no_host_dns) - except RuntimeError, e: + except BadHostError, e: sys.exit(str(e) + "\n") host_name = host_name.lower() |