summaryrefslogtreecommitdiff
path: root/openstackclient/network/v2
diff options
context:
space:
mode:
authorRodolfo Alonso Hernandez <ralonsoh@redhat.com>2022-02-02 19:44:37 +0000
committerRodolfo Alonso Hernandez <ralonsoh@redhat.com>2022-12-10 17:01:11 +0100
commitbfab0199bebf139be5a948fdf8ced868b3e942de (patch)
tree6d72f4cb1b25c529c2ff156bbdf5db7a89f5314d /openstackclient/network/v2
parentb2c9a4cd407c752215554d9b113e6651d04db372 (diff)
downloadpython-openstackclient-bfab0199bebf139be5a948fdf8ced868b3e942de.tar.gz
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
Diffstat (limited to 'openstackclient/network/v2')
-rw-r--r--openstackclient/network/v2/network_qos_rule_type.py25
1 files changed, 24 insertions, 1 deletions
diff --git a/openstackclient/network/v2/network_qos_rule_type.py b/openstackclient/network/v2/network_qos_rule_type.py
index 9af22876..3f4f6a19 100644
--- a/openstackclient/network/v2/network_qos_rule_type.py
+++ b/openstackclient/network/v2/network_qos_rule_type.py
@@ -32,6 +32,23 @@ def _get_columns(item):
class ListNetworkQosRuleType(command.Lister):
_description = _("List QoS rule types")
+ def get_parser(self, prog_name):
+ parser = super().get_parser(prog_name)
+ supported = parser.add_mutually_exclusive_group()
+ supported.add_argument(
+ '--all-supported',
+ action='store_true',
+ help=_("List all the QoS rule types supported by any loaded "
+ "mechanism drivers (the union of all sets of supported "
+ "rules)")
+ )
+ supported.add_argument(
+ '--all-rules',
+ action='store_true',
+ help=_("List all QoS rule types implemented in Neutron QoS driver")
+ )
+ return parser
+
def take_action(self, parsed_args):
client = self.app.client_manager.network
columns = (
@@ -40,7 +57,13 @@ class ListNetworkQosRuleType(command.Lister):
column_headers = (
'Type',
)
- data = client.qos_rule_types()
+
+ args = {}
+ if parsed_args.all_supported:
+ args['all_supported'] = True
+ elif parsed_args.all_rules:
+ args['all_rules'] = True
+ data = client.qos_rule_types(**args)
return (column_headers,
(utils.get_item_properties(