Merge "Add getting of QoS rule type details"
This commit is contained in:
commit
e5feff613d
@ -167,6 +167,8 @@ QoS Operations
|
||||
.. automethod:: openstack.network.v2._proxy.Proxy.get_qos_policy
|
||||
.. automethod:: openstack.network.v2._proxy.Proxy.find_qos_policy
|
||||
.. automethod:: openstack.network.v2._proxy.Proxy.qos_policies
|
||||
.. automethod:: openstack.network.v2._proxy.Proxy.get_qos_rule_type
|
||||
.. automethod:: openstack.network.v2._proxy.Proxy.find_qos_rule_type
|
||||
.. automethod:: openstack.network.v2._proxy.Proxy.qos_rule_types
|
||||
|
||||
.. automethod:: openstack.network.v2._proxy.Proxy.create_qos_minimum_bandwidth_rule
|
||||
|
@ -1974,6 +1974,36 @@ class Proxy(proxy2.BaseProxy):
|
||||
"""
|
||||
return self._update(_qos_policy.QoSPolicy, qos_policy, **attrs)
|
||||
|
||||
def find_qos_rule_type(self, rule_type_name, ignore_missing=True):
|
||||
"""Find a single QoS rule type details
|
||||
|
||||
:param rule_type_name: The name of a QoS rule type.
|
||||
:param bool ignore_missing: When set to ``False``
|
||||
:class:`~openstack.exceptions.ResourceNotFound` will be
|
||||
raised when the resource does not exist.
|
||||
When set to ``True``, None will be returned when
|
||||
attempting to find a nonexistent resource.
|
||||
:returns: One :class:`~openstack.network.v2.qos_rule_type.QoSRuleType`
|
||||
or None
|
||||
"""
|
||||
return self._find(_qos_rule_type.QoSRuleType, rule_type_name,
|
||||
ignore_missing=ignore_missing)
|
||||
|
||||
def get_qos_rule_type(self, qos_rule_type):
|
||||
"""Get details about single QoS rule type
|
||||
|
||||
:param qos_rule_type: The value can be the name of a QoS policy
|
||||
rule type or a
|
||||
:class:`~openstack.network.v2.
|
||||
qos_rule_type.QoSRuleType`
|
||||
instance.
|
||||
|
||||
:returns: One :class:`~openstack.network.v2.qos_rule_type.QoSRuleType`
|
||||
:raises: :class:`~openstack.exceptions.ResourceNotFound`
|
||||
when no resource can be found.
|
||||
"""
|
||||
return self._get(_qos_rule_type.QoSRuleType, qos_rule_type)
|
||||
|
||||
def qos_rule_types(self, **query):
|
||||
"""Return a generator of QoS rule types
|
||||
|
||||
|
@ -22,13 +22,15 @@ class QoSRuleType(resource.Resource):
|
||||
|
||||
# capabilities
|
||||
allow_create = False
|
||||
allow_get = False
|
||||
allow_get = True
|
||||
allow_update = False
|
||||
allow_delete = False
|
||||
allow_list = True
|
||||
|
||||
_query_mapping = resource.QueryParameters('type')
|
||||
_query_mapping = resource.QueryParameters('type', 'drivers')
|
||||
|
||||
# Properties
|
||||
#: QoS rule type name.
|
||||
type = resource.Body('type')
|
||||
#: List of QoS backend drivers supporting this QoS rule type
|
||||
drivers = resource.Body('drivers')
|
||||
|
@ -17,6 +17,18 @@ from openstack.tests.functional import base
|
||||
|
||||
class TestQoSRuleType(base.BaseFunctionalTest):
|
||||
|
||||
QOS_RULE_TYPE = "bandwidth_limit"
|
||||
|
||||
def test_find(self):
|
||||
sot = self.conn.network.find_qos_rule_type(self.QOS_RULE_TYPE)
|
||||
self.assertEqual(self.QOS_RULE_TYPE, sot.type)
|
||||
self.assertIsInstance(sot.drivers, list)
|
||||
|
||||
def test_get(self):
|
||||
sot = self.conn.network.get_qos_rule_type(self.QOS_RULE_TYPE)
|
||||
self.assertEqual(self.QOS_RULE_TYPE, sot.type)
|
||||
self.assertIsInstance(sot.drivers, list)
|
||||
|
||||
def test_list(self):
|
||||
rule_types = list(self.conn.network.qos_rule_types())
|
||||
self.assertGreater(len(rule_types), 0)
|
||||
|
@ -665,6 +665,14 @@ class TestNetworkProxy(test_proxy_base2.TestProxyBase):
|
||||
def test_qos_policy_update(self):
|
||||
self.verify_update(self.proxy.update_qos_policy, qos_policy.QoSPolicy)
|
||||
|
||||
def test_qos_rule_type_find(self):
|
||||
self.verify_find(self.proxy.find_qos_rule_type,
|
||||
qos_rule_type.QoSRuleType)
|
||||
|
||||
def test_qos_rule_type_get(self):
|
||||
self.verify_get(self.proxy.get_qos_rule_type,
|
||||
qos_rule_type.QoSRuleType)
|
||||
|
||||
def test_qos_rule_types(self):
|
||||
self.verify_list(self.proxy.qos_rule_types, qos_rule_type.QoSRuleType,
|
||||
paginated=False)
|
||||
|
@ -16,6 +16,22 @@ from openstack.network.v2 import qos_rule_type
|
||||
|
||||
EXAMPLE = {
|
||||
'type': 'bandwidth_limit',
|
||||
'drivers': [{
|
||||
'name': 'openvswitch',
|
||||
'supported_parameters': [{
|
||||
'parameter_values': {'start': 0, 'end': 2147483647},
|
||||
'parameter_type': 'range',
|
||||
'parameter_name': 'max_kbps'
|
||||
}, {
|
||||
'parameter_values': ['ingress', 'egress'],
|
||||
'parameter_type': 'choices',
|
||||
'parameter_name': 'direction'
|
||||
}, {
|
||||
'parameter_values': {'start': 0, 'end': 2147483647},
|
||||
'parameter_type': 'range',
|
||||
'parameter_name': 'max_burst_kbps'
|
||||
}]
|
||||
}]
|
||||
}
|
||||
|
||||
|
||||
@ -28,7 +44,7 @@ class TestQoSRuleType(testtools.TestCase):
|
||||
self.assertEqual('/qos/rule-types', sot.base_path)
|
||||
self.assertEqual('network', sot.service.service_type)
|
||||
self.assertFalse(sot.allow_create)
|
||||
self.assertFalse(sot.allow_get)
|
||||
self.assertTrue(sot.allow_get)
|
||||
self.assertFalse(sot.allow_update)
|
||||
self.assertFalse(sot.allow_delete)
|
||||
self.assertTrue(sot.allow_list)
|
||||
@ -36,3 +52,4 @@ class TestQoSRuleType(testtools.TestCase):
|
||||
def test_make_it(self):
|
||||
sot = qos_rule_type.QoSRuleType(**EXAMPLE)
|
||||
self.assertEqual(EXAMPLE['type'], sot.type)
|
||||
self.assertEqual(EXAMPLE['drivers'], sot.drivers)
|
||||
|
Loading…
x
Reference in New Issue
Block a user