osc: Use FormattableColumn for formatter

... because usage of legacy format function was deprecated 8 years ago
and was recently removed from osc-lib[1].

[1] 0e7dada02b825b2f97ac3eb68544bdd438a3a099

Change-Id: I6f04160cb79fbe081ece8d3893d1108919c241b0
This commit is contained in:
Takashi Kajinami 2025-05-07 14:53:28 +09:00
parent e96d153baa
commit 733f9becce
12 changed files with 74 additions and 58 deletions

View File

@ -87,7 +87,7 @@ class ListAmphora(lister.Lister):
data = self.app.client_manager.load_balancer.amphora_list(**attrs)
formatters = {
'amphorae': v2_utils.format_list,
'amphorae': v2_utils.ListColumn,
}
return (
@ -121,8 +121,8 @@ class ShowAmphora(command.ShowOne):
rows = const.AMPHORA_ROWS
formatters = {
'loadbalancers': v2_utils.format_list,
'amphorae': v2_utils.format_list,
'loadbalancers': v2_utils.ListColumn,
'amphorae': v2_utils.ListColumn,
}
return (rows, utils.get_dict_properties(data, rows,

View File

@ -72,7 +72,7 @@ class CreateAvailabilityzone(command.ShowOne):
data = self.app.client_manager.load_balancer.availabilityzone_create(
json=body)
formatters = {'availability_zone_profiles': v2_utils.format_list}
formatters = {'availability_zone_profiles': v2_utils.ListColumn}
return (rows,
(utils.get_dict_properties(
@ -140,7 +140,7 @@ class ListAvailabilityzone(lister.Lister):
parsed_args)
data = self.app.client_manager.load_balancer.availabilityzone_list(
**attrs)
formatters = {'availabilityzoneprofiles': v2_utils.format_list}
formatters = {'availabilityzoneprofiles': v2_utils.ListColumn}
return (columns,
(utils.get_dict_properties(s, columns, formatters=formatters)
for s in data['availability_zones']))
@ -169,7 +169,7 @@ class ShowAvailabilityzone(command.ShowOne):
data = self.app.client_manager.load_balancer.availabilityzone_show(
availabilityzone_name=availabilityzone_name
)
formatters = {'availabilityzoneprofiles': v2_utils.format_list}
formatters = {'availabilityzoneprofiles': v2_utils.ListColumn}
return (rows, (utils.get_dict_properties(
data, rows, formatters=formatters)))

View File

@ -74,7 +74,7 @@ class CreateFlavor(command.ShowOne):
data = self.app.client_manager.load_balancer.flavor_create(
json=body)
formatters = {'flavorprofiles': v2_utils.format_list}
formatters = {'flavorprofiles': v2_utils.ListColumn}
return (rows,
(utils.get_dict_properties(
@ -142,7 +142,7 @@ class ListFlavor(lister.Lister):
parsed_args)
data = self.app.client_manager.load_balancer.flavor_list(
**attrs)
formatters = {'flavorprofiles': v2_utils.format_list}
formatters = {'flavorprofiles': v2_utils.ListColumn}
return (columns,
(utils.get_dict_properties(s, columns, formatters=formatters)
for s in data['flavors']))
@ -179,7 +179,7 @@ class ShowFlavor(command.ShowOne):
data = self.app.client_manager.load_balancer.flavor_show(
flavor_id=flavor_id
)
formatters = {'flavorprofiles': v2_utils.format_list}
formatters = {'flavorprofiles': v2_utils.ListColumn}
return (rows, (utils.get_dict_properties(
data, rows, formatters=formatters)))

View File

@ -168,8 +168,8 @@ class CreateHealthMonitor(command.ShowOne):
data['healthmonitor']['id']))
}
formatters = {'pools': v2_utils.format_list,
'tags': v2_utils.format_list_flat}
formatters = {'pools': v2_utils.ListColumn,
'tags': v2_utils.FlatListColumn}
return (rows,
(utils.get_dict_properties(data['healthmonitor'],
@ -230,7 +230,7 @@ class ListHealthMonitor(lister.Lister):
data = self.app.client_manager.load_balancer.health_monitor_list(
**attrs)
formatters = {'pools': v2_utils.format_list}
formatters = {'pools': v2_utils.ListColumn}
return (columns,
(utils.get_dict_properties(s, columns, formatters=formatters)
for s in data['healthmonitors']))
@ -269,8 +269,8 @@ class ShowHealthMonitor(command.ShowOne):
data = self.app.client_manager.load_balancer.health_monitor_show(
health_monitor_id=health_monitor_id,
)
formatters = {'pools': v2_utils.format_list,
'tags': v2_utils.format_list_flat}
formatters = {'pools': v2_utils.ListColumn,
'tags': v2_utils.FlatListColumn}
return (rows,
(utils.get_dict_properties(data, rows, formatters=formatters)))

View File

@ -142,8 +142,8 @@ class CreateL7Policy(command.ShowOne):
data['l7policy']['id']))
}
formatters = {'rules': v2_utils.format_list,
'tags': v2_utils.format_list_flat}
formatters = {'rules': v2_utils.ListColumn,
'tags': v2_utils.FlatListColumn}
return (rows, (utils.get_dict_properties(
data['l7policy'], rows, formatters=formatters)))
@ -208,7 +208,7 @@ class ListL7Policy(lister.Lister):
parsed_args)
data = self.app.client_manager.load_balancer.l7policy_list(**attrs)
formatters = {'rules': v2_utils.format_list}
formatters = {'rules': v2_utils.ListColumn}
return (columns,
(utils.get_dict_properties(
@ -248,8 +248,8 @@ class ShowL7Policy(command.ShowOne):
data = self.app.client_manager.load_balancer.l7policy_show(
l7policy_id=l7policy_id,
)
formatters = {'rules': v2_utils.format_list,
'tags': v2_utils.format_list_flat}
formatters = {'rules': v2_utils.ListColumn,
'tags': v2_utils.FlatListColumn}
return (rows, (utils.get_dict_properties(
data, rows, formatters=formatters)))

View File

@ -130,7 +130,7 @@ class CreateL7Rule(command.ShowOne):
l7policy_id, data['rule']['id']))
}
formatters = {'tags': v2_utils.format_list_flat}
formatters = {'tags': v2_utils.FlatListColumn}
return (rows, (utils.get_dict_properties(
data['rule'], rows, formatters=formatters)))
@ -245,7 +245,7 @@ class ShowL7Rule(command.ShowOne):
l7rule_id=attrs['l7rule_id'],
l7policy_id=attrs['l7policy_id']
)
formatters = {'tags': v2_utils.format_list_flat}
formatters = {'tags': v2_utils.FlatListColumn}
return (rows, (utils.get_dict_properties(
data, rows, formatters=formatters)))

View File

@ -258,12 +258,12 @@ class CreateListener(command.ShowOne):
data['listener']['id']))
}
formatters = {'loadbalancers': v2_utils.format_list,
'pools': v2_utils.format_list,
'l7policies': v2_utils.format_list,
'insert_headers': v2_utils.format_hash,
'allowed_cidrs': v2_utils.format_list_flat,
'tags': v2_utils.format_list_flat}
formatters = {'loadbalancers': v2_utils.ListColumn,
'pools': v2_utils.ListColumn,
'l7policies': v2_utils.ListColumn,
'insert_headers': v2_utils.HashColumn,
'allowed_cidrs': v2_utils.FlatListColumn,
'tags': v2_utils.FlatListColumn}
return (rows,
(utils.get_dict_properties(data['listener'],
@ -352,7 +352,7 @@ class ListListener(lister.Lister):
attrs = v2_utils.get_listener_attrs(self.app.client_manager,
parsed_args)
data = self.app.client_manager.load_balancer.listener_list(**attrs)
formatters = {'loadbalancers': v2_utils.format_list}
formatters = {'loadbalancers': v2_utils.ListColumn}
return (columns,
(utils.get_dict_properties(s, columns, formatters=formatters)
for s in data['listeners']))
@ -390,12 +390,12 @@ class ShowListener(command.ShowOne):
data = self.app.client_manager.load_balancer.listener_show(
listener_id=listener_id,
)
formatters = {'loadbalancers': v2_utils.format_list,
'pools': v2_utils.format_list,
'l7policies': v2_utils.format_list,
'insert_headers': v2_utils.format_hash,
'allowed_cidrs': v2_utils.format_list_flat,
'tags': v2_utils.format_list_flat}
formatters = {'loadbalancers': v2_utils.ListColumn,
'pools': v2_utils.ListColumn,
'l7policies': v2_utils.ListColumn,
'insert_headers': v2_utils.HashColumn,
'allowed_cidrs': v2_utils.FlatListColumn,
'tags': v2_utils.FlatListColumn}
return rows, utils.get_dict_properties(data, rows,
formatters=formatters)

View File

@ -179,10 +179,10 @@ class CreateLoadBalancer(command.ShowOne):
data['loadbalancer']['vip_vnic_type'] = 'normal'
formatters = {
'listeners': v2_utils.format_list,
'pools': v2_utils.format_list,
'l7policies': v2_utils.format_list,
'tags': v2_utils.format_list_flat
'listeners': v2_utils.ListColumn,
'pools': v2_utils.ListColumn,
'l7policies': v2_utils.ListColumn,
'tags': v2_utils.FlatListColumn
}
return (rows,
@ -407,10 +407,10 @@ class ShowLoadBalancer(command.ShowOne):
data['vip_vnic_type'] = 'normal'
formatters = {
'listeners': v2_utils.format_list,
'pools': v2_utils.format_list,
'l7policies': v2_utils.format_list,
'tags': v2_utils.format_list_flat
'listeners': v2_utils.ListColumn,
'pools': v2_utils.ListColumn,
'l7policies': v2_utils.ListColumn,
'tags': v2_utils.FlatListColumn
}
return (rows, (utils.get_dict_properties(

View File

@ -103,7 +103,7 @@ class ShowMember(command.ShowOne):
if not data.get('vnic_type', False):
data['vnic_type'] = 'normal'
formatters = {'tags': v2_utils.format_list_flat}
formatters = {'tags': v2_utils.FlatListColumn}
return (rows, (utils.get_dict_properties(
data, rows, formatters=formatters)))
@ -239,7 +239,7 @@ class CreateMember(command.ShowOne):
if not data['member'].get('vnic_type', False):
data['member']['vnic_type'] = 'normal'
formatters = {'tags': v2_utils.format_list_flat}
formatters = {'tags': v2_utils.FlatListColumn}
return (rows,
(utils.get_dict_properties(

View File

@ -181,11 +181,11 @@ class CreatePool(command.ShowOne):
data['pool']['id']))
}
formatters = {'loadbalancers': v2_utils.format_list,
'members': v2_utils.format_list,
'listeners': v2_utils.format_list,
'session_persistence': v2_utils.format_hash,
'tags': v2_utils.format_list_flat}
formatters = {'loadbalancers': v2_utils.ListColumn,
'members': v2_utils.ListColumn,
'listeners': v2_utils.ListColumn,
'session_persistence': v2_utils.HashColumn,
'tags': v2_utils.FlatListColumn}
return (rows, (utils.get_dict_properties(
data['pool'], rows, formatters=formatters,
@ -244,9 +244,9 @@ class ListPool(lister.Lister):
columns = const.POOL_COLUMNS
attrs = v2_utils.get_pool_attrs(self.app.client_manager, parsed_args)
data = self.app.client_manager.load_balancer.pool_list(**attrs)
formatters = {'loadbalancers': v2_utils.format_list,
'members': v2_utils.format_list,
'listeners': v2_utils.format_list}
formatters = {'loadbalancers': v2_utils.ListColumn,
'members': v2_utils.ListColumn,
'listeners': v2_utils.ListColumn}
return (columns,
(utils.get_dict_properties(
@ -284,11 +284,11 @@ class ShowPool(command.ShowOne):
data = self.app.client_manager.load_balancer.pool_show(
pool_id=pool_id,
)
formatters = {'loadbalancers': v2_utils.format_list,
'members': v2_utils.format_list,
'listeners': v2_utils.format_list,
'session_persistence': v2_utils.format_hash,
'tags': v2_utils.format_list_flat}
formatters = {'loadbalancers': v2_utils.ListColumn,
'members': v2_utils.ListColumn,
'listeners': v2_utils.ListColumn,
'session_persistence': v2_utils.HashColumn,
'tags': v2_utils.FlatListColumn}
return (rows, (utils.get_dict_properties(
data, rows, formatters=formatters,

View File

@ -45,7 +45,7 @@ class ListQuota(lister.Lister):
attrs = v2_utils.get_listener_attrs(self.app.client_manager,
parsed_args)
data = self.app.client_manager.load_balancer.quota_list(**attrs)
formatters = {'quotas': v2_utils.format_list}
formatters = {'quotas': v2_utils.ListColumn}
return (columns,
(utils.get_dict_properties(s, columns, formatters=formatters)
for s in data['quotas']))

View File

@ -14,6 +14,7 @@
import functools
import ipaddress
from cliff import columns
from openstackclient.identity import common as identity_common
from osc_lib import exceptions as osc_exc
from osc_lib import utils
@ -702,16 +703,31 @@ def format_list(data):
return '\n'.join(i['id'] for i in data)
class ListColumn(columns.FormattableColumn):
def human_readable(self):
return format_list(self._value)
def format_list_flat(data):
return '\n'.join(i for i in data)
class FlatListColumn(columns.FormattableColumn):
def human_readable(self):
return format_list_flat(self._value)
def format_hash(data):
if data:
return '\n'.join('{}={}'.format(k, v) for k, v in data.items())
return None
class HashColumn(columns.FormattableColumn):
def human_readable(self):
return format_hash(self._value)
def _format_kv(data):
formatted_kv = {}
values = data.split(',')