Merge "Provides flag override for vlan interface"
This commit is contained in:
@@ -944,10 +944,11 @@ class LinuxBridgeInterfaceDriver(LinuxNetInterfaceDriver):
|
||||
|
||||
def plug(self, network, mac_address, gateway=True):
|
||||
if network.get('vlan', None) is not None:
|
||||
iface = FLAGS.vlan_interface or network['bridge_interface']
|
||||
LinuxBridgeInterfaceDriver.ensure_vlan_bridge(
|
||||
network['vlan'],
|
||||
network['bridge'],
|
||||
network['bridge_interface'],
|
||||
iface,
|
||||
network,
|
||||
mac_address)
|
||||
else:
|
||||
|
||||
@@ -432,6 +432,31 @@ class LinuxNetworkTestCase(test.TestCase):
|
||||
driver.plug({"bridge": "br100", "bridge_interface": "eth0"},
|
||||
"fakemac")
|
||||
|
||||
def test_vlan_override(self):
|
||||
"""Makes sure vlan_interface flag overrides network bridge_interface.
|
||||
|
||||
Allows heterogeneous networks a la bug 833426"""
|
||||
|
||||
driver = linux_net.LinuxBridgeInterfaceDriver()
|
||||
|
||||
@classmethod
|
||||
def test_ensure(_self, vlan, bridge, interface, network, mac_address):
|
||||
self.passed_interface = interface
|
||||
|
||||
self.stubs.Set(linux_net.LinuxBridgeInterfaceDriver,
|
||||
'ensure_vlan_bridge', test_ensure)
|
||||
|
||||
network = {
|
||||
"bridge": "br100",
|
||||
"bridge_interface": "base_interface",
|
||||
"vlan": "fake"
|
||||
}
|
||||
driver.plug(network, "fakemac")
|
||||
self.assertEqual(self.passed_interface, "base_interface")
|
||||
self.flags(vlan_interface="override_interface")
|
||||
driver.plug(network, "fakemac")
|
||||
self.assertEqual(self.passed_interface, "override_interface")
|
||||
|
||||
def _test_initialize_gateway(self, existing, expected, routes=''):
|
||||
self.flags(fake_network=False)
|
||||
executes = []
|
||||
|
||||
@@ -82,13 +82,14 @@ class LibvirtBridgeDriver(VIFDriver):
|
||||
if (not network.get('multi_host') and
|
||||
mapping.get('should_create_bridge')):
|
||||
if mapping.get('should_create_vlan'):
|
||||
iface = FLAGS.vlan_interface or network['bridge_interface']
|
||||
LOG.debug(_('Ensuring vlan %(vlan)s and bridge %(bridge)s'),
|
||||
{'vlan': network['vlan'],
|
||||
'bridge': network['bridge']})
|
||||
linux_net.LinuxBridgeInterfaceDriver.ensure_vlan_bridge(
|
||||
network['vlan'],
|
||||
network['bridge'],
|
||||
network['bridge_interface'])
|
||||
iface)
|
||||
else:
|
||||
LOG.debug(_("Ensuring bridge %s"), network['bridge'])
|
||||
linux_net.LinuxBridgeInterfaceDriver.ensure_bridge(
|
||||
|
||||
@@ -77,7 +77,7 @@ class XenAPIBridgeDriver(XenVIFDriver):
|
||||
|
||||
vlan_num = network['vlan']
|
||||
bridge = network['bridge']
|
||||
bridge_interface = network['bridge_interface']
|
||||
bridge_interface = FLAGS.vlan_interface or network['bridge_interface']
|
||||
# Check whether bridge already exists
|
||||
# Retrieve network whose name_label is "bridge"
|
||||
network_ref = NetworkHelper.find_network_with_name_label(
|
||||
|
||||
Reference in New Issue
Block a user