Add more detailed info about supported QoS rule types

This spec propose new API call to discover details about
supported QoS rule type: which backend driver supports it
and what parameters are supported by such driver.

Change-Id: Id926170842ae4443749e5c188eec190b3045ff26
Related-Bug: 1686035
This commit is contained in:
Sławek Kapłoński 2017-05-20 22:14:49 +00:00
parent b527e77db0
commit a5db1db2bb
1 changed files with 95 additions and 0 deletions

View File

@ -0,0 +1,95 @@
..
This work is licensed under a Creative Commons Attribution 3.0 Unported
License.
http://creativecommons.org/licenses/by/3.0/legalcode
=============================================
QoS detailed reporting of available QoS rules
=============================================
https://bugs.launchpad.net/neutron/+bug/1686035
Problem Description
===================
With [1] different QoS rules can be supported by different backend drivers.
Whether the driver can handle the given rule type, and the parameters passed
with the rule, are validated only when the user wants to apply the rule to a
port/network.
With [2] merged, Neutron returns a list of all rule types supported by
at least one of the enabled backends.
This is not enough as users are unable to discover what values are supported by
the back ends for each rule type
Proposed Change
===============
We propose to add new API. This call would be used to get details of every
available rule type.
REST API
--------
New REST API call is::
GET /v2.0/qos/rule-types/{rule_type}
Request example::
GET /v2.0/qos/rule-types/bandwidth_limit
The response is a dict with details for the supported rule type for each of the
enabled backends.
This call should be available only for users with admin rights to not expose
details about cloud infra to regular users.
Response example::
{
"rule_type": {
"type": "bandwidth_limit",
"drivers": [
{
"name": "ovs",
"supported_parameters": [
{
"parameter_name": "max_kbps",
"parameter_values": "*"
},
{
"parameter_name": "max_burst_kbps",
"parameter_values": "*"
},
{
"parameter_name": "direction",
"parameter_values": ["ingress", "egress"]
}
]
},
{
"name": "linuxbridge",
"supported_parameters": [
{
"parameter_name": "max_kbps",
"parameter_values": "*"
},
{
"parameter_name": "max_burst_kbps",
"parameter_values": "*"
},
{
"parameter_name": "direction",
"parameter_values": ["egress"]
}
]
}
]
}
}
References
==========
[1] http://specs.openstack.org/openstack/neutron-specs/pike/qos-improved-validation-mechanism-rules.html
[2] https://review.openstack.org/#/c/461257