diff --git a/api-ref/source/v2/index.rst b/api-ref/source/v2/index.rst index a85db19c3..7373ac64c 100644 --- a/api-ref/source/v2/index.rst +++ b/api-ref/source/v2/index.rst @@ -94,10 +94,6 @@ BGP/MPLS VPN Interconnection Logging ####### .. include:: logging.inc -############################### -Neutron-Neutron Interconnection -############################### -.. include:: interconnection.inc ################# Networking Agents ################# diff --git a/api-ref/source/v2/interconnection.inc b/api-ref/source/v2/interconnection.inc deleted file mode 100644 index 3500e2ef5..000000000 --- a/api-ref/source/v2/interconnection.inc +++ /dev/null @@ -1,237 +0,0 @@ -.. -*- rst -*- - -=============================== -Neutron-Neutron Interconnection -=============================== - -Introduces a new ``interconnection`` resource. - -When an interconnection is created by a tenant, parameters specific to the -interconnection mechanism (``local_parameters`` and ``remote_parameters``) are -only visible by the admin or users with specific role (default role: -``neutron_interconnection_peer``). - -Creates, modifies, and deletes Neutron-Neutron interconnections. - -List interconnections -===================== - -.. rest_method:: GET /v2.0/interconnection/interconnections - -Lists all interconnections belonging to the project. - -Use the ``fields`` query parameter to control which fields are -returned in the response body. Additionally, you can filter results -by using query string parameters. For information, see `Filtering -and Column Selection `__. - -Normal response codes: 200 - -Error response codes: 400, 401, 403 - -Request -------- - -.. rest_parameters:: parameters.yaml - - - fields: fields - -Response Parameters -------------------- - -.. rest_parameters:: parameters.yaml - - - interconnections: interconnections - - project_id: project_id - - id: interconnection-id-body - - name: interconnection-name-required - - type: interconnection-type-required - - state: interconnection-state - - local_resource_id: interconnection-local_resource_id - - remote_resource_id: interconnection-remote_resource_id - - remote_keystone: interconnection-remote_keystone - - remote_region: interconnection-remote_region - - remote_interconnection_id: interconnection-remote_interconnection_id - - local_parameters: interconnection-local_parameters - - remote_parameters: interconnection-remote_parameters - -Response Example ----------------- - -.. literalinclude:: samples/interconnection/interconnections-list-response.json - :language: javascript - -Create interconnection -====================== - -.. rest_method:: POST /v2.0/interconnection/interconnections - -Creates an interconnection. - -Normal response codes: 201 - -Error response codes: 400, 401, 403 - -Request -------- - -.. rest_parameters:: parameters.yaml - - - interconnection: interconnection - - project_id: project_id-request - - name: interconnection-name - - type: interconnection-type - - local_resource_id: interconnection-local_resource_id - - remote_resource_id: interconnection-remote_resource_id - - remote_keystone: interconnection-remote_keystone - - remote_region: interconnection-remote_region - -Request Example ---------------- - -.. literalinclude:: samples/interconnection/interconnection-create-request.json - :language: javascript - -Response Parameters -------------------- - -.. rest_parameters:: parameters.yaml - - - interconnection: interconnection - - project_id: project_id - - id: interconnection-id-body - - name: interconnection-name-required - - type: interconnection-type-required - - state: interconnection-state - - local_resource_id: interconnection-local_resource_id - - remote_resource_id: interconnection-remote_resource_id - - remote_keystone: interconnection-remote_keystone - - remote_region: interconnection-remote_region - - remote_interconnection_id: interconnection-remote_interconnection_id - - local_parameters: interconnection-local_parameters - - remote_parameters: interconnection-remote_parameters - -Response Example ----------------- - -.. literalinclude:: samples/interconnection/interconnection-create-response.json - :language: javascript - -Show interconnection details -============================ - -.. rest_method:: GET /v2.0/interconnection/interconnections/{interconnection_id} - -Shows an interconnection details. - -Normal response codes: 200 - -Error response codes: 401, 403, 404 - -Request -------- - -.. rest_parameters:: parameters.yaml - - - interconnection_id: interconnection-id-path - -Response Parameters -------------------- - -.. rest_parameters:: parameters.yaml - - - interconnection: interconnection - - project_id: project_id - - id: interconnection-id-body - - name: interconnection-name-required - - type: interconnection-type-required - - state: interconnection-state - - local_resource_id: interconnection-local_resource_id - - remote_resource_id: interconnection-remote_resource_id - - remote_keystone: interconnection-remote_keystone - - remote_region: interconnection-remote_region - - remote_interconnection_id: interconnection-remote_interconnection_id - - local_parameters: interconnection-local_parameters - - remote_parameters: interconnection-remote_parameters - -Response Example ----------------- - -.. literalinclude:: samples/interconnection/interconnection-show-response.json - :language: javascript - -Update an interconnection -========================= - -.. rest_method:: PUT /v2.0/interconnection/interconnections/{interconnection_id} - -Updates an interconnection. - -Normal response codes: 201 - -Error response codes: 400, 401, 403, 404 - -Request -------- -A user can only update the name parameter. - -.. rest_parameters:: parameters.yaml - - - interconnection_id: interconnection-id-path - - interconnection: interconnection - - name: interconnection-name - -Request Example ---------------- - -.. literalinclude:: samples/interconnection/interconnection-update-request.json - :language: javascript - -Response Parameters -------------------- - -.. rest_parameters:: parameters.yaml - - - interconnection: interconnection - - project_id: project_id - - id: interconnection-id-body - - name: interconnection-name-required - - type: interconnection-type-required - - state: interconnection-state - - local_resource_id: interconnection-local_resource_id - - remote_resource_id: interconnection-remote_resource_id - - remote_keystone: interconnection-remote_keystone - - remote_region: interconnection-remote_region - - remote_interconnection_id: interconnection-remote_interconnection_id - - local_parameters: interconnection-local_parameters - - remote_parameters: interconnection-remote_parameters - -Response Example ----------------- - -.. literalinclude:: samples/interconnection/interconnection-update-response.json - :language: javascript - -Delete interconnection -====================== - -.. rest_method:: DELETE /v2.0/interconnection/interconnections/{interconnection_id} - -Deletes an interconnection. - -Normal response codes: 204 - -Error response codes: 401, 403, 404 - -Request -------- - -.. rest_parameters:: parameters.yaml - - - interconnection_id: interconnection-id-path - -Response --------- - -There is no body content for the response of a successful DELETE request. diff --git a/api-ref/source/v2/parameters.yaml b/api-ref/source/v2/parameters.yaml index 82f4effff..e7e866c02 100644 --- a/api-ref/source/v2/parameters.yaml +++ b/api-ref/source/v2/parameters.yaml @@ -133,12 +133,6 @@ ikepolicy_id-path: in: path required: true type: string -interconnection-id-path: - description: | - The ID of the interconnection. - in: path - required: true - type: string ipsecpolicy_id-path: description: | The ID of the IPsec policy. @@ -3383,104 +3377,6 @@ insert_before: in: body required: false type: string -interconnection: - description: | - An ``interconnection`` object. - in: body - required: true - type: object -interconnection-id-body: - description: | - The ID of the ``interconnection``. - in: body - required: true - type: string -interconnection-local_parameters: - description: | - Parameters specific to local interconnection mechanism, represented by a - dict with a type (``bgpvpn``, ``vxlan``, etc...) key and corresponding - identifier (BGPVPN RT, VNI, etc...) value. - in: body - required: false - type: dict -interconnection-local_resource_id: - description: | - The ID of the local Neutron resource (network or router) to interconnect - with remote Neutron resource. - in: body - required: true - type: string -interconnection-name: - description: | - Name of the ``interconnection``. - in: body - required: false - type: string -interconnection-name-required: - description: | - Name of the ``interconnection``. - in: body - required: true - type: string -interconnection-remote_interconnection_id: - description: | - ID of the symmetric ``interconnection`` exchanged with remote Neutron. - in: body - required: true - type: string -interconnection-remote_keystone: - description: | - ``auth_url`` of the remote Keystone service. - in: body - required: false - type: string -interconnection-remote_parameters: - description: | - Parameters specific to remote interconnection mechanism exchanged with - remote Neutron, represented by a dict with a type (``bgpvpn``, ``vxlan``, - etc...) key and corresponding identifier (BGPVPN RT, VNI, etc...) value. - in: body - required: false - type: dict -interconnection-remote_region: - description: | - Remote region name. - in: body - required: false - type: string -interconnection-remote_resource_id: - description: | - The ID of the remote Neutron resource (network or router) to interconnect - with local Neutron resource. - in: body - required: true - type: string -interconnection-state: - description: | - Indicates the state of the ``interconnection``. - in: body - required: true - type: string -interconnection-type: - description: | - Selection of the type of interconnection. Allowed values are ``network_l2``, - ``network_l3`` or ``router``. Default is ``network_l3``. - in: body - required: false - type: string -interconnection-type-required: - description: | - Selection of the type of interconnection. Allowed values are ``network_l2``, - ``network_l3`` or ``router``. Default is ``network_l3``. - in: body - required: true - type: string -interconnections: - description: | - A list of ``interconnection`` objects. - in: body - required: true - type: array interfaces: description: | Router interfaces diff --git a/api-ref/source/v2/samples/interconnection/interconnection-create-request.json b/api-ref/source/v2/samples/interconnection/interconnection-create-request.json deleted file mode 100644 index 09be948be..000000000 --- a/api-ref/source/v2/samples/interconnection/interconnection-create-request.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "interconnection": { - "project_id": "5455570dafa34c32abb69c70005a57de", - "name": "interconnection1", - "type": "network_l3", - "local_resource_id": "5d6820bf-a528-4e0c-85df-c2e771368d55", - "remote_resource_id": "a02d408d-7493-4291-b7bc-56894d063693", - "remote_keystone": "http://10.0.0.100/identity", - "remote_region": "RegionOne" - } -} diff --git a/api-ref/source/v2/samples/interconnection/interconnection-create-response.json b/api-ref/source/v2/samples/interconnection/interconnection-create-response.json deleted file mode 100644 index 2d30b6ead..000000000 --- a/api-ref/source/v2/samples/interconnection/interconnection-create-response.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "interconnection": { - "id": "1bdffef1-fc49-4299-b9b5-005a2861e716", - "project_id": "5455570dafa34c32abb69c70005a57de", - "name": "interconnection1", - "type": "network_l3", - "state": "TO_VALIDATE", - "local_resource_id": "5d6820bf-a528-4e0c-85df-c2e771368d55", - "remote_resource_id": "a02d408d-7493-4291-b7bc-56894d063693", - "remote_keystone": "http://10.0.0.100/identity", - "remote_region": "RegionOne", - "remote_interconnection_id": null - } -} diff --git a/api-ref/source/v2/samples/interconnection/interconnection-show-response.json b/api-ref/source/v2/samples/interconnection/interconnection-show-response.json deleted file mode 100644 index 85874f767..000000000 --- a/api-ref/source/v2/samples/interconnection/interconnection-show-response.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "interconnection": { - "id": "1bdffef1-fc49-4299-b9b5-005a2861e716", - "project_id": "5455570dafa34c32abb69c70005a57de", - "name": "interconnection1", - "type": "router", - "state": "ACTIVE", - "local_resource_id": "5d6820bf-a528-4e0c-85df-c2e771368d55", - "remote_resource_id": "a02d408d-7493-4291-b7bc-56894d063693", - "remote_keystone": "http://10.0.0.100/identity", - "remote_region": "RegionOne", - "remote_interconnection_id": "5f063750-ad6d-4bbe-8b82-aeb49d48ce2d", - "local_parameters": {"bgpvpn": "64512:10"}, - "remote_parameters": {"bgpvpn": "64512:20"} - } -} diff --git a/api-ref/source/v2/samples/interconnection/interconnection-update-request.json b/api-ref/source/v2/samples/interconnection/interconnection-update-request.json deleted file mode 100644 index 04ed9e1b5..000000000 --- a/api-ref/source/v2/samples/interconnection/interconnection-update-request.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "interconnection": { - "name": "foo" - } -} diff --git a/api-ref/source/v2/samples/interconnection/interconnection-update-response.json b/api-ref/source/v2/samples/interconnection/interconnection-update-response.json deleted file mode 100644 index 9dfffbf8d..000000000 --- a/api-ref/source/v2/samples/interconnection/interconnection-update-response.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "interconnection": { - "id": "1bdffef1-fc49-4299-b9b5-005a2861e716", - "project_id": "5455570dafa34c32abb69c70005a57de", - "name": "foo", - "type": "network_l2", - "state": "VALIDATED", - "local_resource_id": "5d6820bf-a528-4e0c-85df-c2e771368d55", - "remote_resource_id": "a02d408d-7493-4291-b7bc-56894d063693", - "remote_keystone": "http://10.0.0.100/identity", - "remote_region": "RegionOne", - "remote_interconnection_id": "5f063750-ad6d-4bbe-8b82-aeb49d48ce2d", - "local_parameters": {"bgpvpn": "64512:10"}, - "remote_parameters": {} - } -} diff --git a/api-ref/source/v2/samples/interconnection/interconnections-list-response.json b/api-ref/source/v2/samples/interconnection/interconnections-list-response.json deleted file mode 100644 index efd1e62ba..000000000 --- a/api-ref/source/v2/samples/interconnection/interconnections-list-response.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "interconnections": [ - { - "id": "1bdffef1-fc49-4299-b9b5-005a2861e716", - "project_id": "5455570dafa34c32abb69c70005a57de", - "name": "interconnection1", - "type": "router", - "state": "ACTIVE", - "local_resource_id": "5d6820bf-a528-4e0c-85df-c2e771368d55", - "remote_resource_id": "a02d408d-7493-4291-b7bc-56894d063693", - "remote_keystone": "http://10.0.0.100/identity", - "remote_region": "RegionOne", - "remote_interconnection_id": "5f063750-ad6d-4bbe-8b82-aeb49d48ce2d", - "local_parameters": {"bgpvpn": "64512:10"}, - "remote_parameters": {"bgpvpn": "64512:20"} - } - ] -} diff --git a/neutron_lib/api/definitions/__init__.py b/neutron_lib/api/definitions/__init__.py index fa714c47a..04ba25666 100644 --- a/neutron_lib/api/definitions/__init__.py +++ b/neutron_lib/api/definitions/__init__.py @@ -46,7 +46,6 @@ from neutron_lib.api.definitions import floating_ip_port_forwarding from neutron_lib.api.definitions import floatingip_autodelete_internal from neutron_lib.api.definitions import floatingip_pools from neutron_lib.api.definitions import flowclassifier -from neutron_lib.api.definitions import interconnection from neutron_lib.api.definitions import ip_allocation from neutron_lib.api.definitions import ip_substring_port_filtering from neutron_lib.api.definitions import l2_adjacency @@ -150,7 +149,6 @@ _ALL_API_DEFINITIONS = { floating_ip_port_forwarding, floatingip_autodelete_internal, floatingip_pools, - interconnection, ip_allocation, ip_substring_port_filtering, l2_adjacency, diff --git a/neutron_lib/api/definitions/base.py b/neutron_lib/api/definitions/base.py index 5897a3c05..a4dd0aab5 100644 --- a/neutron_lib/api/definitions/base.py +++ b/neutron_lib/api/definitions/base.py @@ -168,9 +168,6 @@ KNOWN_EXTENSIONS = ( # https://opendev.org/openstack/networking-sfc: 'flow_classifier', 'sfc', - - # https://opendev.org/openstack/neutron-interconnection: - 'interconnection', ) KNOWN_KEYWORDS = ( diff --git a/neutron_lib/api/definitions/interconnection.py b/neutron_lib/api/definitions/interconnection.py deleted file mode 100644 index 08abc7359..000000000 --- a/neutron_lib/api/definitions/interconnection.py +++ /dev/null @@ -1,125 +0,0 @@ -# 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 l3 -from neutron_lib.db import constants as db_const - -# The alias of the extension. -ALIAS = 'interconnection' - -# Whether or not this extension is simply signaling behavior to the user -# or it actively modifies the attribute map. -IS_SHIM_EXTENSION = False - -# Whether the extension is marking the adoption of standardattr model for -# legacy resources, or introducing new standardattr attributes. False or -# None if the standardattr model is adopted since the introduction of -# resource extension. -# If this is True, the alias for the extension should be prefixed with -# 'standard-attr-'. -IS_STANDARD_ATTR_EXTENSION = False - -# The name of the extension. -NAME = 'Neutron-Neutron Interconnection' - -# The description of the extension. -DESCRIPTION = "Provides support for Neutron-Neutron Interconnections" - -# A timestamp of when the extension was introduced. -UPDATED_TIMESTAMP = "2019-01-14T16:30:00-00:00" - -API_PREFIX = 'interconnection' - -# The specific resources and/or attributes for the extension (optional). -RESOURCE_NAME = 'interconnection' -COLLECTION_NAME = 'interconnections' - -NETWORK_L2 = 'network_l2' -NETWORK_L3 = 'network_l3' -VALID_TYPES = [l3.ROUTER, NETWORK_L2, NETWORK_L3] - -# The resource attribute map for the extension. -RESOURCE_ATTRIBUTE_MAP = { - COLLECTION_NAME: { - 'id': {'allow_post': False, 'allow_put': False, - 'validate': {'type:uuid': None}, - 'is_filter': True, 'is_sort_key': True, - 'is_visible': True, - 'primary_key': True}, - 'project_id': {'allow_post': True, 'allow_put': False, - 'validate': { - 'type:string': db_const.PROJECT_ID_FIELD_SIZE}, - 'required_by_policy': True, - 'is_filter': True, 'is_sort_key': True, - 'is_visible': True}, - 'name': {'allow_post': True, 'allow_put': True, - 'default': '', - 'validate': {'type:string': db_const.NAME_FIELD_SIZE}, - 'is_filter': True, 'is_sort_key': True, - 'is_visible': True}, - 'type': {'allow_post': True, 'allow_put': False, - 'validate': {'type:values': VALID_TYPES}, - 'is_filter': True, 'is_sort_key': True, - 'is_visible': True}, - 'state': {'allow_post': False, 'allow_put': False, - 'is_filter': True, 'is_sort_key': True, - 'is_visible': True}, - 'local_resource_id': {'allow_post': True, 'allow_put': False, - 'validate': {'type:uuid': None}, - 'is_visible': True}, - 'remote_resource_id': {'allow_post': True, 'allow_put': False, - 'validate': {'type:uuid': None}, - 'is_visible': True}, - 'remote_keystone': {'allow_post': True, 'allow_put': False, - 'validate': {'type:string_or_none': None}, - 'is_visible': True}, - 'remote_region': {'allow_post': True, 'allow_put': False, - 'validate': {'type:string_or_none': None}, - 'is_visible': True}, - 'remote_interconnection_id': {'allow_post': False, 'allow_put': False, - 'validate': {'type:uuid_or_none': None}, - 'is_visible': True}, - 'local_parameters': {'allow_post': False, 'allow_put': False, - 'is_visible': True}, - 'remote_parameters': {'allow_post': False, 'allow_put': False, - 'is_visible': True} - }, -} - -# The subresource attribute map for the extension. It adds child resources -# to main extension's resource. The subresource map must have a parent and -# a parameters entry. If an extension does not need such a map, None can -# be specified (mandatory). -SUB_RESOURCE_ATTRIBUTE_MAP = None - -# The action map: it associates verbs with methods to be performed on -# the API resource. -ACTION_MAP = { - RESOURCE_NAME: { - 'refresh': 'PUT' - } -} - -# The action status. -ACTION_STATUS = { -} - -# The list of required extensions. -REQUIRED_EXTENSIONS = [ - l3.ALIAS -] - -# The list of optional extensions. -OPTIONAL_EXTENSIONS = [ -] diff --git a/neutron_lib/tests/unit/api/definitions/test_interconnection.py b/neutron_lib/tests/unit/api/definitions/test_interconnection.py deleted file mode 100644 index 7306c8656..000000000 --- a/neutron_lib/tests/unit/api/definitions/test_interconnection.py +++ /dev/null @@ -1,24 +0,0 @@ -# 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 interconnection -from neutron_lib.tests.unit.api.definitions import base - - -class InterconnectionDefinitionTestCase(base.DefinitionBaseTestCase): - extension_module = interconnection - extension_resources = (interconnection.COLLECTION_NAME,) - extension_attributes = ('type', 'state', - 'local_resource_id', 'remote_resource_id', - 'remote_keystone', 'remote_region', - 'remote_interconnection_id', 'local_parameters', - 'remote_parameters') diff --git a/releasenotes/notes/remove-neutron-interconnection-api-definition-4ff88c583f2fe47b.yaml b/releasenotes/notes/remove-neutron-interconnection-api-definition-4ff88c583f2fe47b.yaml new file mode 100644 index 000000000..d811116ec --- /dev/null +++ b/releasenotes/notes/remove-neutron-interconnection-api-definition-4ff88c583f2fe47b.yaml @@ -0,0 +1,8 @@ +--- +other: + - | + Removes the definition of ``interconnection`` API extension for + neutron-interconnection project. + Neutron-interconnection project was removed from Neutron stadium due to lack + of activity for long time so there is no need to keep the API definition + in the official Neutron's API definitions.