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_availability_zone
|
||||||
from neutron_lib.api.definitions import router_interface_fip
|
from neutron_lib.api.definitions import router_interface_fip
|
||||||
from neutron_lib.api.definitions import routerservicetype
|
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 servicetype
|
||||||
from neutron_lib.api.definitions import sorting
|
from neutron_lib.api.definitions import sorting
|
||||||
from neutron_lib.api.definitions import subnet
|
from neutron_lib.api.definitions import subnet
|
||||||
@@ -121,6 +122,7 @@ _ALL_API_DEFINITIONS = {
|
|||||||
router_availability_zone,
|
router_availability_zone,
|
||||||
router_interface_fip,
|
router_interface_fip,
|
||||||
routerservicetype,
|
routerservicetype,
|
||||||
|
segment,
|
||||||
servicetype,
|
servicetype,
|
||||||
sorting,
|
sorting,
|
||||||
subnet,
|
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