Stop using deprecated format_* from osc_utils

Added our own formatter which replaces the deprecated/removed one.
It's contents are essentially format_dict from osc-lib 3.2.0 stuffed
into a cliff column object.

Change-Id: If28bda0a11f3e4a0d02a6a52040e8ca65611822f
This commit is contained in:
Jay Faulkner 2025-05-13 09:36:34 -07:00
parent ed96fad47a
commit e786c8cdd1
10 changed files with 35 additions and 10 deletions

View File

@ -25,6 +25,7 @@ import sys
import tempfile
import time
from cliff import columns
from oslo_utils import strutils
import yaml
@ -462,3 +463,26 @@ def get_json_data(data):
return json.loads(data)
except ValueError:
return None
def format_hash(data):
if data is None:
return None
output = ""
for s in sorted(data):
key_str = s
if isinstance(data[s], dict):
# NOTE(dtroyer): Only append the separator chars here, quoting
# is completely handled in the terminal case.
output = output + format_hash(data[s], prefix=key_str) + ", "
elif data[s] is not None:
output = output + key_str + "='" + str(data[s]) + "', "
else:
output = output + key_str + "=, "
return output[:-2]
class HashColumn(columns.FormattableColumn):
def human_readable(self):
return format_hash(self._value)

View File

@ -190,7 +190,7 @@ class ListBaremetalChassis(command.Lister):
return (labels,
(oscutils.get_item_properties(s, columns, formatters={
'Properties': oscutils.format_dict},) for s in data))
'Properties': utils.HashColumn},) for s in data))
class SetBaremetalChassis(command.Command):

View File

@ -21,6 +21,7 @@ from osc_lib.command import command
from osc_lib import utils as oscutils
from ironicclient.common.i18n import _
from ironicclient.common import utils
from ironicclient import exc
from ironicclient.v1 import resource_fields as res_fields
@ -106,7 +107,7 @@ class ListBaremetalConductor(command.Lister):
return (labels,
(oscutils.get_item_properties(s, columns, formatters={
'Properties': oscutils.format_dict},) for s in data))
'Properties': utils.HashColumn},) for s in data))
class ShowBaremetalConductor(command.ShowOne):

View File

@ -925,7 +925,7 @@ class ListBaremetalNode(command.Lister):
return (labels,
(oscutils.get_item_properties(s, columns, formatters={
'Properties': oscutils.format_dict},) for s in data))
'Properties': utils.HashColumn},) for s in data))
class MaintenanceSetBaremetalNode(command.Command):

View File

@ -572,4 +572,4 @@ class ListBaremetalPort(command.Lister):
return (labels,
(oscutils.get_item_properties(s, columns, formatters={
'extra': oscutils.format_dict},) for s in data))
'extra': utils.HashColumn},) for s in data))

View File

@ -252,7 +252,7 @@ class ListBaremetalPortGroup(command.Lister):
return (labels,
(oscutils.get_item_properties(s, columns, formatters={
'Properties': oscutils.format_dict},) for s in data))
'Properties': utils.HashColumn},) for s in data))
class DeleteBaremetalPortGroup(command.Command):

View File

@ -218,7 +218,7 @@ class ListBaremetalVolumeConnector(command.Lister):
return (labels,
(oscutils.get_item_properties(s, columns, formatters={
'Properties': oscutils.format_dict},) for s in data))
'Properties': utils.HashColumn},) for s in data))
class DeleteBaremetalVolumeConnector(command.Command):

View File

@ -234,7 +234,7 @@ class ListBaremetalVolumeTarget(command.Lister):
return (labels,
(oscutils.get_item_properties(s, columns, formatters={
'Properties': oscutils.format_dict},) for s in data))
'Properties': utils.HashColumn},) for s in data))
class DeleteBaremetalVolumeTarget(command.Command):

View File

@ -18,8 +18,8 @@ import copy
from unittest import mock
from osc_lib.tests import utils as osctestutils
from osc_lib import utils as oscutils
from ironicclient.common import utils
from ironicclient import exc
from ironicclient.osc.v1 import baremetal_port
from ironicclient.tests.unit.osc.v1 import fakes as baremetal_fakes
@ -868,7 +868,7 @@ class TestBaremetalPortList(TestBaremetalPort):
baremetal_fakes.baremetal_port_uuid,
baremetal_fakes.baremetal_port_address,
'',
oscutils.format_dict(baremetal_fakes.baremetal_port_extra),
utils.HashColumn(baremetal_fakes.baremetal_port_extra),
baremetal_fakes.baremetal_uuid,
'',
'',

View File

@ -2240,7 +2240,7 @@ class NodeManagerTest(testtools.TestCase):
mock_get.side_effect = side_effect
self.assertRaisesRegex(exc.StateTransitionTimeout,
r'Node\(s\) node2',
r'.*node2.*',
self.mgr.wait_for_provision_state,
['node1', 'node2'], 'active',
timeout=0.001)