From 9975850aa310af05cbf9105fccf7bc041fd2592d Mon Sep 17 00:00:00 2001 From: Boden R Date: Wed, 22 Nov 2017 12:56:00 -0700 Subject: [PATCH] rehome the qos default api def This patch rehomes the qos-default extension's API definition into neutron-lib. UT and release note also included. Change-Id: If59765fe1f293d4ca6f80f62b22a420a388dfb68 --- neutron_lib/api/definitions/__init__.py | 2 + neutron_lib/api/definitions/qos_default.py | 41 +++++++++++++++++++ .../unit/api/definitions/test_qos_default.py | 21 ++++++++++ ...rehome-qosdft-apidef-b70596ca11c08803.yaml | 4 ++ 4 files changed, 68 insertions(+) create mode 100644 neutron_lib/api/definitions/qos_default.py create mode 100644 neutron_lib/tests/unit/api/definitions/test_qos_default.py create mode 100644 releasenotes/notes/rehome-qosdft-apidef-b70596ca11c08803.yaml diff --git a/neutron_lib/api/definitions/__init__.py b/neutron_lib/api/definitions/__init__.py index 7cc26d195..e15836a43 100644 --- a/neutron_lib/api/definitions/__init__.py +++ b/neutron_lib/api/definitions/__init__.py @@ -54,6 +54,7 @@ from neutron_lib.api.definitions import portbindings_extended from neutron_lib.api.definitions import project_id from neutron_lib.api.definitions import provider_net from neutron_lib.api.definitions import qos +from neutron_lib.api.definitions import qos_default from neutron_lib.api.definitions import router_availability_zone from neutron_lib.api.definitions import router_interface_fip from neutron_lib.api.definitions import subnet @@ -108,6 +109,7 @@ _ALL_API_DEFINITIONS = { project_id, provider_net, qos, + qos_default, router_availability_zone, router_interface_fip, subnet, diff --git a/neutron_lib/api/definitions/qos_default.py b/neutron_lib/api/definitions/qos_default.py new file mode 100644 index 000000000..d71a7353a --- /dev/null +++ b/neutron_lib/api/definitions/qos_default.py @@ -0,0 +1,41 @@ +# Copyright (c) 2017 Intel Corporation. +# 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 qos as qos_apidef + +ALIAS = 'qos-default' +IS_SHIM_EXTENSION = False +IS_STANDARD_ATTR_EXTENSION = False +NAME = 'QoS default policy' +API_PREFIX = '' +DESCRIPTION = 'Expose the QoS default policy per project' +UPDATED_TIMESTAMP = '2017-041-06T10:00:00-00:00' +RESOURCE_ATTRIBUTE_MAP = { + qos_apidef.POLICIES: { + 'is_default': { + 'allow_post': True, + 'allow_put': True, + 'default': False, + 'convert_to': converters.convert_to_boolean, + 'is_visible': True + } + } +} +SUB_RESOURCE_ATTRIBUTE_MAP = {} +ACTION_MAP = {} +REQUIRED_EXTENSIONS = [qos_apidef.ALIAS] +OPTIONAL_EXTENSIONS = [] +ACTION_STATUS = {} diff --git a/neutron_lib/tests/unit/api/definitions/test_qos_default.py b/neutron_lib/tests/unit/api/definitions/test_qos_default.py new file mode 100644 index 000000000..3d275ae0e --- /dev/null +++ b/neutron_lib/tests/unit/api/definitions/test_qos_default.py @@ -0,0 +1,21 @@ +# 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 qos_default +from neutron_lib.tests.unit.api.definitions import base +from neutron_lib.tests.unit.api.definitions import test_qos + + +class QoSDefaultTestCase(base.DefinitionBaseTestCase): + extension_module = qos_default + extension_resources = test_qos.QoSDefinitionTestCase.extension_resources + extension_attributes = () diff --git a/releasenotes/notes/rehome-qosdft-apidef-b70596ca11c08803.yaml b/releasenotes/notes/rehome-qosdft-apidef-b70596ca11c08803.yaml new file mode 100644 index 000000000..0c291bb87 --- /dev/null +++ b/releasenotes/notes/rehome-qosdft-apidef-b70596ca11c08803.yaml @@ -0,0 +1,4 @@ +--- +features: + - The ``qos-default`` extension's API definition is now available in + ``neutron_lib.api.definitions.qos_default``.