Add qos-pps-minimum-rule-alias api-def and api-ref

Introduce a new API extension definition to enable GET, PUT
and DELETE operations on QoS minimum packet rate rule without
specifying policy ID.

Partial-Bug: #1922237
See-Also: https://review.opendev.org/78523
Change-Id: I1a708cf2935cb10a09c9088abc94bab1a2248157
This commit is contained in:
Przemyslaw Szczerbik 2021-10-22 12:34:20 +02:00
parent f81ee6f64b
commit 44de25534d
6 changed files with 132 additions and 0 deletions

View File

@ -1476,3 +1476,38 @@ Delete minimum bandwidth rule alias
Please refer to
`Delete minimum bandwidth rule <#delete-minimum-bandwidth-rule>`__
for more information on the request, response and return codes.
======================================================
Quality of Service minimum packet rate rule alias API
======================================================
This API extension enables callers to execute the requests to delete, show and
update QoS minimum packet rate rule without specifying the corresponding
policy ID.
Show minimum packet rate rule details alias
===========================================
.. rest_method:: GET /v2.0/qos/alias_minimum_packet_rate_rules/{rule_id}
Please refer to
`Show minimum packet rate rule details <#show-minimum-packet-rate-rule-details>`__
for more information on the request, response and return codes.
Update minimum packet rate rule alias
=====================================
.. rest_method:: PUT /v2.0/qos/alias_minimum_packet_rate_rules/{rule_id}
Please refer to
`Update minimum packet rate rule <#update-minimum-packet-rate-rule>`__
for more information on the request, response and return codes.
Delete minimum packet rate rule alias
=====================================
.. rest_method:: DELETE /v2.0/qos/alias_minimum_packet_rate_rules/{rule_id}
Please refer to
`Delete minimum packet rate rule <#delete-minimum-packet-rate-rule>`__
for more information on the request, response and return codes.

View File

@ -102,6 +102,7 @@ from neutron_lib.api.definitions import qos_default
from neutron_lib.api.definitions import qos_gateway_ip
from neutron_lib.api.definitions import qos_port_network_policy
from neutron_lib.api.definitions import qos_pps_minimum_rule
from neutron_lib.api.definitions import qos_pps_minimum_rule_alias
from neutron_lib.api.definitions import qos_pps_rule
from neutron_lib.api.definitions import qos_rule_type_details
from neutron_lib.api.definitions import qos_rules_alias
@ -239,6 +240,7 @@ _ALL_API_DEFINITIONS = {
qos_gateway_ip,
qos_port_network_policy,
qos_pps_minimum_rule,
qos_pps_minimum_rule_alias,
qos_pps_rule,
qos_rule_type_details,
qos_rules_alias,

View File

@ -143,6 +143,8 @@ KNOWN_EXTENSIONS = (
'qos-bw-limit-direction',
'qos-gateway-ip',
'qos-port-network-policy',
'qos-pps-minimum',
'qos-pps-minimum-rule-alias',
'qos-rules-alias',
'quotas',
'quota-check-limit',

View File

@ -0,0 +1,63 @@
# Copyright (c) 2021 Ericsson Software Technology
#
# 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
from neutron_lib.api.definitions import qos_pps_minimum_rule
from neutron_lib import constants
from neutron_lib.db import constants as db_const
from neutron_lib.services.qos import constants as qos_constants
MIN_PACKET_RATE_RULES_ALIAS = 'alias_minimum_packet_rate_rules'
ALIAS = 'qos-pps-minimum-rule-alias'
IS_SHIM_EXTENSION = False
IS_STANDARD_ATTR_EXTENSION = False
NAME = 'QoS minimum packet rate rule alias'
API_PREFIX = '/' + qos.ALIAS
DESCRIPTION = ('API to enable GET, PUT and DELETE operations on QoS minimum '
'packet rate rule without specifying policy ID')
UPDATED_TIMESTAMP = '2021-10-22T10:00:00-00:00'
RESOURCE_ATTRIBUTE_MAP = {
MIN_PACKET_RATE_RULES_ALIAS: {
**qos._QOS_RULE_COMMON_FIELDS,
qos_constants.MIN_KPPS: {
'allow_post': False,
'allow_put': True,
'convert_to': converters.convert_to_int,
'is_visible': True,
'is_filter': True,
'is_sort_key': True,
'validate': {
'type:range': [0, db_const.DB_INTEGER_MAX_VALUE]}
},
qos_constants.DIRECTION: {
'allow_post': False,
'allow_put': True,
'is_visible': True,
'default': constants.EGRESS_DIRECTION,
'is_filter': True,
'is_sort_key': True,
'validate': {
'type:values': constants.VALID_DIRECTIONS_AND_ANY,
}
}
}
}
SUB_RESOURCE_ATTRIBUTE_MAP = {}
ACTION_MAP = {}
REQUIRED_EXTENSIONS = [qos.ALIAS, qos_pps_minimum_rule.ALIAS]
OPTIONAL_EXTENSIONS = []
ACTION_STATUS = {}

View File

@ -0,0 +1,24 @@
# Copyright (c) 2021 Ericsson Software Technology
#
# 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_pps_minimum_rule_alias as apidef
from neutron_lib.services.qos import constants as qos_constants
from neutron_lib.tests.unit.api.definitions import base
class QoSPPSMinimumRuleAliasDefinitionTestCase(base.DefinitionBaseTestCase):
extension_module = apidef
extension_resources = (apidef.MIN_PACKET_RATE_RULES_ALIAS,)
extension_attributes = (qos_constants.MIN_KPPS, qos_constants.DIRECTION)

View File

@ -0,0 +1,6 @@
---
features:
- |
Added API definition for ``qos-pps-minimum-rule-alias`` extension that
enables GET, PUT and DELETE operations to be performed on QoS minimum
packet rate rule without specifying policy ID.