From 06db34d9bdf5a915856b9abcdaf21bbdc3ceeae6 Mon Sep 17 00:00:00 2001 From: YAMAMOTO Takashi Date: Tue, 13 Dec 2016 10:45:55 +0900 Subject: [PATCH] Add router-interface-fip extension from networking-midonet This is a part of the stadium implosion effort. [1] References: http://docs.openstack.org/developer/networking-midonet/specs/mitaka/router-interface-fip.html [1] https://review.openstack.org/#/c/389397/ Closes-Bug: #1648517 Related-Bug: #1566191 (RFE bug) Change-Id: I8641f8d200fcecc9bc2cedb49321c14fa610be86 --- api-ref/source/v2/index.rst | 4 ++ api-ref/source/v2/router-interface-fip.inc | 14 +++++ .../api/definitions/router_interface_fip.py | 57 +++++++++++++++++++ .../definitions/test_router_interface_fip.py | 20 +++++++ ...router-interface-fip-1e79b7909f8b264f.yaml | 3 + 5 files changed, 98 insertions(+) create mode 100644 api-ref/source/v2/router-interface-fip.inc create mode 100644 neutron_lib/api/definitions/router_interface_fip.py create mode 100644 neutron_lib/tests/unit/api/definitions/test_router_interface_fip.py create mode 100644 releasenotes/notes/router-interface-fip-1e79b7909f8b264f.yaml diff --git a/api-ref/source/v2/index.rst b/api-ref/source/v2/index.rst index b9ca30364..5e12241dc 100644 --- a/api-ref/source/v2/index.rst +++ b/api-ref/source/v2/index.rst @@ -59,3 +59,7 @@ Logging Resource (networking-midonet) ##################################### .. include:: logging_resource.inc .. include:: firewall_log.inc +################################################# +Router interface floating IP (networking-midonet) +################################################# +.. include:: router-interface-fip.inc diff --git a/api-ref/source/v2/router-interface-fip.inc b/api-ref/source/v2/router-interface-fip.inc new file mode 100644 index 000000000..d58bdb43f --- /dev/null +++ b/api-ref/source/v2/router-interface-fip.inc @@ -0,0 +1,14 @@ +.. -*- rst -*- + +============================ +Router Interface floating IP +============================ + +.. note:: Currently this extension ``router-interface-fip`` is only available for networking-midonet. + +This extension ``router-interface-fip`` indicates the ability to +associate floating IPs to internal interfaces of a router. +(Without this extension, floating IPs can be associated only to +the gateway interface of a router.) + +This extension does not introduce any resources or attributes. diff --git a/neutron_lib/api/definitions/router_interface_fip.py b/neutron_lib/api/definitions/router_interface_fip.py new file mode 100644 index 000000000..dc72f44ab --- /dev/null +++ b/neutron_lib/api/definitions/router_interface_fip.py @@ -0,0 +1,57 @@ +# 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 + +# The alias of the extension. +ALIAS = 'router-interface-fip' + +# Whether or not this extension is simply signaling behavior to the user +# or it actively modifies the attribute map. +IS_SHIM_EXTENSION = True + +# 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 = 'Router interface FIP Extension' + +# The description of the extension. +DESCRIPTION = "Router interface FIP Extension" + +# A timestamp of when the extension was introduced. +UPDATED_TIMESTAMP = "2015-11-11T10:00:00-00:00" + +# The resource attribute map for the extension. It is effectively the +# bulk of the API contract alongside ACTION_MAP +RESOURCE_ATTRIBUTE_MAP = {} + +# The subresource attribute map for the extension. +SUB_RESOURCE_ATTRIBUTE_MAP = None + +# The action map. +ACTION_MAP = {} + +# 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_router_interface_fip.py b/neutron_lib/tests/unit/api/definitions/test_router_interface_fip.py new file mode 100644 index 000000000..a757173c5 --- /dev/null +++ b/neutron_lib/tests/unit/api/definitions/test_router_interface_fip.py @@ -0,0 +1,20 @@ +# 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 router_interface_fip +from neutron_lib.tests.unit.api.definitions import base + + +class RouterInterfaceFipDefinitionTestCase(base.DefinitionBaseTestCase): + extension_module = router_interface_fip + extension_resources = () + extension_attributes = () diff --git a/releasenotes/notes/router-interface-fip-1e79b7909f8b264f.yaml b/releasenotes/notes/router-interface-fip-1e79b7909f8b264f.yaml new file mode 100644 index 000000000..75986d9d0 --- /dev/null +++ b/releasenotes/notes/router-interface-fip-1e79b7909f8b264f.yaml @@ -0,0 +1,3 @@ +--- +features: + - API reference and definition for networking-midonet's ``router-interface-fip`` extension.