From dac97d1f2df502d04b2316a51a964cc9a8090f4e Mon Sep 17 00:00:00 2001 From: Slawek Kaplonski Date: Mon, 15 Jun 2020 22:50:43 +0200 Subject: [PATCH] Add new shim API extension for dns domain with keywords Change-Id: Ia659e7b20464da4b87cbc69681c7db54bccea41b Related-Bug: #1843218 --- neutron_lib/api/definitions/__init__.py | 2 + .../api/definitions/dns_domain_keywords.py | 68 +++++++++++++++++++ ...ywords-api-extension-436c2c3a091d15eb.yaml | 7 ++ 3 files changed, 77 insertions(+) create mode 100644 neutron_lib/api/definitions/dns_domain_keywords.py create mode 100644 releasenotes/notes/Add-new-dns_domain_keywords-api-extension-436c2c3a091d15eb.yaml diff --git a/neutron_lib/api/definitions/__init__.py b/neutron_lib/api/definitions/__init__.py index ff37b453c..94bf81d84 100644 --- a/neutron_lib/api/definitions/__init__.py +++ b/neutron_lib/api/definitions/__init__.py @@ -28,6 +28,7 @@ from neutron_lib.api.definitions import data_plane_status from neutron_lib.api.definitions import default_subnetpools from neutron_lib.api.definitions import dhcpagentscheduler from neutron_lib.api.definitions import dns +from neutron_lib.api.definitions import dns_domain_keywords from neutron_lib.api.definitions import dns_domain_ports from neutron_lib.api.definitions import dvr from neutron_lib.api.definitions import empty_string_filtering @@ -138,6 +139,7 @@ _ALL_API_DEFINITIONS = { default_subnetpools, dhcpagentscheduler, dns, + dns_domain_keywords, dns_domain_ports, dvr, empty_string_filtering, diff --git a/neutron_lib/api/definitions/dns_domain_keywords.py b/neutron_lib/api/definitions/dns_domain_keywords.py new file mode 100644 index 000000000..9ebc00835 --- /dev/null +++ b/neutron_lib/api/definitions/dns_domain_keywords.py @@ -0,0 +1,68 @@ +# 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 dns + +# The alias of the extension. +ALIAS = 'dns-integration-domain-keywords' + +# Whether or not this extension is simply signaling behavior to the user +# or it actively modifies the attribute map (mandatory). +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 (mandatory). +# 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 (mandatory). +NAME = 'DNS domain names with keywords allowed' + +# A prefix for API resources. An empty prefix means that the API is going +# to be exposed at the v2/ level as any other core resource (mandatory). +API_PREFIX = '' + +# The description of the extension (mandatory). +DESCRIPTION = ("Allows to use keywords like , , " + " and as DNS domain name") + +# A timestamp of when the extension was introduced (mandatory). +UPDATED_TIMESTAMP = "2020-06-15T18:00:00-00:00" + +# The resource attribute map for the extension. It is effectively the +# bulk of the API contract alongside ACTION_MAP (mandatory). +RESOURCE_ATTRIBUTE_MAP = {} + +# 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). For example: +SUB_RESOURCE_ATTRIBUTE_MAP = {} + +# The action map: it associates verbs with methods to be performed on +# the API resource (mandatory). +ACTION_MAP = {} + +# The action status: it associates response statuses with methods to be +# performed on the API resource (mandatory). +ACTION_STATUS = {} + +# The list of required extensions (mandatory). +REQUIRED_EXTENSIONS = [dns.ALIAS] + +# The list of optional extensions (mandatory). +OPTIONAL_EXTENSIONS = [] diff --git a/releasenotes/notes/Add-new-dns_domain_keywords-api-extension-436c2c3a091d15eb.yaml b/releasenotes/notes/Add-new-dns_domain_keywords-api-extension-436c2c3a091d15eb.yaml new file mode 100644 index 000000000..2bdb41b1b --- /dev/null +++ b/releasenotes/notes/Add-new-dns_domain_keywords-api-extension-436c2c3a091d15eb.yaml @@ -0,0 +1,7 @@ +--- +features: + - | + Add API extension ``dns-integration-domain-keywords``. This extension + indicates if the server supports usage of keywords like ``project_id``, + ``project_name``, ``user_id`` and ``user_name`` in the network's DNS + domain name.