Merge "Check if interface exists in bridge prior to adding."

This commit is contained in:
Jenkins
2012-07-02 21:49:00 +00:00
committed by Gerrit Code Review

View File

@@ -73,6 +73,13 @@ class LinuxBridge:
return False return False
return True return True
def interface_exists_on_bridge(self, bridge, interface):
directory = '/sys/class/net/%s/brif' % bridge
for filename in os.listdir(directory):
if filename == interface:
return True
return False
def get_bridge_name(self, network_id): def get_bridge_name(self, network_id):
if not network_id: if not network_id:
LOG.warning("Invalid Network ID, will lead to incorrect bridge" LOG.warning("Invalid Network ID, will lead to incorrect bridge"
@@ -205,6 +212,8 @@ class LinuxBridge:
LOG.debug("Done starting bridge %s for subinterface %s" % LOG.debug("Done starting bridge %s for subinterface %s" %
(bridge_name, interface)) (bridge_name, interface))
# Check if the interface is part of the bridge
if not self.interface_exists_on_bridge(bridge_name, interface):
utils.execute(['brctl', 'addif', bridge_name, interface], utils.execute(['brctl', 'addif', bridge_name, interface],
root_helper=self.root_helper) root_helper=self.root_helper)