diff options
Diffstat (limited to 'install/tools/ipa-replica-prepare')
-rwxr-xr-x | install/tools/ipa-replica-prepare | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/install/tools/ipa-replica-prepare b/install/tools/ipa-replica-prepare index 0c3388de9..908c50a13 100755 --- a/install/tools/ipa-replica-prepare +++ b/install/tools/ipa-replica-prepare @@ -245,6 +245,22 @@ def main(): if not options.pkinit_pkcs12 and not certs.ipa_self_signed(): options.setup_pkinit = False + try: + installutils.verify_fqdn(replica_fqdn) + except RuntimeError, e: + msg = str(e) + if msg.startswith('Unable to resolve host name'): + if options.ip_address is None: + if bindinstance.dns_container_exists(api.env.host, + api.env.basedn): + msg += '\nAdd the --ip-address argument to create a DNS entry.' + sys.exit(msg) + else: + # The host doesn't exist in DNS but we're adding it. + pass + else: + sys.exit(msg) + if options.ip_address: if not bindinstance.dns_container_exists(api.env.host, api.env.basedn): print "You can't add a DNS record because DNS is not set up." @@ -255,6 +271,12 @@ def main(): check_ipa_configuration(api.env.realm) + if not options.ip_address: + try: + api.Command['dns_resolve'](replica_fqdn) + except errors.NotFound: + sys.exit("Neither an A nor AAAA record for host '%s' does not exist in DNS.\nUse the --ip-address option to add DNS entries for the replica." % replica_fqdn) + if api.env.host == replica_fqdn: print "You can't create a replica on itself" sys.exit(1) |