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 } ]