mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2024-12-23 07:33:27 -06:00
The IP address provided to ipa-server-install must be local
Compare the configured interfaces with the supplied IP address and optional netmask to determine if the interface is available. https://fedorahosted.org/freeipa/ticket/1175
This commit is contained in:
parent
d0af8b28d7
commit
c329a54c09
@ -597,7 +597,7 @@ def main():
|
||||
# Check we have a public IP that is associated with the hostname
|
||||
hostaddr = resolve_host(host_name)
|
||||
if hostaddr is not None:
|
||||
ip = CheckedIPAddress(hostaddr)
|
||||
ip = CheckedIPAddress(hostaddr, match_local=True)
|
||||
else:
|
||||
if not options.ip_address:
|
||||
print "Unable to resolve IP address for host name"
|
||||
|
@ -66,7 +66,7 @@ def get_domain_name():
|
||||
return domain_name
|
||||
|
||||
class CheckedIPAddress(netaddr.IPAddress):
|
||||
def __init__(self, addr, match_local=True, parse_netmask=True):
|
||||
def __init__(self, addr, match_local=False, parse_netmask=True):
|
||||
if isinstance(addr, CheckedIPAddress):
|
||||
super(CheckedIPAddress, self).__init__(addr)
|
||||
self.prefixlen = addr.prefixlen
|
||||
@ -117,11 +117,14 @@ class CheckedIPAddress(netaddr.IPAddress):
|
||||
continue
|
||||
|
||||
ifnet = netaddr.IPNetwork(fields[3])
|
||||
if ifnet == net or ifnet.ip == addr:
|
||||
if ifnet == net or (net is None and ifnet.ip == addr):
|
||||
net = ifnet
|
||||
iface = fields[1]
|
||||
break
|
||||
|
||||
if iface is None:
|
||||
raise ValueError('No network interface matches the provided IP address and netmask')
|
||||
|
||||
if net is None:
|
||||
defnet = True
|
||||
if addr.version == 4:
|
||||
|
Loading…
Reference in New Issue
Block a user