1
0
mirror of https://github.com/CumulusNetworks/ifupdown2.git synced 2024-05-06 15:54:50 +00:00

ifupdownaddons: iproute2: add bridge_commit_batch api to batch bridge

commands

Ticket: CM-11274
Testing Done: julien, wkok, nikhil

It uses and goes with the the other batch variables and apis.
This one just calls the 'bridge -batch' command instead
of the 'ip -batch' command.

This can be used to batch bridge commands.

Signed-off-by: Roopa Prabhu <roopa@cumulusnetworks.com>
This commit is contained in:
Roopa Prabhu
2016-07-08 08:13:37 -07:00
parent d07b5a9fbb
commit 508f6e90ad

View File

@ -284,6 +284,21 @@ class iproute2(utilsBase):
self.ipbatch = False
self.ipbatch_pause = False
def bridge_batch_commit(self):
if not self.ipbatchbuf:
self.ipbatchbuf = ''
self.ipbatch = False
self.ipbatch_pause = False
return
try:
utils.exec_command('bridge -force -batch -', stdin=self.ipbatchbuf)
except:
raise
finally:
self.ipbatchbuf = ''
self.ipbatch = False
self.ipbatch_pause = False
def addr_show(self, ifacename=None):
if ifacename:
if not self.link_exists(ifacename):
@ -724,12 +739,20 @@ class iproute2(utilsBase):
return brvlaninfo
def bridge_port_pvid_add(self, bridgeportname, pvid):
utils.exec_command('bridge vlan add vid %s untagged pvid dev %s' %
(pvid, bridgeportname))
if self.ipbatch and not self.ipbatch_pause:
self.add_to_batch('vlan add vid %s untagged pvid dev %s' %
(pvid, bridgeportname))
else:
utils.exec_command('bridge vlan add vid %s untagged pvid dev %s' %
(pvid, bridgeportname))
def bridge_port_pvid_del(self, bridgeportname, pvid):
utils.exec_command('bridge vlan del vid %s untagged pvid dev %s' %
(pvid, bridgeportname))
if self.ipbatch and not self.ipbatch_pause:
self.add_to_batch('vlan del vid %s untagged pvid dev %s' %
(pvid, bridgeportname))
else:
utils.exec_command('bridge vlan del vid %s untagged pvid dev %s' %
(pvid, bridgeportname))
def bridge_port_pvids_get(self, bridgeportname):
return self.read_file_oneline('/sys/class/net/%s/brport/pvid'
@ -737,13 +760,21 @@ class iproute2(utilsBase):
def bridge_vids_add(self, bridgeportname, vids, bridge=True):
target = 'self' if bridge else ''
[utils.exec_command('bridge vlan add vid %s dev %s %s' %
(v, bridgeportname, target)) for v in vids]
if self.ipbatch and not self.ipbatch_pause:
[self.add_to_batch('vlan add vid %s dev %s %s' %
(v, bridgeportname, target)) for v in vids]
else:
[utils.exec_command('bridge vlan add vid %s dev %s %s' %
(v, bridgeportname, target)) for v in vids]
def bridge_vids_del(self, bridgeportname, vids, bridge=True):
target = 'self' if bridge else ''
[utils.exec_command('bridge vlan del vid %s dev %s %s' %
(v, bridgeportname, target)) for v in vids]
if self.ipbatch and not self.ipbatch_pause:
[self.add_to_batch('vlan del vid %s dev %s %s' %
(v, bridgeportname, target)) for v in vids]
else:
[utils.exec_command('bridge vlan del vid %s dev %s %s' %
(v, bridgeportname, target)) for v in vids]
def bridge_fdb_add(self, dev, address, vlan=None, bridge=True, remote=None):
target = 'self' if bridge else ''