1
0
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:
Roopa Prabhu
2014-11-03 21:28:14 -08:00
parent 8e113d6319
commit da1eb143c2
2 changed files with 20 additions and 9 deletions

View File

@ -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:

View File

@ -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):