mirror of
https://github.com/CumulusNetworks/ifupdown2.git
synced 2024-05-06 15:54:50 +00:00
Fix bridgevlan query check
Ticket: CM-3346 Reviewed By: Testing Done: tested bridge vlan query check
This commit is contained in:
@ -185,10 +185,6 @@ class bridge(moduleBase):
|
|||||||
{ 'help' : 'bridge port vlans',
|
{ 'help' : 'bridge port vlans',
|
||||||
'compat': True,
|
'compat': True,
|
||||||
'example' : ['bridge-port-pvids bond0=100 bond1=200']},
|
'example' : ['bridge-port-pvids bond0=100 bond1=200']},
|
||||||
'bridge-igmp-querier-src' :
|
|
||||||
{ 'help' : 'bridge igmp querier src. Must be ' +
|
|
||||||
'specified under the vlan interface',
|
|
||||||
'example' : ['bridge-igmp-querier-src 172.16.101.1']},
|
|
||||||
}}
|
}}
|
||||||
|
|
||||||
# declare some ifaceobj priv_flags.
|
# declare some ifaceobj priv_flags.
|
||||||
@ -1170,8 +1166,7 @@ class bridge(moduleBase):
|
|||||||
['bridge-vids', 'bridge-pvid', 'bridge-access',
|
['bridge-vids', 'bridge-pvid', 'bridge-access',
|
||||||
'bridge-pathcosts', 'bridge-portprios',
|
'bridge-pathcosts', 'bridge-portprios',
|
||||||
'bridge-portmcrouter',
|
'bridge-portmcrouter',
|
||||||
'bridge-portmcfl',
|
'bridge-portmcfl'], 0)
|
||||||
'bridge-igmp-querier-src'], 0)
|
|
||||||
return
|
return
|
||||||
bridgename = self._get_bridge_name(ifaceobj)
|
bridgename = self._get_bridge_name(ifaceobj)
|
||||||
if not bridgename:
|
if not bridgename:
|
||||||
|
@ -21,7 +21,9 @@ class bridgevlan(moduleBase):
|
|||||||
'vlan aware bridge this config is for',
|
'vlan aware bridge this config is for',
|
||||||
'attrs' : {
|
'attrs' : {
|
||||||
'bridge-igmp-querier-src' :
|
'bridge-igmp-querier-src' :
|
||||||
{'help' : 'igmp querier src'}}}
|
{ 'help' : 'bridge igmp querier src. Must be ' +
|
||||||
|
'specified under the vlan interface',
|
||||||
|
'example' : ['bridge-igmp-querier-src 172.16.101.1']}}}
|
||||||
|
|
||||||
def __init__(self, *args, **kargs):
|
def __init__(self, *args, **kargs):
|
||||||
moduleBase.__init__(self, *args, **kargs)
|
moduleBase.__init__(self, *args, **kargs)
|
||||||
@ -96,13 +98,27 @@ class bridgevlan(moduleBase):
|
|||||||
#self.logger.warn('%s: bridge %s does not exist' %(ifaceobj.name,
|
#self.logger.warn('%s: bridge %s does not exist' %(ifaceobj.name,
|
||||||
# bridgename))
|
# bridgename))
|
||||||
return
|
return
|
||||||
|
|
||||||
mcqv4src = ifaceobj.get_attr_value_first('bridge-igmp-querier-src')
|
mcqv4src = ifaceobj.get_attr_value_first('bridge-igmp-querier-src')
|
||||||
if mcqv4src:
|
if mcqv4src:
|
||||||
self.brctlcmd.del_mcqv4src(bridgename, vlanid)
|
self.brctlcmd.del_mcqv4src(bridgename, vlanid)
|
||||||
|
|
||||||
|
def _query_running_bridge_igmp_querier_src(self, ifaceobj):
|
||||||
|
(bridgename, vlanid) = ifaceobj.name.split('.')
|
||||||
|
running_mcqv4src = self.brctlcmd.get_mcqv4src(bridgename)
|
||||||
|
if running_mcqv4src:
|
||||||
|
return running_mcqv4src.get(vlanid)
|
||||||
|
return None
|
||||||
|
|
||||||
def _query_check(self, ifaceobj, ifaceobjcurr):
|
def _query_check(self, ifaceobj, ifaceobjcurr):
|
||||||
# XXX not supported
|
attrval = ifaceobj.get_attr_value_first('bridge-igmp-querier-src')
|
||||||
|
if attrval:
|
||||||
|
running_mcq = self._query_running_bridge_igmp_querier_src(ifaceobj)
|
||||||
|
if not running_mcq or running_mcq != attrval:
|
||||||
|
ifaceobjcurr.update_config_with_status(
|
||||||
|
'bridge-igmp-querier-src', running_mcq, 1)
|
||||||
|
else:
|
||||||
|
ifaceobjcurr.update_config_with_status(
|
||||||
|
'bridge-igmp-querier-src', attrval, 0)
|
||||||
return
|
return
|
||||||
|
|
||||||
def _query_running(self, ifaceobjrunning):
|
def _query_running(self, ifaceobjrunning):
|
||||||
|
Reference in New Issue
Block a user