summaryrefslogtreecommitdiffstats
path: root/ipaserver/install/bindinstance.py
diff options
context:
space:
mode:
authorMartin Kosek <mkosek@redhat.com>2012-01-20 08:30:40 +0100
committerRob Crittenden <rcritten@redhat.com>2012-01-22 23:01:42 -0500
commit6141919fba30487e3c4eb19b0c87a10384fd9d20 (patch)
tree945367b213fc59bde5aa5db8cc32a2703c36f508 /ipaserver/install/bindinstance.py
parentf7b4eb6a0918c0b73d4b98f47dcd76fa4e8072f5 (diff)
downloadfreeipa-6141919fba30487e3c4eb19b0c87a10384fd9d20.tar.gz
freeipa-6141919fba30487e3c4eb19b0c87a10384fd9d20.tar.xz
freeipa-6141919fba30487e3c4eb19b0c87a10384fd9d20.zip
Fix ipa-server-install for dual NICs
A server may have 2 or more NICs and its hostname may thus resolve to 2 and more forward addresses. IP address checks in install scripts does not expect this setup and may fail or crash. This script adds a support for multiple forward addresses for a hostname. The install scripts do not crash now. When one IP address is needed, user is asked to choose from all detected server IP addresses. https://fedorahosted.org/freeipa/ticket/2154
Diffstat (limited to 'ipaserver/install/bindinstance.py')
-rw-r--r--ipaserver/install/bindinstance.py16
1 files changed, 14 insertions, 2 deletions
diff --git a/ipaserver/install/bindinstance.py b/ipaserver/install/bindinstance.py
index c7e382822..6e6c94111 100644
--- a/ipaserver/install/bindinstance.py
+++ b/ipaserver/install/bindinstance.py
@@ -197,7 +197,13 @@ def add_zone(name, zonemgr=None, dns_backup=None, ns_hostname=None, ns_ip_addres
raise errors.NotFound("No IPA server with DNS support found!")
ns_main = dns_masters.pop(0)
ns_replicas = dns_masters
- ns_ip_address = resolve_host(ns_main)
+ addresses = resolve_host(ns_main)
+
+ if len(addresses) > 0:
+ # use the first address
+ ns_ip_address = addresses[0]
+ else:
+ ns_ip_address = None
else:
ns_main = ns_hostname
ns_replicas = []
@@ -230,7 +236,13 @@ def add_reverse_zone(zone, ns_hostname=None, ns_ip_address=None,
raise errors.NotFound("No IPA server with DNS support found!")
ns_main = dns_masters.pop(0)
ns_replicas = dns_masters
- ns_ip_address = resolve_host(ns_main)
+ addresses = resolve_host(ns_main)
+
+ if len(addresses) > 0:
+ # use the first address
+ ns_ip_address = addresses[0]
+ else:
+ ns_ip_address = None
else:
ns_main = ns_hostname
ns_replicas = []