Show Network QoS rules one per line

The command "network show qos policy <qos>" now shows the QoS rules
printed one per line.

Example: https://paste.opendev.org/show/bgam6amfLUVheAMhDxB3/
Change-Id: I65a99da16056902a822804e29b2dd9376a72e091
This commit is contained in:
Rodolfo Alonso Hernandez 2023-03-28 13:05:54 +02:00
parent 65b667af20
commit f1cf3a10b5
2 changed files with 13 additions and 2 deletions

View File

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

View File

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