Merge "rehome vlantransparent api def"

This commit is contained in:
Zuul 2018-01-09 15:20:41 +00:00 committed by Gerrit Code Review
commit cd07c7bc09
5 changed files with 118 additions and 1 deletions

View File

@ -63,6 +63,7 @@ from neutron_lib.api.definitions import subnet_onboard
from neutron_lib.api.definitions import subnetpool
from neutron_lib.api.definitions import trunk
from neutron_lib.api.definitions import trunk_details
from neutron_lib.api.definitions import vlantransparent
_ALL_API_DEFINITIONS = {
@ -118,5 +119,6 @@ _ALL_API_DEFINITIONS = {
subnet_onboard,
subnetpool,
trunk,
trunk_details
trunk_details,
vlantransparent
}

View File

@ -0,0 +1,60 @@
# Copyright (c) 2015 Cisco Systems, Inc. All rights reserved.
#
# 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.api import converters
from neutron_lib.api.definitions import network
from neutron_lib.api import validators
from neutron_lib import constants
VLANTRANSPARENT = 'vlan_transparent'
def get_vlan_transparent(network):
"""Get the value of vlan_transparent from a network if set.
:param network: The network dict to retrieve the value of vlan_transparent
from.
:returns: The value of vlan_transparent from the network dict if set in
the dict, otherwise False is returned.
"""
return (network[VLANTRANSPARENT]
if (VLANTRANSPARENT in network and
validators.is_attr_set(network[VLANTRANSPARENT]))
else False)
ALIAS = 'vlan-transparent'
IS_SHIM_EXTENSION = False
IS_STANDARD_ATTR_EXTENSION = False
NAME = 'Vlantransparent'
API_PREFIX = ''
DESCRIPTION = 'Provides Vlan Transparent Networks'
UPDATED_TIMESTAMP = '2015-03-23T09:00:00-00:00'
RESOURCE_ATTRIBUTE_MAP = {
network.COLLECTION_NAME: {
VLANTRANSPARENT: {
'allow_post': True,
'allow_put': False,
'convert_to': converters.convert_to_boolean,
'default': constants.ATTR_NOT_SPECIFIED,
'is_visible': True
}
}
}
SUB_RESOURCE_ATTRIBUTE_MAP = {}
ACTION_MAP = {}
REQUIRED_EXTENSIONS = []
OPTIONAL_EXTENSIONS = []
ACTION_STATUS = {}

View File

@ -0,0 +1,21 @@
# Copyright (c) 2015 Cisco Systems, Inc. All rights reserved.
#
# 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._i18n import _
from neutron_lib import exceptions
class VlanTransparencyDriverError(exceptions.NeutronException):
"""Vlan Transparency not supported by all mechanism drivers."""
message = _("Backend does not support VLAN Transparency.")

View File

@ -0,0 +1,28 @@
# 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.api.definitions import vlantransparent
from neutron_lib.tests.unit.api.definitions import base
class VlantransparentDefinitionTestCase(base.DefinitionBaseTestCase):
extension_module = vlantransparent
extension_resources = ()
extension_attributes = (vlantransparent.VLANTRANSPARENT,)
def test_get_vlan_transparent(self):
self.assertTrue(vlantransparent.get_vlan_transparent(
{vlantransparent.VLANTRANSPARENT: True, 'vlan': '1'}))
def test_get_vlan_transparent_not_set(self):
self.assertFalse(vlantransparent.get_vlan_transparent(
{'vlanxtx': True, 'vlan': '1'}))

View File

@ -0,0 +1,6 @@
---
features:
- The ``vlan-transparent`` extension's API definition is now available in
``neutron_lib.api.definitions.vlantransparent``.
- The ``get_vlan_transparent`` function from the ``vlan-transparent``
extension is available in ``neutron_lib.api.definitions.vlantransparent``.