rehome segement api def
This patch rehomes the segment extension's API definition. A UT and release note are also included. Change-Id: I8b598c9aff2f0b28e5b11d3ab3570aeae2df1a4b
This commit is contained in:
@@ -60,6 +60,7 @@ from neutron_lib.api.definitions import qos_rule_type_details
|
||||
from neutron_lib.api.definitions import router_availability_zone
|
||||
from neutron_lib.api.definitions import router_interface_fip
|
||||
from neutron_lib.api.definitions import routerservicetype
|
||||
from neutron_lib.api.definitions import segment
|
||||
from neutron_lib.api.definitions import servicetype
|
||||
from neutron_lib.api.definitions import sorting
|
||||
from neutron_lib.api.definitions import subnet
|
||||
@@ -121,6 +122,7 @@ _ALL_API_DEFINITIONS = {
|
||||
router_availability_zone,
|
||||
router_interface_fip,
|
||||
routerservicetype,
|
||||
segment,
|
||||
servicetype,
|
||||
sorting,
|
||||
subnet,
|
||||
|
||||
123
neutron_lib/api/definitions/segment.py
Normal file
123
neutron_lib/api/definitions/segment.py
Normal file
@@ -0,0 +1,123 @@
|
||||
# Copyright (c) 2016 Hewlett Packard Enterprise Development Company, L.P.
|
||||
#
|
||||
# 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 provider_net
|
||||
from neutron_lib.api.definitions import subnet
|
||||
from neutron_lib import constants
|
||||
from neutron_lib.db import constants as db_constants
|
||||
|
||||
|
||||
SEGMENT_ID = 'segment_id'
|
||||
NETWORK_TYPE = 'network_type'
|
||||
PHYSICAL_NETWORK = 'physical_network'
|
||||
SEGMENTATION_ID = 'segmentation_id'
|
||||
NAME_LEN = db_constants.NAME_FIELD_SIZE
|
||||
DESC_LEN = db_constants.DESCRIPTION_FIELD_SIZE
|
||||
|
||||
ALIAS = 'segment'
|
||||
IS_SHIM_EXTENSION = False
|
||||
IS_STANDARD_ATTR_EXTENSION = False
|
||||
NAME = 'Segment'
|
||||
API_PREFIX = ''
|
||||
DESCRIPTION = 'Segments extension.'
|
||||
UPDATED_TIMESTAMP = '2016-02-24T17:00:00-00:00'
|
||||
RESOURCE_NAME = 'segment'
|
||||
COLLECTION_NAME = RESOURCE_NAME + 's'
|
||||
RESOURCE_ATTRIBUTE_MAP = {
|
||||
COLLECTION_NAME: {
|
||||
'id': {
|
||||
'allow_post': False,
|
||||
'allow_put': False,
|
||||
'validate': {
|
||||
'type:uuid': None
|
||||
},
|
||||
'is_visible': True,
|
||||
'primary_key': True
|
||||
},
|
||||
'tenant_id': {
|
||||
'allow_post': True,
|
||||
'allow_put': False,
|
||||
'validate': {
|
||||
'type:string': db_constants.PROJECT_ID_FIELD_SIZE
|
||||
},
|
||||
'is_visible': False},
|
||||
'network_id': {
|
||||
'allow_post': True,
|
||||
'allow_put': False,
|
||||
'validate': {
|
||||
'type:uuid': None
|
||||
},
|
||||
'is_visible': True
|
||||
},
|
||||
PHYSICAL_NETWORK: {
|
||||
'allow_post': True,
|
||||
'allow_put': False,
|
||||
'default': constants.ATTR_NOT_SPECIFIED,
|
||||
'validate': {
|
||||
'type:string': provider_net.PHYSICAL_NETWORK_MAX_LEN
|
||||
},
|
||||
'is_visible': True
|
||||
},
|
||||
NETWORK_TYPE: {
|
||||
'allow_post': True,
|
||||
'allow_put': False,
|
||||
'validate': {
|
||||
'type:string': provider_net.NETWORK_TYPE_MAX_LEN
|
||||
},
|
||||
'is_visible': True
|
||||
},
|
||||
SEGMENTATION_ID: {
|
||||
'allow_post': True,
|
||||
'allow_put': False,
|
||||
'default': constants.ATTR_NOT_SPECIFIED,
|
||||
'convert_to': converters.convert_to_int,
|
||||
'is_visible': True
|
||||
},
|
||||
'name': {
|
||||
'allow_post': True,
|
||||
'allow_put': True,
|
||||
'default': constants.ATTR_NOT_SPECIFIED,
|
||||
'validate': {
|
||||
'type:string_or_none': NAME_LEN
|
||||
},
|
||||
'is_visible': True
|
||||
},
|
||||
'description': {
|
||||
'allow_post': True,
|
||||
'allow_put': True,
|
||||
'default': constants.ATTR_NOT_SPECIFIED,
|
||||
'validate': {
|
||||
'type:string_or_none': DESC_LEN
|
||||
},
|
||||
'is_visible': True
|
||||
}
|
||||
},
|
||||
subnet.COLLECTION_NAME: {
|
||||
SEGMENT_ID: {
|
||||
'allow_post': True,
|
||||
'allow_put': False,
|
||||
'default': None,
|
||||
'validate': {
|
||||
'type:uuid_or_none': None
|
||||
},
|
||||
'is_visible': True
|
||||
}
|
||||
}
|
||||
}
|
||||
SUB_RESOURCE_ATTRIBUTE_MAP = {}
|
||||
ACTION_MAP = {}
|
||||
REQUIRED_EXTENSIONS = []
|
||||
OPTIONAL_EXTENSIONS = []
|
||||
ACTION_STATUS = {}
|
||||
22
neutron_lib/tests/unit/api/definitions/test_segment.py
Normal file
22
neutron_lib/tests/unit/api/definitions/test_segment.py
Normal file
@@ -0,0 +1,22 @@
|
||||
# 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 segment
|
||||
from neutron_lib.tests.unit.api.definitions import base
|
||||
|
||||
|
||||
class SegmentDefinitionTestCase(base.DefinitionBaseTestCase):
|
||||
extension_module = segment
|
||||
extension_resources = (segment.COLLECTION_NAME,)
|
||||
extension_attributes = ('network_id', segment.PHYSICAL_NETWORK,
|
||||
segment.NETWORK_TYPE, segment.SEGMENTATION_ID,
|
||||
segment.SEGMENT_ID,)
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
features:
|
||||
- The ``segment`` extension's API definition is now available in
|
||||
``neutron_lib.api.definitions.segment``.
|
||||
Reference in New Issue
Block a user