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, )