summaryrefslogtreecommitdiff
path: root/openstackclient/tests/functional/network
diff options
context:
space:
mode:
authorPrzemyslaw Szczerbik <przemyslaw.szczerbik@est.tech>2021-09-21 13:16:10 +0200
committerDr. Jens Harbott <frickler@offenerstapel.de>2022-07-01 13:55:41 +0000
commit6ccbcdde64670daaaac4f42fe62eb180df700905 (patch)
treeb9bac5b9b3667a76173e4e091dec2ccbdca54a81 /openstackclient/tests/functional/network
parent9eea28ba59e44526b9d6f1ad9f80c3553d5853e2 (diff)
downloadpython-openstackclient-6ccbcdde64670daaaac4f42fe62eb180df700905.tar.gz
Add support for CRUD operations for QoS minimum packet rate rule
Closes-Bug: #1922237 Depends-On: https://review.opendev.org/c/openstack/openstacksdk/+/810364 See-Also: https://review.opendev.org/785236 Change-Id: Ie7e1eb0575fd37121d5097ecbc318d0769ab3db0
Diffstat (limited to 'openstackclient/tests/functional/network')
-rw-r--r--openstackclient/tests/functional/network/v2/test_network_qos_rule.py67
1 files changed, 67 insertions, 0 deletions
diff --git a/openstackclient/tests/functional/network/v2/test_network_qos_rule.py b/openstackclient/tests/functional/network/v2/test_network_qos_rule.py
index 98e588e8..fd411b35 100644
--- a/openstackclient/tests/functional/network/v2/test_network_qos_rule.py
+++ b/openstackclient/tests/functional/network/v2/test_network_qos_rule.py
@@ -85,6 +85,73 @@ class NetworkQosRuleTestsMinimumBandwidth(common.NetworkTests):
self.assertEqual(7500, cmd_output['min_kbps'])
+class NetworkQosRuleTestsMinimumPacketRate(common.NetworkTests):
+ """Functional tests for QoS minimum packet rate rule"""
+
+ def setUp(self):
+ super(NetworkQosRuleTestsMinimumPacketRate, self).setUp()
+ # Nothing in this class works with Nova Network
+ if not self.haz_network:
+ self.skipTest("No Network service present")
+
+ self.QOS_POLICY_NAME = 'qos_policy_%s' % uuid.uuid4().hex
+
+ self.openstack(
+ 'network qos policy create %s' % self.QOS_POLICY_NAME
+ )
+ self.addCleanup(self.openstack,
+ 'network qos policy delete %s' % self.QOS_POLICY_NAME)
+ cmd_output = json.loads(self.openstack(
+ 'network qos rule create -f json '
+ '--type minimum-packet-rate '
+ '--min-kpps 2800 '
+ '--egress %s' %
+ self.QOS_POLICY_NAME
+ ))
+ self.RULE_ID = cmd_output['id']
+ self.addCleanup(self.openstack,
+ 'network qos rule delete %s %s' %
+ (self.QOS_POLICY_NAME, self.RULE_ID))
+ self.assertTrue(self.RULE_ID)
+
+ def test_qos_rule_create_delete(self):
+ # This is to check the output of qos rule delete
+ policy_name = uuid.uuid4().hex
+ self.openstack('network qos policy create -f json %s' % policy_name)
+ self.addCleanup(self.openstack,
+ 'network qos policy delete %s' % policy_name)
+ rule = json.loads(self.openstack(
+ 'network qos rule create -f json '
+ '--type minimum-packet-rate '
+ '--min-kpps 2800 '
+ '--egress %s' % policy_name
+ ))
+ raw_output = self.openstack(
+ 'network qos rule delete %s %s' %
+ (policy_name, rule['id']))
+ self.assertEqual('', raw_output)
+
+ def test_qos_rule_list(self):
+ cmd_output = json.loads(self.openstack(
+ 'network qos rule list -f json %s' % self.QOS_POLICY_NAME))
+ self.assertIn(self.RULE_ID, [rule['ID'] for rule in cmd_output])
+
+ def test_qos_rule_show(self):
+ cmd_output = json.loads(self.openstack(
+ 'network qos rule show -f json %s %s' %
+ (self.QOS_POLICY_NAME, self.RULE_ID)))
+ self.assertEqual(self.RULE_ID, cmd_output['id'])
+
+ def test_qos_rule_set(self):
+ self.openstack('network qos rule set --min-kpps 7500 --any %s %s' %
+ (self.QOS_POLICY_NAME, self.RULE_ID))
+ cmd_output = json.loads(self.openstack(
+ 'network qos rule show -f json %s %s' %
+ (self.QOS_POLICY_NAME, self.RULE_ID)))
+ self.assertEqual(7500, cmd_output['min_kpps'])
+ self.assertEqual('any', cmd_output['direction'])
+
+
class NetworkQosRuleTestsDSCPMarking(common.NetworkTests):
"""Functional tests for QoS DSCP marking rule"""