Move 'get_tap_device_name' to utils module

The Linux Bridge trunk module will use this to determine the name
to use for sub-interfaces. Moving this into a common module prevents
the trunk module from having to import the agent module.

Partially-Implements: blueprint vlan-aware-vms
Change-Id: I9942e7fce67d39834ea4e690dc0bc16a581b4782
This commit is contained in:
Kevin Benton 2016-09-09 00:48:34 -07:00
parent 903eb250bc
commit 06361f7daf
2 changed files with 35 additions and 6 deletions

View File

@ -0,0 +1,32 @@
# Copyright 2012 Cisco Systems, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
from neutron_lib import constants as n_const
from oslo_log import log
from neutron._i18n import _LW
from neutron.plugins.ml2.drivers.linuxbridge.agent.common import constants
LOG = log.getLogger(__name__)
def get_tap_device_name(interface_id):
"""Convert port ID into device name format expected by linux bridge."""
if not interface_id:
LOG.warning(_LW("Invalid Interface ID, will lead to incorrect "
"tap device name"))
tap_device_name = (n_const.TAP_DEVICE_PREFIX +
interface_id[:constants.RESOURCE_ID_LENGTH])
return tap_device_name

View File

@ -51,6 +51,8 @@ from neutron.plugins.ml2.drivers.linuxbridge.agent import arp_protect
from neutron.plugins.ml2.drivers.linuxbridge.agent.common import config # noqa
from neutron.plugins.ml2.drivers.linuxbridge.agent.common \
import constants as lconst
from neutron.plugins.ml2.drivers.linuxbridge.agent.common \
import utils as lb_utils
LOG = logging.getLogger(__name__)
@ -173,12 +175,7 @@ class LinuxBridgeManager(amb.CommonAgentManagerBase):
@staticmethod
def get_tap_device_name(interface_id):
if not interface_id:
LOG.warning(_LW("Invalid Interface ID, will lead to incorrect "
"tap device name"))
tap_device_name = constants.TAP_DEVICE_PREFIX + \
interface_id[:lconst.RESOURCE_ID_LENGTH]
return tap_device_name
return lb_utils.get_tap_device_name(interface_id)
def get_vxlan_device_name(self, segmentation_id):
if 0 <= int(segmentation_id) <= p_const.MAX_VXLAN_VNI: