From 2d99856e245d6720b2b62da6541e58b443ae746c Mon Sep 17 00:00:00 2001 From: csatari Date: Mon, 7 Aug 2017 18:02:37 +0200 Subject: [PATCH] Adding qos policy to the different port and network operations The qos policy parameter was missing from the request and the response of the different port and network operations. This change adds them. Closes-Bug: 1735093 Change-Id: I8c665a9eec4f627b97af4d937f49afdd7bd60fc7 Signed-off-by: csatari --- api-ref/source/v2/networks.inc | 24 ++++++++++++------- api-ref/source/v2/parameters.yaml | 22 +++++++++++++++-- api-ref/source/v2/ports.inc | 16 +++++++++++++ api-ref/source/v2/qos.inc | 11 +++++---- .../networks-provider-list-response.json | 2 ++ .../ports/port-bind-create-request.json | 3 ++- .../ports/port-bind-create-response.json | 1 + .../ports/port-bind-show-response.json | 3 ++- .../ports/port-bind-update-request.json | 3 ++- .../ports/port-bind-update-response.json | 1 + .../v2/samples/ports/port-create-request.json | 1 + .../samples/ports/port-create-response.json | 3 ++- .../v2/samples/ports/port-show-response.json | 3 ++- .../v2/samples/ports/port-update-request.json | 3 ++- .../samples/ports/port-update-response.json | 1 + .../ports/ports-bind-list-response.json | 6 +++-- .../ports/ports-bulk-create-request.json | 3 ++- .../ports/ports-bulk-create-response.json | 2 ++ .../v2/samples/ports/ports-list-response.json | 2 ++ 19 files changed, 87 insertions(+), 23 deletions(-) diff --git a/api-ref/source/v2/networks.inc b/api-ref/source/v2/networks.inc index b64c9b759..a2fbf5bcc 100644 --- a/api-ref/source/v2/networks.inc +++ b/api-ref/source/v2/networks.inc @@ -112,6 +112,14 @@ Most Networking plug-ins (e.g. ML2 Plugin) and drivers do not support updating any provider related attributes. Check your plug-in whether it supports updating. +QoS extension +============= + +The :ref:`QoS ` extension (``qos``) makes it possible to +define QoS policies and associate these to the networks by introducing the +``qos_policy_id`` attribute. The policies should be created before they are +associated to the networks. + Resource timestamps =================== @@ -175,7 +183,7 @@ Response Parameters - provider:network_type: provider:network_type - provider:physical_network: provider:physical_network - provider:segmentation_id: provider:segmentation_id - - qos_policy_id: qos_policy_id + - qos_policy_id: qos_policy_id-network-response - revision_number: revision_number - router:external: router:external - segments: segments @@ -232,7 +240,7 @@ Request - provider:network_type: provider:network_type - provider:physical_network: provider:physical_network - provider:segmentation_id: provider:segmentation_id - - qos_policy_id: qos_policy_id-request + - qos_policy_id: qos_policy_id-network-request - router:external: router:external-request - segments: segments - shared: shared @@ -279,7 +287,7 @@ Response Parameters - provider:network_type: provider:network_type - provider:physical_network: provider:physical_network - provider:segmentation_id: provider:segmentation_id - - qos_policy_id: qos_policy_id + - qos_policy_id: qos_policy_id-network-response - revision_number: revision_number - router:external: router:external - segments: segments @@ -405,7 +413,7 @@ Response Parameters - provider:network_type: provider:network_type - provider:physical_network: provider:physical_network - provider:segmentation_id: provider:segmentation_id - - qos_policy_id: qos_policy_id + - qos_policy_id: qos_policy_id-network-response - revision_number: revision_number - router:external: router:external - segments: segments @@ -465,7 +473,7 @@ Request - provider:network_type: provider:network_type-request - provider:physical_network: provider:physical_network-request - provider:segmentation_id: provider:segmentation_id-request - - qos_policy_id: qos_policy_id-request + - qos_policy_id: qos_policy_id-network-request - router:external: router:external-request - segments: segments-request - shared: shared @@ -515,7 +523,7 @@ Response Parameters - provider:network_type: provider:network_type - provider:physical_network: provider:physical_network - provider:segmentation_id: provider:segmentation_id - - qos_policy_id: qos_policy_id + - qos_policy_id: qos_policy_id-network-response - revision_number: revision_number - router:external: router:external - segments: segments @@ -577,7 +585,7 @@ Request - provider:network_type: provider:network_type-request - provider:physical_network: provider:physical_network-request - provider:segmentation_id: provider:segmentation_id-request - - qos_policy_id: qos_policy_id-request + - qos_policy_id: qos_policy_id-network-request - router:external: router:external-request - segments: segments-request - shared: shared @@ -614,7 +622,7 @@ Response Parameters - provider:network_type: provider:network_type - provider:physical_network: provider:physical_network - provider:segmentation_id: provider:segmentation_id - - qos_policy_id: qos_policy_id + - qos_policy_id: qos_policy_id-network-response - revision_number: revision_number - router:external: router:external - segments: segments diff --git a/api-ref/source/v2/parameters.yaml b/api-ref/source/v2/parameters.yaml index 587ec0e3c..b8677777e 100644 --- a/api-ref/source/v2/parameters.yaml +++ b/api-ref/source/v2/parameters.yaml @@ -4268,12 +4268,30 @@ qos_policy_id: in: body required: true type: string -qos_policy_id-request: +qos_policy_id-network-request: description: | - The ID of the QoS policy. + The ID of the QoS policy associated with the network. in: body required: false type: string +qos_policy_id-network-response: + description: | + The ID of the QoS policy associated with the network. + in: body + required: true + type: string +qos_policy_id-port-request: + description: | + QoS policy associated with the port. + in: body + required: false + type: string +qos_policy_id-port-response: + description: | + The ID of the QoS policy associated with the port. + in: body + required: true + type: string quota: description: | A ``quota`` object. diff --git a/api-ref/source/v2/ports.inc b/api-ref/source/v2/ports.inc index 2bc59b1ce..23a5918be 100644 --- a/api-ref/source/v2/ports.inc +++ b/api-ref/source/v2/ports.inc @@ -88,6 +88,14 @@ attribute to ports. If a ``port-security`` value is not specified during port creation, a port will inherit the ``port_security_enabled`` from the network its connected to. +QoS extension +============= + +The :ref:`QoS ` extension (``qos``) makes it possible to +define QoS policies and associate these to the ports by introducing the +``qos_policy_id`` attribute. The policies should be created before they are +associated to the ports. + Resource timestamps =================== @@ -150,6 +158,7 @@ Response Parameters - port_security_enabled: port_security_enabled - project_id: project_id - revision_number: revision_number + - qos_policy_id: qos_policy_id-port-response - security_groups: port-security_groups - status: port-status - tenant_id: project_id @@ -222,6 +231,7 @@ Request - mac_address: mac_address-request-put - name: name-request - port_security_enabled: port_security_enabled-request + - qos_policy_id: qos_policy_id-port-request - security_groups: port-security_groups-request Request Example @@ -267,6 +277,7 @@ Response Parameters - port_security_enabled: port_security_enabled - project_id: project_id - revision_number: revision_number + - qos_policy_id: qos_policy_id-port-response - security_groups: port-security_groups - status: port-status - tenant_id: project_id @@ -396,6 +407,7 @@ Response Parameters - port_security_enabled: port_security_enabled - project_id: project_id - revision_number: revision_number + - qos_policy_id: qos_policy_id-port-response - security_groups: port-security_groups - status: port-status - tenant_id: project_id @@ -450,6 +462,7 @@ Request - network_id: network_id - port_security_enabled: port_security_enabled-request - project_id: project_id-request + - qos_policy_id: qos_policy_id-port-request - security_groups: port-security_groups-request - tenant_id: project_id-request @@ -496,6 +509,7 @@ Response Parameters - port_security_enabled: port_security_enabled - project_id: project_id - revision_number: revision_number + - qos_policy_id: qos_policy_id-port-response - security_groups: port-security_groups - status: port-status - tenant_id: project_id @@ -549,6 +563,7 @@ Request - network_id: network_id - port_security_enabled: port_security_enabled-request - project_id: project_id-request + - qos_policy_id: qos_policy_id-port-request - security_groups: port-security_groups-request - tenant_id: project_id-request @@ -589,6 +604,7 @@ Response Parameters - port_security_enabled: port_security_enabled - project_id: project_id - revision_number: revision_number + - qos_policy_id: qos_policy_id-port-response - security_groups: port-security_groups - status: port-status - tenant_id: project_id diff --git a/api-ref/source/v2/qos.inc b/api-ref/source/v2/qos.inc index 0fc4d373d..0bd796ea2 100644 --- a/api-ref/source/v2/qos.inc +++ b/api-ref/source/v2/qos.inc @@ -1,5 +1,7 @@ .. -*- rst -*- +.. _quality-of-service: + ============== QoS rule types ============== @@ -108,7 +110,8 @@ List QoS policies .. rest_method:: GET /v2.0/qos/policies -Lists all QoS policies associated with your project. +Lists all QoS policies associated with your project. One policy can contain +more than one rule type. The list might be empty. @@ -175,8 +178,8 @@ Create QoS policy Creates a QoS policy. Creates a QoS policy by using the configuration that you define in -the request object. A response object is returned. The object -contains a unique ID. +the request object. +A response object is returned. The object contains a unique ID. By the default policy configuration, if the caller is not an administrative user, this call returns the HTTP ``Forbidden (403)`` response code. @@ -237,7 +240,7 @@ Show QoS policy details .. rest_method:: GET /v2.0/qos/policies/{policy_id} -Shows details for a QoS policy. +Shows details for a QoS policy. One policy can contain more than one rule type. Normal response codes: 200 diff --git a/api-ref/source/v2/samples/networks/networks-provider-list-response.json b/api-ref/source/v2/samples/networks/networks-provider-list-response.json index 6aadeb363..b5d1819d2 100644 --- a/api-ref/source/v2/samples/networks/networks-provider-list-response.json +++ b/api-ref/source/v2/samples/networks/networks-provider-list-response.json @@ -16,6 +16,7 @@ "name": "net1", "port_security_enabled": true, "project_id": "4fd44f30292945e481c7b8a0c8908869", + "qos_policy_id": "6a8454ade84346f59e8d40665f878b2e", "provider:network_type": "vlan", "provider:physical_network": "public", "provider:segmentation_id": 3, @@ -48,6 +49,7 @@ "name": "net2", "port_security_enabled": true, "project_id": "26a7980765d0414dbc1fc1f88cdb7e6e", + "qos_policy_id": null, "provider:network_type": "local", "provider:physical_network": null, "provider:segmentation_id": null, diff --git a/api-ref/source/v2/samples/ports/port-bind-create-request.json b/api-ref/source/v2/samples/ports/port-bind-create-request.json index 52b84835e..b8060b169 100644 --- a/api-ref/source/v2/samples/ports/port-bind-create-request.json +++ b/api-ref/source/v2/samples/ports/port-bind-create-request.json @@ -14,6 +14,7 @@ "device_id": "d90a13da-be41-461f-9f99-1dbcf438fdf2", "device_owner": "baremetal:none", "dns_domain": "my-domain.org.", - "dns_name": "myport" + "dns_name": "myport", + "qos_policy_id": "29d5e02e-d5ab-4929-bee4-4a9fc12e22ae" } } diff --git a/api-ref/source/v2/samples/ports/port-bind-create-response.json b/api-ref/source/v2/samples/ports/port-bind-create-response.json index ccc3ee748..f86949823 100644 --- a/api-ref/source/v2/samples/ports/port-bind-create-response.json +++ b/api-ref/source/v2/samples/ports/port-bind-create-response.json @@ -58,6 +58,7 @@ "status": "DOWN", "tenant_id": "d6700c0c9ffa4f1cb322cd4a1f3906fa", "updated_at": "2016-03-08T20:19:41", + "qos_policy_id": "29d5e02e-d5ab-4929-bee4-4a9fc12e22ae", "port_security_enabled": true } } diff --git a/api-ref/source/v2/samples/ports/port-bind-show-response.json b/api-ref/source/v2/samples/ports/port-bind-show-response.json index df177f19f..9ca347544 100644 --- a/api-ref/source/v2/samples/ports/port-bind-show-response.json +++ b/api-ref/source/v2/samples/ports/port-bind-show-response.json @@ -46,6 +46,7 @@ "security_groups": [], "status": "ACTIVE", "tenant_id": "7e02058126cc4950b75f9970368ba177", - "updated_at": "2016-03-08T20:19:41" + "updated_at": "2016-03-08T20:19:41", + "qos_policy_id": "29d5e02e-d5ab-4929-bee4-4a9fc12e22ae" } } diff --git a/api-ref/source/v2/samples/ports/port-bind-update-request.json b/api-ref/source/v2/samples/ports/port-bind-update-request.json index 4118974ef..0ad476a14 100644 --- a/api-ref/source/v2/samples/ports/port-bind-update-request.json +++ b/api-ref/source/v2/samples/ports/port-bind-update-request.json @@ -3,6 +3,7 @@ "binding:host_id": "test_for_port_update_host", "device_id": "d90a13da-be41-461f-9f99-1dbcf438fdf2", "data_plane_status": "DOWN", - "device_owner": "compute:nova" + "device_owner": "compute:nova", + "qos_policy_id": "29d5e02e-d5ab-4929-bee4-4a9fc12e22ae" } } diff --git a/api-ref/source/v2/samples/ports/port-bind-update-response.json b/api-ref/source/v2/samples/ports/port-bind-update-response.json index 93a544c28..faf179556 100644 --- a/api-ref/source/v2/samples/ports/port-bind-update-response.json +++ b/api-ref/source/v2/samples/ports/port-bind-update-response.json @@ -45,6 +45,7 @@ "status": "DOWN", "tenant_id": "522eda8d23124b25bf03fe44f1986b74", "updated_at": "2016-03-08T20:19:41", + "qos_policy_id": "29d5e02e-d5ab-4929-bee4-4a9fc12e22ae", "port_security_enabled": false } } diff --git a/api-ref/source/v2/samples/ports/port-create-request.json b/api-ref/source/v2/samples/ports/port-create-request.json index 021621a38..41036c338 100644 --- a/api-ref/source/v2/samples/ports/port-create-request.json +++ b/api-ref/source/v2/samples/ports/port-create-request.json @@ -5,6 +5,7 @@ "dns_name": "myport", "name": "private-port", "network_id": "a87cc70a-3e15-4acf-8205-9b711a3531b7", + "qos_policy_id": "29d5e02e-d5ab-4929-bee4-4a9fc12e22ae", "port_security_enabled": true, "allowed_address_pairs": [ { diff --git a/api-ref/source/v2/samples/ports/port-create-response.json b/api-ref/source/v2/samples/ports/port-create-response.json index 367c99ff7..0ffeda8f1 100644 --- a/api-ref/source/v2/samples/ports/port-create-response.json +++ b/api-ref/source/v2/samples/ports/port-create-response.json @@ -45,6 +45,7 @@ ], "status": "DOWN", "tenant_id": "d6700c0c9ffa4f1cb322cd4a1f3906fa", - "updated_at": "2016-03-08T20:19:41" + "updated_at": "2016-03-08T20:19:41", + "qos_policy_id": "29d5e02e-d5ab-4929-bee4-4a9fc12e22ae" } } diff --git a/api-ref/source/v2/samples/ports/port-show-response.json b/api-ref/source/v2/samples/ports/port-show-response.json index fb8e527f3..93293e041 100644 --- a/api-ref/source/v2/samples/ports/port-show-response.json +++ b/api-ref/source/v2/samples/ports/port-show-response.json @@ -38,6 +38,7 @@ "security_groups": [], "status": "ACTIVE", "tenant_id": "7e02058126cc4950b75f9970368ba177", - "updated_at": "2016-03-08T20:19:41" + "updated_at": "2016-03-08T20:19:41", + "qos_policy_id": "29d5e02e-d5ab-4929-bee4-4a9fc12e22ae" } } diff --git a/api-ref/source/v2/samples/ports/port-update-request.json b/api-ref/source/v2/samples/ports/port-update-request.json index a1b6f7285..9e5404f49 100644 --- a/api-ref/source/v2/samples/ports/port-update-request.json +++ b/api-ref/source/v2/samples/ports/port-update-request.json @@ -3,6 +3,7 @@ "admin_state_up": true, "device_id": "d90a13da-be41-461f-9f99-1dbcf438fdf2", "device_owner": "compute:nova", - "name": "test-for-port-update" + "name": "test-for-port-update", + "qos_policy_id": "29d5e02e-d5ab-4929-bee4-4a9fc12e22ae" } } diff --git a/api-ref/source/v2/samples/ports/port-update-response.json b/api-ref/source/v2/samples/ports/port-update-response.json index a1eeea0e8..7d3f19d6e 100644 --- a/api-ref/source/v2/samples/ports/port-update-response.json +++ b/api-ref/source/v2/samples/ports/port-update-response.json @@ -45,6 +45,7 @@ "status": "DOWN", "tenant_id": "522eda8d23124b25bf03fe44f1986b74", "updated_at": "2016-03-08T20:19:41", + "qos_policy_id": "29d5e02e-d5ab-4929-bee4-4a9fc12e22ae", "port_security_enabled": false } } diff --git a/api-ref/source/v2/samples/ports/ports-bind-list-response.json b/api-ref/source/v2/samples/ports/ports-bind-list-response.json index 775133b03..346ea23af 100644 --- a/api-ref/source/v2/samples/ports/ports-bind-list-response.json +++ b/api-ref/source/v2/samples/ports/ports-bind-list-response.json @@ -41,7 +41,8 @@ "security_groups": [], "status": "ACTIVE", "tenant_id": "", - "updated_at": "2016-03-08T20:19:41" + "updated_at": "2016-03-08T20:19:41", + "qos_policy_id": "29d5e02e-d5ab-4929-bee4-4a9fc12e22ae" }, { "admin_state_up": true, @@ -84,7 +85,8 @@ "security_groups": [], "status": "ACTIVE", "tenant_id": "d397de8a63f341818f198abb0966f6f3", - "updated_at": "2016-03-08T20:19:41" + "updated_at": "2016-03-08T20:19:41", + "qos_policy_id": null } ] } diff --git a/api-ref/source/v2/samples/ports/ports-bulk-create-request.json b/api-ref/source/v2/samples/ports/ports-bulk-create-request.json index 9e5e3411b..94b5e5254 100644 --- a/api-ref/source/v2/samples/ports/ports-bulk-create-request.json +++ b/api-ref/source/v2/samples/ports/ports-bulk-create-request.json @@ -3,7 +3,8 @@ { "admin_state_up": false, "name": "sample_port_1", - "network_id": "a87cc70a-3e15-4acf-8205-9b711a3531b7" + "network_id": "a87cc70a-3e15-4acf-8205-9b711a3531b7", + "qos_policy_id": "29d5e02e-d5ab-4929-bee4-4a9fc12e22ae" }, { "admin_state_up": false, diff --git a/api-ref/source/v2/samples/ports/ports-bulk-create-response.json b/api-ref/source/v2/samples/ports/ports-bulk-create-response.json index dbdab867c..5f6a16636 100644 --- a/api-ref/source/v2/samples/ports/ports-bulk-create-response.json +++ b/api-ref/source/v2/samples/ports/ports-bulk-create-response.json @@ -36,6 +36,7 @@ "status": "DOWN", "tenant_id": "d6700c0c9ffa4f1cb322cd4a1f3906fa", "updated_at": "2016-03-08T20:19:41", + "qos_policy_id": "29d5e02e-d5ab-4929-bee4-4a9fc12e22ae", "port_security_enabled": false }, { @@ -75,6 +76,7 @@ "status": "DOWN", "tenant_id": "d6700c0c9ffa4f1cb322cd4a1f3906fa", "updated_at": "2016-03-08T20:19:41", + "qos_policy_id": null, "port_security_enabled": false } ] diff --git a/api-ref/source/v2/samples/ports/ports-list-response.json b/api-ref/source/v2/samples/ports/ports-list-response.json index 887d8d557..f7579b0a1 100644 --- a/api-ref/source/v2/samples/ports/ports-list-response.json +++ b/api-ref/source/v2/samples/ports/ports-list-response.json @@ -39,6 +39,7 @@ "status": "ACTIVE", "tenant_id": "", "updated_at": "2016-03-08T20:19:41", + "qos_policy_id": "29d5e02e-d5ab-4929-bee4-4a9fc12e22ae", "port_security_enabled": false }, { @@ -80,6 +81,7 @@ "status": "ACTIVE", "tenant_id": "d397de8a63f341818f198abb0966f6f3", "updated_at": "2016-03-08T20:19:41", + "qos_policy_id": null, "port_security_enabled": false } ]