From f1cf3a10b5f0fcf13e57b8df7e139db2b0ebb760 Mon Sep 17 00:00:00 2001 From: Rodolfo Alonso Hernandez Date: Tue, 28 Mar 2023 13:05:54 +0200 Subject: [PATCH] Show Network QoS rules one per line The command "network show qos policy " now shows the QoS rules printed one per line. Example: https://paste.opendev.org/show/bgam6amfLUVheAMhDxB3/ Change-Id: I65a99da16056902a822804e29b2dd9376a72e091 --- openstackclient/network/v2/network_qos_policy.py | 13 ++++++++++++- .../unit/network/v2/test_network_qos_policy.py | 2 +- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/openstackclient/network/v2/network_qos_policy.py b/openstackclient/network/v2/network_qos_policy.py index d77e5db938..29967d7d5a 100644 --- a/openstackclient/network/v2/network_qos_policy.py +++ b/openstackclient/network/v2/network_qos_policy.py @@ -15,6 +15,7 @@ import logging +from cliff import columns as cliff_columns from osc_lib.command import command from osc_lib import exceptions from osc_lib import utils @@ -26,6 +27,16 @@ from openstackclient.network import common LOG = logging.getLogger(__name__) +class RulesColumn(cliff_columns.FormattableColumn): + def human_readable(self): + return '\n'.join(str(v) for v in self._value) + + +_formatters = { + 'rules': RulesColumn, +} + + def _get_columns(item): column_map = { 'is_shared': 'shared', @@ -287,5 +298,5 @@ class ShowNetworkQosPolicy(command.ShowOne): obj = client.find_qos_policy(parsed_args.policy, ignore_missing=False) display_columns, columns = _get_columns(obj) - data = utils.get_item_properties(obj, columns) + data = utils.get_item_properties(obj, columns, formatters=_formatters) return (display_columns, data) diff --git a/openstackclient/tests/unit/network/v2/test_network_qos_policy.py b/openstackclient/tests/unit/network/v2/test_network_qos_policy.py index af4cb3fbcc..ca21ccf702 100644 --- a/openstackclient/tests/unit/network/v2/test_network_qos_policy.py +++ b/openstackclient/tests/unit/network/v2/test_network_qos_policy.py @@ -432,7 +432,7 @@ class TestShowNetworkQosPolicy(TestQosPolicy): _qos_policy.is_default, _qos_policy.name, _qos_policy.project_id, - _qos_policy.rules, + network_qos_policy.RulesColumn(_qos_policy.rules), _qos_policy.shared, )