From bfab0199bebf139be5a948fdf8ced868b3e942de Mon Sep 17 00:00:00 2001 From: Rodolfo Alonso Hernandez Date: Wed, 2 Feb 2022 19:44:37 +0000 Subject: Add qos rule type filtering Added two new filter flags to ``openstack network qos rule type list``: - "--all-supported", to return any QoS rule type supported by at least one loaded driver. - "--all-rules", to return all QoS rule types supported by the current version of Neutron server, regardless of the loaded drivers. Depends-On: https://review.opendev.org/c/openstack/openstacksdk/+/827671 Depends-On: https://review.opendev.org/c/openstack/neutron/+/827683 Related-Bug: #1959749 Change-Id: Ie0622e79ecf7dadd6560fea142352f5a2ed66b74 --- .../network/v2/test_network_qos_rule_type.py | 29 ++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'openstackclient/tests/functional') diff --git a/openstackclient/tests/functional/network/v2/test_network_qos_rule_type.py b/openstackclient/tests/functional/network/v2/test_network_qos_rule_type.py index 6b719cbe..4ead65cc 100644 --- a/openstackclient/tests/functional/network/v2/test_network_qos_rule_type.py +++ b/openstackclient/tests/functional/network/v2/test_network_qos_rule_type.py @@ -21,6 +21,13 @@ class NetworkQosRuleTypeTests(common.NetworkTests): AVAILABLE_RULE_TYPES = ['dscp_marking', 'bandwidth_limit'] + # NOTE(ralonsoh): this list was updated in Yoga (February 2022) + ALL_AVAILABLE_RULE_TYPES = ['dscp_marking', + 'bandwidth_limit', + 'minimum_bandwidth', + 'packet_rate_limit', + 'minimum_packet_rate', + ] def setUp(self): super(NetworkQosRuleTypeTests, self).setUp() @@ -36,6 +43,28 @@ class NetworkQosRuleTypeTests(common.NetworkTests): for rule_type in self.AVAILABLE_RULE_TYPES: self.assertIn(rule_type, [x['Type'] for x in cmd_output]) + def test_qos_rule_type_list_all_supported(self): + if not self.is_extension_enabled('qos-rule-type-filter'): + self.skipTest('No "qos-rule-type-filter" extension present') + + cmd_output = self.openstack( + 'network qos rule type list --all-supported -f json', + parse_output=True + ) + for rule_type in self.AVAILABLE_RULE_TYPES: + self.assertIn(rule_type, [x['Type'] for x in cmd_output]) + + def test_qos_rule_type_list_all_rules(self): + if not self.is_extension_enabled('qos-rule-type-filter'): + self.skipTest('No "qos-rule-type-filter" extension present') + + cmd_output = self.openstack( + 'network qos rule type list --all-rules -f json', + parse_output=True + ) + for rule_type in self.ALL_AVAILABLE_RULE_TYPES: + self.assertIn(rule_type, [x['Type'] for x in cmd_output]) + def test_qos_rule_type_details(self): for rule_type in self.AVAILABLE_RULE_TYPES: cmd_output = self.openstack( -- cgit v1.2.1