Add "qos_network_policy_id" field to "port" definition
DocImpact Change-Id: Ic1d555ef957124c866a2baf788564b3c200583eb Related-Bug: #1851362
This commit is contained in:
parent
d800a41f66
commit
c5cb36903f
@ -5054,6 +5054,12 @@ qos_minimum_bandwidth_rule-id:
|
|||||||
in: body
|
in: body
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
|
qos_network_policy_id-port-response:
|
||||||
|
description: |
|
||||||
|
The ID of the QoS policy of the network where this port is plugged.
|
||||||
|
in: body
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
qos_policy-name:
|
qos_policy-name:
|
||||||
description: |
|
description: |
|
||||||
Human-readable name of the resource.
|
Human-readable name of the resource.
|
||||||
|
@ -117,6 +117,13 @@ define QoS policies and associate these to the ports by introducing the
|
|||||||
``qos_policy_id`` attribute. The policies should be created before they are
|
``qos_policy_id`` attribute. The policies should be created before they are
|
||||||
associated to the ports.
|
associated to the ports.
|
||||||
|
|
||||||
|
QoS network policy
|
||||||
|
==================
|
||||||
|
|
||||||
|
The ``qos-port-network-policy`` extension adds the read only parameter
|
||||||
|
``qos_network_policy_id`` to the port responses. This parameter contains the
|
||||||
|
QoS policy ID of the network where this port is plugged.
|
||||||
|
|
||||||
Regenerate mac address extension
|
Regenerate mac address extension
|
||||||
================================
|
================================
|
||||||
|
|
||||||
@ -201,8 +208,9 @@ Response Parameters
|
|||||||
- network_id: network_id
|
- network_id: network_id
|
||||||
- port_security_enabled: port_security_enabled
|
- port_security_enabled: port_security_enabled
|
||||||
- project_id: project_id
|
- project_id: project_id
|
||||||
- revision_number: revision_number
|
- qos_network_policy_id: qos_network_policy_id-port-response
|
||||||
- qos_policy_id: qos_policy_id-port-response
|
- qos_policy_id: qos_policy_id-port-response
|
||||||
|
- revision_number: revision_number
|
||||||
- resource_request: port-resource
|
- resource_request: port-resource
|
||||||
- security_groups: port-security_groups
|
- security_groups: port-security_groups
|
||||||
- status: port-status
|
- status: port-status
|
||||||
@ -325,8 +333,9 @@ Response Parameters
|
|||||||
- network_id: network_id
|
- network_id: network_id
|
||||||
- port_security_enabled: port_security_enabled
|
- port_security_enabled: port_security_enabled
|
||||||
- project_id: project_id
|
- project_id: project_id
|
||||||
- revision_number: revision_number
|
- qos_network_policy_id: qos_network_policy_id-port-response
|
||||||
- qos_policy_id: qos_policy_id-port-response
|
- qos_policy_id: qos_policy_id-port-response
|
||||||
|
- revision_number: revision_number
|
||||||
- resource_request: port-resource
|
- resource_request: port-resource
|
||||||
- security_groups: port-security_groups
|
- security_groups: port-security_groups
|
||||||
- status: port-status
|
- status: port-status
|
||||||
@ -460,8 +469,9 @@ Response Parameters
|
|||||||
- network_id: network_id
|
- network_id: network_id
|
||||||
- port_security_enabled: port_security_enabled
|
- port_security_enabled: port_security_enabled
|
||||||
- project_id: project_id
|
- project_id: project_id
|
||||||
- revision_number: revision_number
|
- qos_network_policy_id: qos_network_policy_id-port-response
|
||||||
- qos_policy_id: qos_policy_id-port-response
|
- qos_policy_id: qos_policy_id-port-response
|
||||||
|
- revision_number: revision_number
|
||||||
- resource_request: port-resource
|
- resource_request: port-resource
|
||||||
- security_groups: port-security_groups
|
- security_groups: port-security_groups
|
||||||
- status: port-status
|
- status: port-status
|
||||||
@ -568,8 +578,9 @@ Response Parameters
|
|||||||
- network_id: network_id
|
- network_id: network_id
|
||||||
- port_security_enabled: port_security_enabled
|
- port_security_enabled: port_security_enabled
|
||||||
- project_id: project_id
|
- project_id: project_id
|
||||||
- revision_number: revision_number
|
- qos_network_policy_id: qos_network_policy_id-port-response
|
||||||
- qos_policy_id: qos_policy_id-port-response
|
- qos_policy_id: qos_policy_id-port-response
|
||||||
|
- revision_number: revision_number
|
||||||
- resource_request: port-resource
|
- resource_request: port-resource
|
||||||
- security_groups: port-security_groups
|
- security_groups: port-security_groups
|
||||||
- status: port-status
|
- status: port-status
|
||||||
@ -669,8 +680,9 @@ Response Parameters
|
|||||||
- network_id: network_id
|
- network_id: network_id
|
||||||
- port_security_enabled: port_security_enabled
|
- port_security_enabled: port_security_enabled
|
||||||
- project_id: project_id
|
- project_id: project_id
|
||||||
- revision_number: revision_number
|
- qos_network_policy_id: qos_network_policy_id-port-response
|
||||||
- qos_policy_id: qos_policy_id-port-response
|
- qos_policy_id: qos_policy_id-port-response
|
||||||
|
- revision_number: revision_number
|
||||||
- security_groups: port-security_groups
|
- security_groups: port-security_groups
|
||||||
- status: port-status
|
- status: port-status
|
||||||
- tags: tags
|
- tags: tags
|
||||||
|
@ -59,6 +59,7 @@
|
|||||||
"tags": ["tag1,tag2"],
|
"tags": ["tag1,tag2"],
|
||||||
"tenant_id": "d6700c0c9ffa4f1cb322cd4a1f3906fa",
|
"tenant_id": "d6700c0c9ffa4f1cb322cd4a1f3906fa",
|
||||||
"updated_at": "2016-03-08T20:19:41",
|
"updated_at": "2016-03-08T20:19:41",
|
||||||
|
"qos_network_policy_id": "174dd0c1-a4eb-49d4-a807-ae80246d82f4",
|
||||||
"qos_policy_id": "29d5e02e-d5ab-4929-bee4-4a9fc12e22ae",
|
"qos_policy_id": "29d5e02e-d5ab-4929-bee4-4a9fc12e22ae",
|
||||||
"port_security_enabled": true,
|
"port_security_enabled": true,
|
||||||
"resource_request": {
|
"resource_request": {
|
||||||
|
@ -49,6 +49,7 @@
|
|||||||
"tags": ["tag1,tag2"],
|
"tags": ["tag1,tag2"],
|
||||||
"tenant_id": "7e02058126cc4950b75f9970368ba177",
|
"tenant_id": "7e02058126cc4950b75f9970368ba177",
|
||||||
"updated_at": "2016-03-08T20:19:41",
|
"updated_at": "2016-03-08T20:19:41",
|
||||||
|
"qos_network_policy_id": "174dd0c1-a4eb-49d4-a807-ae80246d82f4",
|
||||||
"qos_policy_id": "29d5e02e-d5ab-4929-bee4-4a9fc12e22ae",
|
"qos_policy_id": "29d5e02e-d5ab-4929-bee4-4a9fc12e22ae",
|
||||||
"resource_request": {
|
"resource_request": {
|
||||||
"required": ["CUSTOM_PHYSNET_PUBLIC", "CUSTOM_VNIC_TYPE_NORMAL"],
|
"required": ["CUSTOM_PHYSNET_PUBLIC", "CUSTOM_VNIC_TYPE_NORMAL"],
|
||||||
|
@ -46,6 +46,7 @@
|
|||||||
"tags": ["tag1,tag2"],
|
"tags": ["tag1,tag2"],
|
||||||
"tenant_id": "522eda8d23124b25bf03fe44f1986b74",
|
"tenant_id": "522eda8d23124b25bf03fe44f1986b74",
|
||||||
"updated_at": "2016-03-08T20:19:41",
|
"updated_at": "2016-03-08T20:19:41",
|
||||||
|
"qos_network_policy_id": "174dd0c1-a4eb-49d4-a807-ae80246d82f4",
|
||||||
"qos_policy_id": "29d5e02e-d5ab-4929-bee4-4a9fc12e22ae",
|
"qos_policy_id": "29d5e02e-d5ab-4929-bee4-4a9fc12e22ae",
|
||||||
"port_security_enabled": false,
|
"port_security_enabled": false,
|
||||||
"resource_request": {
|
"resource_request": {
|
||||||
|
@ -47,6 +47,7 @@
|
|||||||
"tags": ["tag1,tag2"],
|
"tags": ["tag1,tag2"],
|
||||||
"tenant_id": "d6700c0c9ffa4f1cb322cd4a1f3906fa",
|
"tenant_id": "d6700c0c9ffa4f1cb322cd4a1f3906fa",
|
||||||
"updated_at": "2016-03-08T20:19:41",
|
"updated_at": "2016-03-08T20:19:41",
|
||||||
|
"qos_network_policy_id": "174dd0c1-a4eb-49d4-a807-ae80246d82f4",
|
||||||
"qos_policy_id": "29d5e02e-d5ab-4929-bee4-4a9fc12e22ae",
|
"qos_policy_id": "29d5e02e-d5ab-4929-bee4-4a9fc12e22ae",
|
||||||
"uplink_status_propagation": false
|
"uplink_status_propagation": false
|
||||||
}
|
}
|
||||||
|
@ -40,6 +40,7 @@
|
|||||||
"tags": ["tag1,tag2"],
|
"tags": ["tag1,tag2"],
|
||||||
"tenant_id": "7e02058126cc4950b75f9970368ba177",
|
"tenant_id": "7e02058126cc4950b75f9970368ba177",
|
||||||
"updated_at": "2016-03-08T20:19:41",
|
"updated_at": "2016-03-08T20:19:41",
|
||||||
|
"qos_network_policy_id": "174dd0c1-a4eb-49d4-a807-ae80246d82f4",
|
||||||
"qos_policy_id": "29d5e02e-d5ab-4929-bee4-4a9fc12e22ae",
|
"qos_policy_id": "29d5e02e-d5ab-4929-bee4-4a9fc12e22ae",
|
||||||
"uplink_status_propagation": false
|
"uplink_status_propagation": false
|
||||||
}
|
}
|
||||||
|
@ -46,6 +46,7 @@
|
|||||||
"tags": ["tag1,tag2"],
|
"tags": ["tag1,tag2"],
|
||||||
"tenant_id": "522eda8d23124b25bf03fe44f1986b74",
|
"tenant_id": "522eda8d23124b25bf03fe44f1986b74",
|
||||||
"updated_at": "2016-03-08T20:19:41",
|
"updated_at": "2016-03-08T20:19:41",
|
||||||
|
"qos_network_policy_id": "174dd0c1-a4eb-49d4-a807-ae80246d82f4",
|
||||||
"qos_policy_id": "29d5e02e-d5ab-4929-bee4-4a9fc12e22ae",
|
"qos_policy_id": "29d5e02e-d5ab-4929-bee4-4a9fc12e22ae",
|
||||||
"port_security_enabled": false,
|
"port_security_enabled": false,
|
||||||
"uplink_status_propagation": false
|
"uplink_status_propagation": false
|
||||||
|
@ -42,6 +42,7 @@
|
|||||||
"status": "ACTIVE",
|
"status": "ACTIVE",
|
||||||
"tenant_id": "",
|
"tenant_id": "",
|
||||||
"updated_at": "2016-03-08T20:19:41",
|
"updated_at": "2016-03-08T20:19:41",
|
||||||
|
"qos_network_policy_id": null,
|
||||||
"qos_policy_id": "29d5e02e-d5ab-4929-bee4-4a9fc12e22ae",
|
"qos_policy_id": "29d5e02e-d5ab-4929-bee4-4a9fc12e22ae",
|
||||||
"resource_request": {
|
"resource_request": {
|
||||||
"required": ["CUSTOM_PHYSNET_PUBLIC", "CUSTOM_VNIC_TYPE_NORMAL"],
|
"required": ["CUSTOM_PHYSNET_PUBLIC", "CUSTOM_VNIC_TYPE_NORMAL"],
|
||||||
@ -93,6 +94,7 @@
|
|||||||
"status": "ACTIVE",
|
"status": "ACTIVE",
|
||||||
"tenant_id": "d397de8a63f341818f198abb0966f6f3",
|
"tenant_id": "d397de8a63f341818f198abb0966f6f3",
|
||||||
"updated_at": "2016-03-08T20:19:41",
|
"updated_at": "2016-03-08T20:19:41",
|
||||||
|
"qos_network_policy_id": "174dd0c1-a4eb-49d4-a807-ae80246d82f4",
|
||||||
"qos_policy_id": null,
|
"qos_policy_id": null,
|
||||||
"tags": ["tag1,tag2"],
|
"tags": ["tag1,tag2"],
|
||||||
"tenant_id": "d397de8a63f341818f198abb0966f6f3",
|
"tenant_id": "d397de8a63f341818f198abb0966f6f3",
|
||||||
|
@ -37,6 +37,7 @@
|
|||||||
"tags": ["tag1,tag2"],
|
"tags": ["tag1,tag2"],
|
||||||
"tenant_id": "d6700c0c9ffa4f1cb322cd4a1f3906fa",
|
"tenant_id": "d6700c0c9ffa4f1cb322cd4a1f3906fa",
|
||||||
"updated_at": "2016-03-08T20:19:41",
|
"updated_at": "2016-03-08T20:19:41",
|
||||||
|
"qos_network_policy_id": null,
|
||||||
"qos_policy_id": "29d5e02e-d5ab-4929-bee4-4a9fc12e22ae",
|
"qos_policy_id": "29d5e02e-d5ab-4929-bee4-4a9fc12e22ae",
|
||||||
"port_security_enabled": false,
|
"port_security_enabled": false,
|
||||||
"uplink_status_propagation": false
|
"uplink_status_propagation": false
|
||||||
@ -79,6 +80,7 @@
|
|||||||
"tags": ["tag1,tag2"],
|
"tags": ["tag1,tag2"],
|
||||||
"tenant_id": "d6700c0c9ffa4f1cb322cd4a1f3906fa",
|
"tenant_id": "d6700c0c9ffa4f1cb322cd4a1f3906fa",
|
||||||
"updated_at": "2016-03-08T20:19:41",
|
"updated_at": "2016-03-08T20:19:41",
|
||||||
|
"qos_network_policy_id": "174dd0c1-a4eb-49d4-a807-ae80246d82f4",
|
||||||
"qos_policy_id": null,
|
"qos_policy_id": null,
|
||||||
"port_security_enabled": false,
|
"port_security_enabled": false,
|
||||||
"uplink_status_propagation": false
|
"uplink_status_propagation": false
|
||||||
|
@ -40,6 +40,7 @@
|
|||||||
"tags": ["tag1,tag2"],
|
"tags": ["tag1,tag2"],
|
||||||
"tenant_id": "",
|
"tenant_id": "",
|
||||||
"updated_at": "2016-03-08T20:19:41",
|
"updated_at": "2016-03-08T20:19:41",
|
||||||
|
"qos_network_policy_id": "174dd0c1-a4eb-49d4-a807-ae80246d82f4",
|
||||||
"qos_policy_id": "29d5e02e-d5ab-4929-bee4-4a9fc12e22ae",
|
"qos_policy_id": "29d5e02e-d5ab-4929-bee4-4a9fc12e22ae",
|
||||||
"port_security_enabled": false,
|
"port_security_enabled": false,
|
||||||
"uplink_status_propagation": false
|
"uplink_status_propagation": false
|
||||||
@ -84,6 +85,7 @@
|
|||||||
"tags": ["tag1,tag2"],
|
"tags": ["tag1,tag2"],
|
||||||
"tenant_id": "d397de8a63f341818f198abb0966f6f3",
|
"tenant_id": "d397de8a63f341818f198abb0966f6f3",
|
||||||
"updated_at": "2016-03-08T20:19:41",
|
"updated_at": "2016-03-08T20:19:41",
|
||||||
|
"qos_network_policy_id": null,
|
||||||
"qos_policy_id": null,
|
"qos_policy_id": null,
|
||||||
"port_security_enabled": false,
|
"port_security_enabled": false,
|
||||||
"uplink_status_propagation": false
|
"uplink_status_propagation": false
|
||||||
|
@ -83,6 +83,7 @@ from neutron_lib.api.definitions import qos_bw_limit_direction
|
|||||||
from neutron_lib.api.definitions import qos_bw_minimum_ingress
|
from neutron_lib.api.definitions import qos_bw_minimum_ingress
|
||||||
from neutron_lib.api.definitions import qos_default
|
from neutron_lib.api.definitions import qos_default
|
||||||
from neutron_lib.api.definitions import qos_gateway_ip
|
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_rule_type_details
|
from neutron_lib.api.definitions import qos_rule_type_details
|
||||||
from neutron_lib.api.definitions import qos_rules_alias
|
from neutron_lib.api.definitions import qos_rules_alias
|
||||||
from neutron_lib.api.definitions import rbac_security_groups
|
from neutron_lib.api.definitions import rbac_security_groups
|
||||||
@ -190,6 +191,7 @@ _ALL_API_DEFINITIONS = {
|
|||||||
qos_bw_minimum_ingress,
|
qos_bw_minimum_ingress,
|
||||||
qos_default,
|
qos_default,
|
||||||
qos_gateway_ip,
|
qos_gateway_ip,
|
||||||
|
qos_port_network_policy,
|
||||||
qos_rule_type_details,
|
qos_rule_type_details,
|
||||||
qos_rules_alias,
|
qos_rules_alias,
|
||||||
rbac_security_groups,
|
rbac_security_groups,
|
||||||
|
@ -124,6 +124,7 @@ KNOWN_EXTENSIONS = (
|
|||||||
'qos',
|
'qos',
|
||||||
'qos-bw-limit-direction',
|
'qos-bw-limit-direction',
|
||||||
'qos-gateway-ip',
|
'qos-gateway-ip',
|
||||||
|
'qos-port-network-policy',
|
||||||
'qos-rules-alias',
|
'qos-rules-alias',
|
||||||
'quotas',
|
'quotas',
|
||||||
'rbac-policies',
|
'rbac-policies',
|
||||||
|
41
neutron_lib/api/definitions/qos_port_network_policy.py
Normal file
41
neutron_lib/api/definitions/qos_port_network_policy.py
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
# Copyright (c) 2019 Red Hat Inc.
|
||||||
|
# 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 port as port_apidef
|
||||||
|
from neutron_lib.api.definitions import qos as qos_apidef
|
||||||
|
from neutron_lib.services.qos import constants as qos_const
|
||||||
|
|
||||||
|
ALIAS = 'qos-port-network-policy'
|
||||||
|
IS_SHIM_EXTENSION = False
|
||||||
|
IS_STANDARD_ATTR_EXTENSION = False
|
||||||
|
NAME = 'QoS port network policy ID'
|
||||||
|
DESCRIPTION = 'Adds a the QoS network ID to the port definition'
|
||||||
|
UPDATED_TIMESTAMP = '2019-11-01T10:00:00-00:00'
|
||||||
|
RESOURCE_ATTRIBUTE_MAP = {
|
||||||
|
port_apidef.COLLECTION_NAME: {
|
||||||
|
qos_const.QOS_POLICY_ID: {
|
||||||
|
'allow_post': False,
|
||||||
|
'allow_put': False,
|
||||||
|
'is_visible': True,
|
||||||
|
'default': None,
|
||||||
|
'validate': {'type:uuid_or_none': None}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SUB_RESOURCE_ATTRIBUTE_MAP = {}
|
||||||
|
ACTION_MAP = {}
|
||||||
|
REQUIRED_EXTENSIONS = [qos_apidef.ALIAS]
|
||||||
|
OPTIONAL_EXTENSIONS = []
|
||||||
|
ACTION_STATUS = {}
|
@ -29,6 +29,7 @@ DIRECTION = "direction"
|
|||||||
DSCP_MARK = "dscp_mark"
|
DSCP_MARK = "dscp_mark"
|
||||||
|
|
||||||
QOS_POLICY_ID = 'qos_policy_id'
|
QOS_POLICY_ID = 'qos_policy_id'
|
||||||
|
QOS_NETWORK_POLICY_ID = 'qos_network_policy_id'
|
||||||
|
|
||||||
QOS_PLUGIN = 'qos_plugin'
|
QOS_PLUGIN = 'qos_plugin'
|
||||||
|
|
||||||
|
@ -0,0 +1,25 @@
|
|||||||
|
# Copyright (c) 2019 Red Hat Inc.
|
||||||
|
# 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 port
|
||||||
|
from neutron_lib.api.definitions import qos_port_network_policy
|
||||||
|
from neutron_lib.services.qos import constants as qos_const
|
||||||
|
from neutron_lib.tests.unit.api.definitions import base
|
||||||
|
|
||||||
|
|
||||||
|
class QosPortNetworkPolicyTestCase(base.DefinitionBaseTestCase):
|
||||||
|
extension_module = qos_port_network_policy
|
||||||
|
extension_resources = (port.RESOURCE_NAME,)
|
||||||
|
extension_attributes = (qos_const.QOS_NETWORK_POLICY_ID,)
|
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
Add field ``qos_port_network_policy_id`` to the ``port`` definition. This
|
||||||
|
read only parameter contains the QoS policy of the network where the port
|
||||||
|
is plugged.
|
Loading…
Reference in New Issue
Block a user