diff --git a/neutron_lib/api/definitions/__init__.py b/neutron_lib/api/definitions/__init__.py index 25802cf8c..6c534dc3c 100644 --- a/neutron_lib/api/definitions/__init__.py +++ b/neutron_lib/api/definitions/__init__.py @@ -11,6 +11,7 @@ # under the License. from neutron_lib.api.definitions import agent +from neutron_lib.api.definitions import auto_allocated_topology from neutron_lib.api.definitions import bgpvpn from neutron_lib.api.definitions import bgpvpn_routes_control from neutron_lib.api.definitions import data_plane_status @@ -39,6 +40,7 @@ from neutron_lib.api.definitions import trunk_details _ALL_API_DEFINITIONS = { agent, + auto_allocated_topology, bgpvpn, bgpvpn_routes_control, data_plane_status, diff --git a/neutron_lib/api/definitions/auto_allocated_topology.py b/neutron_lib/api/definitions/auto_allocated_topology.py new file mode 100644 index 000000000..f5b65cdb7 --- /dev/null +++ b/neutron_lib/api/definitions/auto_allocated_topology.py @@ -0,0 +1,55 @@ +# Copyright 2015-2016 Hewlett Packard Enterprise Development Company, LP +# +# 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 constants +from neutron_lib.api.definitions import l3 +from neutron_lib.api.definitions import network + +ALIAS = 'auto-allocated-topology' +LABEL = ALIAS +IS_SHIM_EXTENSION = False +IS_STANDARD_ATTR_EXTENSION = False +NAME = 'Auto Allocated Topology Services' +API_PREFIX = '' +DESCRIPTION = 'Auto Allocated Topology Services.' +UPDATED_TIMESTAMP = '2016-01-01T00:00:00-00:00' +RESOURCE_NAME = 'auto_allocated_topology' +COLLECTION_NAME = 'auto_allocated_topologies' +RESOURCE_ATTRIBUTE_MAP = { + COLLECTION_NAME: { + 'id': {'allow_post': False, 'allow_put': False, + 'validate': {'type:uuid': None}, + 'is_visible': True}, + 'tenant_id': {'allow_post': False, 'allow_put': False, + 'validate': {'type:uuid': None}, + 'is_visible': True}, + }, + network.COLLECTION_NAME: { + constants.IS_DEFAULT: { + 'allow_post': True, + 'allow_put': True, + 'default': False, + 'is_visible': True, + 'convert_to': converters.convert_to_boolean, + 'enforce_policy': True, + 'required_by_policy': True}}, +} +SUB_RESOURCE_ATTRIBUTE_MAP = {} +ACTION_MAP = {} +REQUIRED_EXTENSIONS = [l3.ALIAS, 'subnet_allocation', 'external-net'] +OPTIONAL_EXTENSIONS = [] +ACTION_STATUS = {} diff --git a/neutron_lib/api/definitions/constants.py b/neutron_lib/api/definitions/constants.py index 374771878..53258ece2 100644 --- a/neutron_lib/api/definitions/constants.py +++ b/neutron_lib/api/definitions/constants.py @@ -27,3 +27,6 @@ FW_VALID_ACTION_VALUES = [FWAAS_ALLOW, FWAAS_DENY, FWAAS_REJECT] # Firewall Protocol List FW_PROTOCOL_VALUES = list(constants.IPTABLES_PROTOCOL_MAP.keys()) + [None] + +# a default resource, such as auto allocated topology is_default network +IS_DEFAULT = 'is_default' diff --git a/neutron_lib/tests/unit/api/definitions/test_auto_allocated_topology.py b/neutron_lib/tests/unit/api/definitions/test_auto_allocated_topology.py new file mode 100644 index 000000000..de5c1c308 --- /dev/null +++ b/neutron_lib/tests/unit/api/definitions/test_auto_allocated_topology.py @@ -0,0 +1,22 @@ +# 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.definitions import auto_allocated_topology +from neutron_lib.tests.unit.api.definitions import base + + +class AutoTopologyDefinitionTestCase(base.DefinitionBaseTestCase): + extension_module = auto_allocated_topology + extension_resources = (auto_allocated_topology.COLLECTION_NAME,) + extension_attributes = () diff --git a/releasenotes/notes/rehome-autotopology-apidef-4a77e8ba0c783f7e.yaml b/releasenotes/notes/rehome-autotopology-apidef-4a77e8ba0c783f7e.yaml new file mode 100644 index 000000000..8c86c72d8 --- /dev/null +++ b/releasenotes/notes/rehome-autotopology-apidef-4a77e8ba0c783f7e.yaml @@ -0,0 +1,4 @@ +--- +features: + - The neutron ``auto-allocated-topology`` extension's API definition is now + available as ``neutron_lib.api.definitions.auto_allocated_topology``.