Remove transparent VLAN support from base plugin
The transparent VLAN is an extension. This code was bundled part
of the base plugin.
Commit 809e434d2d
has a todo to remove
the code from the base plugin.
Change-Id: Id5fd68e2b0e6396dc411697e14670f7236dc78d4
This commit is contained in:
parent
7490891157
commit
330cbc995f
|
@ -280,12 +280,6 @@ class DbBasePluginCommon(common_db_mixin.CommonDbMixin):
|
|||
shared = True
|
||||
break
|
||||
res['shared'] = shared
|
||||
# TODO(pritesh): Move vlan_transparent to the extension module.
|
||||
# vlan_transparent here is only added if the vlantransparent
|
||||
# extension is enabled.
|
||||
if ('vlan_transparent' in network and network['vlan_transparent'] !=
|
||||
attributes.ATTR_NOT_SPECIFIED):
|
||||
res['vlan_transparent'] = network['vlan_transparent']
|
||||
# Call auxiliary extend functions, if any
|
||||
if process_extensions:
|
||||
self._apply_dict_extend_functions(
|
||||
|
|
|
@ -323,12 +323,6 @@ class NeutronDbPluginV2(db_base_plugin_common.DbBasePluginCommon,
|
|||
'admin_state_up': n['admin_state_up'],
|
||||
'mtu': n.get('mtu', constants.DEFAULT_NETWORK_MTU),
|
||||
'status': n.get('status', constants.NET_STATUS_ACTIVE)}
|
||||
# TODO(pritesh): Move vlan_transparent to the extension module.
|
||||
# vlan_transparent here is only added if the vlantransparent
|
||||
# extension is enabled.
|
||||
if ('vlan_transparent' in n and n['vlan_transparent'] !=
|
||||
attributes.ATTR_NOT_SPECIFIED):
|
||||
args['vlan_transparent'] = n['vlan_transparent']
|
||||
network = models_v2.Network(**args)
|
||||
if n['shared']:
|
||||
entry = rbac_db.NetworkRBAC(
|
||||
|
|
|
@ -46,6 +46,13 @@ def disable_extension_by_config(aliases):
|
|||
LOG.info(_LI('Disabled vlantransparent extension.'))
|
||||
|
||||
|
||||
def get_vlan_transparent(network):
|
||||
return (network['vlan_transparent']
|
||||
if ('vlan_transparent' in network and
|
||||
attributes.is_attr_set(network['vlan_transparent']))
|
||||
else False)
|
||||
|
||||
|
||||
class Vlantransparent(extensions.ExtensionDescriptor):
|
||||
"""Extension class supporting vlan transparent networks."""
|
||||
|
||||
|
|
|
@ -369,10 +369,7 @@ class MechanismManager(stevedore.named.NamedExtensionManager):
|
|||
VlanTransparencyDriverError if any mechanism driver doesn't
|
||||
support vlan transparency.
|
||||
"""
|
||||
if context.current['vlan_transparent'] is None:
|
||||
return
|
||||
|
||||
if context.current['vlan_transparent']:
|
||||
if context.current.get('vlan_transparent'):
|
||||
for driver in self.ordered_mech_drivers:
|
||||
if not driver.obj.check_vlan_transparency(context):
|
||||
raise vlantransparent.VlanTransparencyDriverError()
|
||||
|
|
|
@ -652,6 +652,13 @@ class Ml2Plugin(db_base_plugin_v2.NeutronDbPluginV2,
|
|||
result['id'], {'network': {az_ext.AZ_HINTS: az_hints}})
|
||||
result[az_ext.AZ_HINTS] = az_hints
|
||||
|
||||
# Update the transparent vlan if configured
|
||||
if utils.is_extension_supported(self, 'vlan-transparent'):
|
||||
vlt = vlantransparent.get_vlan_transparent(net_data)
|
||||
super(Ml2Plugin, self).update_network(context,
|
||||
result['id'], {'network': {'vlan_transparent': vlt}})
|
||||
result['vlan_transparent'] = vlt
|
||||
|
||||
return result, mech_context
|
||||
|
||||
def create_network(self, context, network):
|
||||
|
|
|
@ -46,6 +46,18 @@ class VlanTransparentExtensionTestPlugin(db_base_plugin_v2.NeutronDbPluginV2,
|
|||
|
||||
supported_extension_aliases = ["vlan-transparent"]
|
||||
|
||||
def create_network(self, context, network):
|
||||
with context.session.begin(subtransactions=True):
|
||||
new_net = super(VlanTransparentExtensionTestPlugin,
|
||||
self).create_network(context, network)
|
||||
# Update the vlan_transparent in the database
|
||||
n = network['network']
|
||||
vlan_transparent = vlt.get_vlan_transparent(n)
|
||||
network = self._get_network(context, new_net['id'])
|
||||
n['vlan_transparent'] = vlan_transparent
|
||||
network.update(n)
|
||||
return new_net
|
||||
|
||||
|
||||
class VlanTransparentExtensionTestCase(test_db_base_plugin_v2.TestNetworksV2):
|
||||
fmt = 'json'
|
||||
|
@ -102,4 +114,4 @@ class VlanTransparentExtensionTestCase(test_db_base_plugin_v2.TestNetworksV2):
|
|||
res = self.deserialize(self.fmt, req.get_response(self.api))
|
||||
self.assertEqual(net['network']['name'],
|
||||
res['network']['name'])
|
||||
self.assertIsNone(res['network'][vlt.VLANTRANSPARENT])
|
||||
self.assertFalse(res['network'][vlt.VLANTRANSPARENT])
|
||||
|
|
Loading…
Reference in New Issue