Fix usage of netaddr '.broadcast'
netaddr 0.7.16 changed the behavior of IPNetworks with /31 and /32 prefixes to make their 'broadcast' attribute return None. This patch replaces the use of the attribute with a -1 index lookup to get the last address instead. Closes-Bug: #1490380 Change-Id: I97d71c4051882ddd9e496c78cfbce840ad7a2b67
This commit is contained in:
parent
bce1ae72ad
commit
6324f7f23d
|
@ -23,8 +23,10 @@ class LinkLocalAddressPair(netaddr.IPNetwork):
|
|||
|
||||
def get_pair(self):
|
||||
"""Builds an address pair from the first and last addresses. """
|
||||
# TODO(kevinbenton): the callers of this seem only interested in an IP,
|
||||
# so we should just return two IPAddresses.
|
||||
return (netaddr.IPNetwork("%s/%s" % (self.network, self.prefixlen)),
|
||||
netaddr.IPNetwork("%s/%s" % (self.broadcast, self.prefixlen)))
|
||||
netaddr.IPNetwork("%s/%s" % (self[-1], self.prefixlen)))
|
||||
|
||||
|
||||
class LinkLocalAllocator(ItemAllocator):
|
||||
|
|
|
@ -422,7 +422,7 @@ class IpAddrCommand(IpDeviceCommandBase):
|
|||
'scope', scope,
|
||||
'dev', self.name]
|
||||
if net.version == 4:
|
||||
args += ['brd', str(net.broadcast)]
|
||||
args += ['brd', str(net[-1])]
|
||||
self._as_root([net.version], tuple(args))
|
||||
|
||||
def delete(self, cidr):
|
||||
|
|
|
@ -23,7 +23,7 @@ def check_subnet_ip(cidr, ip_address):
|
|||
# Check that the IP is valid on subnet. This cannot be the
|
||||
# network or the broadcast address (which exists only in IPv4)
|
||||
return (ip != net.network
|
||||
and (net.version == 6 or ip != net.broadcast)
|
||||
and (net.version == 6 or ip != net[-1])
|
||||
and net.netmask & ip == net.network)
|
||||
|
||||
|
||||
|
|
|
@ -143,8 +143,7 @@ class LinuxBridgeManager(object):
|
|||
try:
|
||||
# Ensure the configured group address/range is valid and multicast
|
||||
net = netaddr.IPNetwork(cfg.CONF.VXLAN.vxlan_group)
|
||||
if not (net.network.is_multicast() and
|
||||
net.broadcast.is_multicast()):
|
||||
if not net.is_multicast():
|
||||
raise ValueError()
|
||||
# Map the segmentation ID to (one of) the group address(es)
|
||||
return str(net.network +
|
||||
|
|
|
@ -69,7 +69,7 @@ def increment_ip_cidr(ip_cidr, offset=1):
|
|||
net0 = netaddr.IPNetwork(ip_cidr)
|
||||
net = netaddr.IPNetwork(ip_cidr)
|
||||
net.value += offset
|
||||
if not net0.network < net.ip < net0.broadcast:
|
||||
if not net0.network < net.ip < net0[-1]:
|
||||
tools.fail(
|
||||
'Incorrect ip_cidr,offset tuple (%s,%s): "incremented" ip_cidr is '
|
||||
'outside ip_cidr' % (ip_cidr, offset))
|
||||
|
|
Loading…
Reference in New Issue