mirror of
https://github.com/CumulusNetworks/ifupdown2.git
synced 2024-05-06 15:54:50 +00:00
addons: addressvirtual: ifquery normalizing ip address to IPNetwork format for comparaisons
Ticket: None Reviewed By: Roopa Testing Done: Test from CM-8736: auto bridge iface bridge bridge-vlan-aware yes bridge-ports swp42 mstpctl-treeprio 4096 bridge-stp on bridge-vids 5 13 14 20 799 1001-1006 bridge-pvid 192 auto bridge.20 iface bridge.20 address 10.7.192.194/27 address-virtual 44:38:39:ff:00:20 10.7.192.193 $ ifreload -a $ ifquery bridge.20 -c auto bridge.20 iface bridge.20 [fail] address 10.7.192.194/27 [pass] address-virtual 44:38:39:ff:00:20 10.7.192.193/32 [fail] $ it fails because ifquery is comparing : ['10.7.192.193/32'] with ['10.7.192.193'] after the patch: $ ifquery bridge.20 -c auto bridge.20 iface bridge.20 [pass] address 10.7.192.194/27 [pass] address-virtual 44:38:39:ff:00:20 10.7.192.193 [pass] Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
This commit is contained in:
@ -359,14 +359,27 @@ class addressvirtual(moduleBase):
|
||||
% (ifaceobj.name,
|
||||
macvlan_ifacename,
|
||||
' '.join(av_attrs)))
|
||||
if (rhwaddress == av_attrs[0] and raddrs == av_attrs[1:] and
|
||||
self._check_addresses_in_bridge(ifaceobj, av_attrs[0])):
|
||||
ifaceobjcurr.update_config_with_status('address-virtual',
|
||||
address_virtual, 0)
|
||||
else:
|
||||
raddress_virtual = '%s %s' %(rhwaddress, ' '.join(raddrs))
|
||||
ifaceobjcurr.update_config_with_status('address-virtual',
|
||||
raddress_virtual, 1)
|
||||
try:
|
||||
cmp_av_addr = av_attrs[1:][0]
|
||||
cmp_raddr = raddrs[0]
|
||||
|
||||
if '/' in cmp_raddr and '/' not in cmp_av_addr:
|
||||
cmp_av_addr = str(IPNetwork(cmp_av_addr))
|
||||
elif '/' in cmp_av_addr and '/' not in cmp_raddr:
|
||||
cmp_raddr = str(IPNetwork(cmp_raddr))
|
||||
|
||||
if (rhwaddress == av_attrs[0] and cmp_raddr == cmp_av_addr and
|
||||
self._check_addresses_in_bridge(ifaceobj, av_attrs[0])):
|
||||
ifaceobjcurr.update_config_with_status('address-virtual',
|
||||
address_virtual, 0)
|
||||
else:
|
||||
raddress_virtual = '%s %s' % (rhwaddress, ' '.join(raddrs))
|
||||
ifaceobjcurr.update_config_with_status('address-virtual',
|
||||
raddress_virtual, 1)
|
||||
except:
|
||||
raddress_virtual = '%s %s' % (rhwaddress, ' '.join(raddrs))
|
||||
ifaceobjcurr.update_config_with_status('address-virtual',
|
||||
raddress_virtual, 1)
|
||||
av_idx += 1
|
||||
return
|
||||
|
||||
|
Reference in New Issue
Block a user