Fix field names for selection and json
Whenever we list baremetal nodes with JSON format, there's an inconsisency between the field names specified in the command and the field names returned in the JSON output. Users request field names (e.g. created_at) it should return as created_at not (e.g. Created At) pretty Json format response. This change modifies the ListBaremetalNode.take_action() to return the field name (columns) instead of pretty labels. So that input and output remains consistent. Updated all the repeative objects to match change made in the ListBaremetalNode.take_action() and removed unused labels using Claude. Closes-bug: #2138466 Change-Id: Ia66f08a020ecf932f21775939c9b436ec147d738 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> Signed-off-by: Abhishek Bongale <abhishekbongale@outlook.com>
This commit is contained in:
@@ -231,23 +231,20 @@ class ListBaremetalAllocation(command.Lister):
|
||||
|
||||
if parsed_args.long:
|
||||
columns = res_fields.ALLOCATION_DETAILED_RESOURCE.fields
|
||||
labels = res_fields.ALLOCATION_DETAILED_RESOURCE.labels
|
||||
elif parsed_args.fields:
|
||||
fields = itertools.chain.from_iterable(parsed_args.fields)
|
||||
resource = res_fields.Resource(list(fields))
|
||||
columns = resource.fields
|
||||
labels = resource.labels
|
||||
params['fields'] = columns
|
||||
else:
|
||||
columns = res_fields.ALLOCATION_RESOURCE.fields
|
||||
labels = res_fields.ALLOCATION_RESOURCE.labels
|
||||
|
||||
self.log.debug("params(%s)", params)
|
||||
data = client.allocation.list(**params)
|
||||
|
||||
data = oscutils.sort_items(data, parsed_args.sort)
|
||||
|
||||
return (labels,
|
||||
return (columns,
|
||||
(oscutils.get_item_properties(s, columns) for s in data))
|
||||
|
||||
|
||||
|
||||
@@ -162,7 +162,6 @@ class ListBaremetalChassis(command.Lister):
|
||||
client = self.app.client_manager.baremetal
|
||||
|
||||
columns = res_fields.CHASSIS_RESOURCE.fields
|
||||
labels = res_fields.CHASSIS_RESOURCE.labels
|
||||
|
||||
params = {}
|
||||
if parsed_args.limit is not None and parsed_args.limit < 0:
|
||||
@@ -174,13 +173,11 @@ class ListBaremetalChassis(command.Lister):
|
||||
if parsed_args.long:
|
||||
params['detail'] = parsed_args.long
|
||||
columns = res_fields.CHASSIS_DETAILED_RESOURCE.fields
|
||||
labels = res_fields.CHASSIS_DETAILED_RESOURCE.labels
|
||||
elif parsed_args.fields:
|
||||
params['detail'] = False
|
||||
fields = itertools.chain.from_iterable(parsed_args.fields)
|
||||
resource = res_fields.Resource(list(fields))
|
||||
columns = resource.fields
|
||||
labels = resource.labels
|
||||
params['fields'] = columns
|
||||
|
||||
self.log.debug("params(%s)", params)
|
||||
@@ -188,7 +185,7 @@ class ListBaremetalChassis(command.Lister):
|
||||
|
||||
data = oscutils.sort_items(data, parsed_args.sort)
|
||||
|
||||
return (labels,
|
||||
return (columns,
|
||||
(oscutils.get_item_properties(s, columns, formatters={
|
||||
'Properties': utils.HashColumn},) for s in data))
|
||||
|
||||
|
||||
@@ -79,7 +79,6 @@ class ListBaremetalConductor(command.Lister):
|
||||
client = self.app.client_manager.baremetal
|
||||
|
||||
columns = res_fields.CONDUCTOR_RESOURCE.fields
|
||||
labels = res_fields.CONDUCTOR_RESOURCE.labels
|
||||
|
||||
params = {}
|
||||
if parsed_args.limit is not None and parsed_args.limit < 0:
|
||||
@@ -91,13 +90,11 @@ class ListBaremetalConductor(command.Lister):
|
||||
if parsed_args.long:
|
||||
params['detail'] = parsed_args.long
|
||||
columns = res_fields.CONDUCTOR_DETAILED_RESOURCE.fields
|
||||
labels = res_fields.CONDUCTOR_DETAILED_RESOURCE.labels
|
||||
elif parsed_args.fields:
|
||||
params['detail'] = False
|
||||
fields = itertools.chain.from_iterable(parsed_args.fields)
|
||||
resource = res_fields.Resource(list(fields))
|
||||
columns = resource.fields
|
||||
labels = resource.labels
|
||||
params['fields'] = columns
|
||||
|
||||
self.log.debug("params(%s)", params)
|
||||
@@ -105,7 +102,7 @@ class ListBaremetalConductor(command.Lister):
|
||||
|
||||
data = oscutils.sort_items(data, parsed_args.sort)
|
||||
|
||||
return (labels,
|
||||
return (columns,
|
||||
(oscutils.get_item_properties(s, columns, formatters={
|
||||
'Properties': utils.HashColumn},) for s in data))
|
||||
|
||||
|
||||
@@ -313,7 +313,6 @@ class ListBaremetalDeployTemplate(command.Lister):
|
||||
client = self.app.client_manager.baremetal
|
||||
|
||||
columns = res_fields.DEPLOY_TEMPLATE_RESOURCE.fields
|
||||
labels = res_fields.DEPLOY_TEMPLATE_RESOURCE.labels
|
||||
|
||||
params = {}
|
||||
if parsed_args.limit is not None and parsed_args.limit < 0:
|
||||
@@ -326,14 +325,12 @@ class ListBaremetalDeployTemplate(command.Lister):
|
||||
if parsed_args.detail:
|
||||
params['detail'] = parsed_args.detail
|
||||
columns = res_fields.DEPLOY_TEMPLATE_DETAILED_RESOURCE.fields
|
||||
labels = res_fields.DEPLOY_TEMPLATE_DETAILED_RESOURCE.labels
|
||||
|
||||
elif parsed_args.fields:
|
||||
params['detail'] = False
|
||||
fields = itertools.chain.from_iterable(parsed_args.fields)
|
||||
resource = res_fields.Resource(list(fields))
|
||||
columns = resource.fields
|
||||
labels = resource.labels
|
||||
params['fields'] = columns
|
||||
|
||||
self.log.debug("params(%s)", params)
|
||||
@@ -341,5 +338,5 @@ class ListBaremetalDeployTemplate(command.Lister):
|
||||
|
||||
data = oscutils.sort_items(data, parsed_args.sort)
|
||||
|
||||
return (labels,
|
||||
return (columns,
|
||||
(oscutils.get_item_properties(s, columns) for s in data))
|
||||
|
||||
@@ -64,16 +64,13 @@ class ListBaremetalDriver(command.Lister):
|
||||
params = {'driver_type': parsed_args.type,
|
||||
'detail': parsed_args.long}
|
||||
if parsed_args.long:
|
||||
labels = res_fields.DRIVER_DETAILED_RESOURCE.labels
|
||||
columns = res_fields.DRIVER_DETAILED_RESOURCE.fields
|
||||
elif parsed_args.fields:
|
||||
fields = itertools.chain.from_iterable(parsed_args.fields)
|
||||
resource = res_fields.Resource(list(fields))
|
||||
columns = resource.fields
|
||||
labels = resource.labels
|
||||
params['fields'] = columns
|
||||
else:
|
||||
labels = res_fields.DRIVER_RESOURCE.labels
|
||||
columns = res_fields.DRIVER_RESOURCE.fields
|
||||
|
||||
drivers = client.driver.list(**params)
|
||||
@@ -84,7 +81,7 @@ class ListBaremetalDriver(command.Lister):
|
||||
data = [utils.convert_list_props_to_comma_separated(d._info)
|
||||
for d in drivers]
|
||||
|
||||
return (labels,
|
||||
return (columns,
|
||||
(oscutils.get_dict_properties(s, columns) for s in data))
|
||||
|
||||
|
||||
@@ -107,8 +104,8 @@ class ListBaremetalDriverProperty(command.Lister):
|
||||
|
||||
driver_properties = baremetal_client.driver.properties(
|
||||
parsed_args.driver)
|
||||
labels = ['Property', 'Description']
|
||||
return labels, sorted(driver_properties.items())
|
||||
columns = ['property', 'description']
|
||||
return columns, sorted(driver_properties.items())
|
||||
|
||||
|
||||
class ListBaremetalDriverRaidProperty(command.Lister):
|
||||
@@ -131,8 +128,8 @@ class ListBaremetalDriverRaidProperty(command.Lister):
|
||||
|
||||
raid_props = baremetal_client.driver.raid_logical_disk_properties(
|
||||
parsed_args.driver)
|
||||
labels = ['Property', 'Description']
|
||||
return labels, sorted(raid_props.items())
|
||||
columns = ['property', 'description']
|
||||
return columns, sorted(raid_props.items())
|
||||
|
||||
|
||||
class PassthruCallBaremetalDriver(command.ShowOne):
|
||||
@@ -203,7 +200,6 @@ class PassthruListBaremetalDriver(command.Lister):
|
||||
baremetal_client = self.app.client_manager.baremetal
|
||||
|
||||
columns = res_fields.VENDOR_PASSTHRU_METHOD_RESOURCE.fields
|
||||
labels = res_fields.VENDOR_PASSTHRU_METHOD_RESOURCE.labels
|
||||
|
||||
methods = baremetal_client.driver.get_vendor_passthru_methods(
|
||||
parsed_args.driver)
|
||||
@@ -215,7 +211,7 @@ class PassthruListBaremetalDriver(command.Lister):
|
||||
response['http_methods'] = http_methods
|
||||
params.append(response)
|
||||
|
||||
return (labels,
|
||||
return (columns,
|
||||
(oscutils.get_dict_properties(s, columns) for s in params))
|
||||
|
||||
|
||||
|
||||
@@ -380,7 +380,6 @@ class ListBaremetalInspectionRule(command.Lister):
|
||||
client = self.app.client_manager.baremetal
|
||||
|
||||
columns = res_fields.INSPECTION_RULE_RESOURCE.fields
|
||||
labels = res_fields.INSPECTION_RULE_RESOURCE.labels
|
||||
|
||||
params = {}
|
||||
if parsed_args.limit is not None and parsed_args.limit < 0:
|
||||
@@ -393,14 +392,12 @@ class ListBaremetalInspectionRule(command.Lister):
|
||||
if parsed_args.detail:
|
||||
params['detail'] = parsed_args.detail
|
||||
columns = res_fields.INSPECTION_RULE_DETAILED_RESOURCE.fields
|
||||
labels = res_fields.INSPECTION_RULE_DETAILED_RESOURCE.labels
|
||||
|
||||
elif parsed_args.fields:
|
||||
params['detail'] = False
|
||||
fields = itertools.chain.from_iterable(parsed_args.fields)
|
||||
resource = res_fields.Resource(list(fields))
|
||||
columns = resource.fields
|
||||
labels = resource.labels
|
||||
params['fields'] = columns
|
||||
|
||||
self.log.debug("params(%s)", params)
|
||||
@@ -408,5 +405,5 @@ class ListBaremetalInspectionRule(command.Lister):
|
||||
|
||||
data = oscutils.sort_items(data, parsed_args.sort)
|
||||
|
||||
return (labels,
|
||||
return (columns,
|
||||
(oscutils.get_item_properties(s, columns) for s in data))
|
||||
|
||||
@@ -890,7 +890,6 @@ class ListBaremetalNode(command.Lister):
|
||||
client = self.app.client_manager.baremetal
|
||||
|
||||
columns = res_fields.NODE_RESOURCE.fields
|
||||
labels = res_fields.NODE_RESOURCE.labels
|
||||
|
||||
params = {}
|
||||
if parsed_args.limit is not None and parsed_args.limit < 0:
|
||||
@@ -919,13 +918,11 @@ class ListBaremetalNode(command.Lister):
|
||||
if parsed_args.long:
|
||||
params['detail'] = parsed_args.long
|
||||
columns = res_fields.NODE_DETAILED_RESOURCE.fields
|
||||
labels = res_fields.NODE_DETAILED_RESOURCE.labels
|
||||
elif parsed_args.fields:
|
||||
params['detail'] = False
|
||||
fields = itertools.chain.from_iterable(parsed_args.fields)
|
||||
resource = res_fields.Resource(list(fields))
|
||||
columns = resource.fields
|
||||
labels = resource.labels
|
||||
params['fields'] = columns
|
||||
|
||||
self.log.debug("params(%s)", params)
|
||||
@@ -933,7 +930,7 @@ class ListBaremetalNode(command.Lister):
|
||||
|
||||
data = oscutils.sort_items(data, parsed_args.sort)
|
||||
|
||||
return (labels,
|
||||
return (columns,
|
||||
(oscutils.get_item_properties(s, columns, formatters={
|
||||
'Properties': utils.HashColumn},) for s in data))
|
||||
|
||||
@@ -2045,12 +2042,11 @@ class VifListBaremetalNode(command.Lister):
|
||||
self.log.debug("take_action(%s)", parsed_args)
|
||||
|
||||
columns = res_fields.VIF_RESOURCE.fields
|
||||
labels = res_fields.VIF_RESOURCE.labels
|
||||
|
||||
baremetal_client = self.app.client_manager.baremetal
|
||||
data = baremetal_client.node.vif_list(parsed_args.node)
|
||||
|
||||
return (labels,
|
||||
return (columns,
|
||||
(oscutils.get_item_properties(s, columns) for s in data))
|
||||
|
||||
|
||||
@@ -2168,12 +2164,12 @@ class ListTraitsBaremetalNode(command.Lister):
|
||||
def take_action(self, parsed_args):
|
||||
self.log.debug("take_action(%s)", parsed_args)
|
||||
|
||||
labels = res_fields.TRAIT_RESOURCE.labels
|
||||
columns = res_fields.TRAIT_RESOURCE.fields
|
||||
|
||||
baremetal_client = self.app.client_manager.baremetal
|
||||
traits = baremetal_client.node.get_traits(parsed_args.node)
|
||||
|
||||
return (labels, [[trait] for trait in traits])
|
||||
return (columns, [[trait] for trait in traits])
|
||||
|
||||
|
||||
class AddTraitBaremetalNode(command.Command):
|
||||
@@ -2299,20 +2295,17 @@ class ListBIOSSettingBaremetalNode(command.Lister):
|
||||
def take_action(self, parsed_args):
|
||||
self.log.debug("take_action(%s)", parsed_args)
|
||||
|
||||
labels = res_fields.BIOS_RESOURCE.labels
|
||||
fields = res_fields.BIOS_RESOURCE.fields
|
||||
|
||||
params = {}
|
||||
if parsed_args.long:
|
||||
params['detail'] = parsed_args.long
|
||||
fields = res_fields.BIOS_DETAILED_RESOURCE.fields
|
||||
labels = res_fields.BIOS_DETAILED_RESOURCE.labels
|
||||
elif parsed_args.fields:
|
||||
params['detail'] = False
|
||||
fields = itertools.chain.from_iterable(parsed_args.fields)
|
||||
resource = res_fields.Resource(list(fields))
|
||||
fields = resource.fields
|
||||
labels = resource.labels
|
||||
params['fields'] = fields
|
||||
|
||||
self.log.debug("params(%s)", params)
|
||||
@@ -2321,7 +2314,7 @@ class ListBIOSSettingBaremetalNode(command.Lister):
|
||||
settings = baremetal_client.node.list_bios_settings(parsed_args.node,
|
||||
**params)
|
||||
|
||||
return (labels,
|
||||
return (fields,
|
||||
(oscutils.get_dict_properties(s, fields) for s in settings))
|
||||
|
||||
|
||||
@@ -2381,17 +2374,15 @@ class NodeHistoryList(command.Lister):
|
||||
|
||||
baremetal_client = self.app.client_manager.baremetal
|
||||
if parsed_args.long:
|
||||
labels = res_fields.NODE_HISTORY_DETAILED_RESOURCE.labels
|
||||
fields = res_fields.NODE_HISTORY_DETAILED_RESOURCE.fields
|
||||
else:
|
||||
labels = res_fields.NODE_HISTORY_RESOURCE.labels
|
||||
fields = res_fields.NODE_HISTORY_RESOURCE.fields
|
||||
|
||||
data = baremetal_client.node.get_history_list(
|
||||
parsed_args.node,
|
||||
parsed_args.long)
|
||||
|
||||
return (labels,
|
||||
return (fields,
|
||||
(oscutils.get_dict_properties(s, fields) for s in data))
|
||||
|
||||
|
||||
@@ -2481,11 +2472,11 @@ class NodeChildrenList(command.ShowOne):
|
||||
|
||||
baremetal_client = self.app.client_manager.baremetal
|
||||
|
||||
labels = res_fields.CHILDREN_RESOURCE.labels
|
||||
columns = res_fields.CHILDREN_RESOURCE.fields
|
||||
|
||||
data = baremetal_client.node.list_children_of_node(
|
||||
parsed_args.node)
|
||||
return (labels, [[node] for node in data])
|
||||
return (columns, [[node] for node in data])
|
||||
|
||||
|
||||
class ListFirmwareComponentBaremetalNode(command.Lister):
|
||||
@@ -2507,12 +2498,11 @@ class ListFirmwareComponentBaremetalNode(command.Lister):
|
||||
def take_action(self, parsed_args):
|
||||
self.log.debug("take_action(%s)", parsed_args)
|
||||
|
||||
labels = res_fields.FIRMWARE_RESOURCE.labels
|
||||
fields = res_fields.FIRMWARE_RESOURCE.fields
|
||||
|
||||
baremetal_client = self.app.client_manager.baremetal
|
||||
components = baremetal_client.node.list_firmware_components(
|
||||
parsed_args.node)
|
||||
|
||||
return (labels,
|
||||
return (fields,
|
||||
(oscutils.get_dict_properties(s, fields) for s in components))
|
||||
|
||||
@@ -563,7 +563,6 @@ class ListBaremetalPort(command.Lister):
|
||||
client = self.app.client_manager.baremetal
|
||||
|
||||
columns = res_fields.PORT_RESOURCE.fields
|
||||
labels = res_fields.PORT_RESOURCE.labels
|
||||
|
||||
params = {}
|
||||
if parsed_args.limit is not None and parsed_args.limit < 0:
|
||||
@@ -583,14 +582,12 @@ class ListBaremetalPort(command.Lister):
|
||||
if parsed_args.detail:
|
||||
params['detail'] = parsed_args.detail
|
||||
columns = res_fields.PORT_DETAILED_RESOURCE.fields
|
||||
labels = res_fields.PORT_DETAILED_RESOURCE.labels
|
||||
|
||||
elif parsed_args.fields:
|
||||
params['detail'] = False
|
||||
fields = itertools.chain.from_iterable(parsed_args.fields)
|
||||
resource = res_fields.Resource(list(fields))
|
||||
columns = resource.fields
|
||||
labels = resource.labels
|
||||
params['fields'] = columns
|
||||
|
||||
self.log.debug("params(%s)", params)
|
||||
@@ -598,6 +595,6 @@ class ListBaremetalPort(command.Lister):
|
||||
|
||||
data = oscutils.sort_items(data, parsed_args.sort)
|
||||
|
||||
return (labels,
|
||||
return (columns,
|
||||
(oscutils.get_item_properties(s, columns, formatters={
|
||||
'extra': utils.HashColumn},) for s in data))
|
||||
|
||||
@@ -235,7 +235,6 @@ class ListBaremetalPortGroup(command.Lister):
|
||||
client = self.app.client_manager.baremetal
|
||||
|
||||
columns = res_fields.PORTGROUP_RESOURCE.fields
|
||||
labels = res_fields.PORTGROUP_RESOURCE.labels
|
||||
|
||||
params = {}
|
||||
if parsed_args.limit is not None and parsed_args.limit < 0:
|
||||
@@ -254,13 +253,11 @@ class ListBaremetalPortGroup(command.Lister):
|
||||
if parsed_args.detail:
|
||||
params['detail'] = parsed_args.detail
|
||||
columns = res_fields.PORTGROUP_DETAILED_RESOURCE.fields
|
||||
labels = res_fields.PORTGROUP_DETAILED_RESOURCE.labels
|
||||
elif parsed_args.fields:
|
||||
params['detail'] = False
|
||||
fields = itertools.chain.from_iterable(parsed_args.fields)
|
||||
resource = res_fields.Resource(list(fields))
|
||||
columns = resource.fields
|
||||
labels = resource.labels
|
||||
params['fields'] = columns
|
||||
|
||||
self.log.debug("params(%s)", params)
|
||||
@@ -268,7 +265,7 @@ class ListBaremetalPortGroup(command.Lister):
|
||||
|
||||
data = oscutils.sort_items(data, parsed_args.sort)
|
||||
|
||||
return (labels,
|
||||
return (columns,
|
||||
(oscutils.get_item_properties(s, columns, formatters={
|
||||
'Properties': utils.HashColumn},) for s in data))
|
||||
|
||||
|
||||
@@ -382,7 +382,6 @@ class ListBaremetalRunbook(command.Lister):
|
||||
client = self.app.client_manager.baremetal
|
||||
|
||||
columns = res_fields.RUNBOOK_RESOURCE.fields
|
||||
labels = res_fields.RUNBOOK_RESOURCE.labels
|
||||
|
||||
params = {}
|
||||
if parsed_args.limit is not None and parsed_args.limit < 0:
|
||||
@@ -395,14 +394,12 @@ class ListBaremetalRunbook(command.Lister):
|
||||
if parsed_args.detail:
|
||||
params['detail'] = parsed_args.detail
|
||||
columns = res_fields.RUNBOOK_DETAILED_RESOURCE.fields
|
||||
labels = res_fields.RUNBOOK_DETAILED_RESOURCE.labels
|
||||
|
||||
elif parsed_args.fields:
|
||||
params['detail'] = False
|
||||
fields = itertools.chain.from_iterable(parsed_args.fields)
|
||||
resource = res_fields.Resource(list(fields))
|
||||
columns = resource.fields
|
||||
labels = resource.labels
|
||||
params['fields'] = columns
|
||||
|
||||
self.log.debug("params(%s)", params)
|
||||
@@ -410,5 +407,5 @@ class ListBaremetalRunbook(command.Lister):
|
||||
|
||||
data = oscutils.sort_items(data, parsed_args.sort)
|
||||
|
||||
return (labels,
|
||||
return (columns,
|
||||
(oscutils.get_item_properties(s, columns) for s in data))
|
||||
|
||||
@@ -30,7 +30,6 @@ class ListBaremetalShard(command.Lister):
|
||||
|
||||
data = client.shard.list()
|
||||
columns = res_fields.SHARD_RESOURCE.fields
|
||||
labels = res_fields.SHARD_RESOURCE.labels
|
||||
|
||||
return (labels,
|
||||
return (columns,
|
||||
(oscutils.get_item_properties(s, columns) for s in data))
|
||||
|
||||
@@ -187,7 +187,6 @@ class ListBaremetalVolumeConnector(command.Lister):
|
||||
client = self.app.client_manager.baremetal
|
||||
|
||||
columns = res_fields.VOLUME_CONNECTOR_RESOURCE.fields
|
||||
labels = res_fields.VOLUME_CONNECTOR_RESOURCE.labels
|
||||
|
||||
params = {}
|
||||
if parsed_args.limit is not None and parsed_args.limit < 0:
|
||||
@@ -202,13 +201,11 @@ class ListBaremetalVolumeConnector(command.Lister):
|
||||
if parsed_args.detail:
|
||||
params['detail'] = parsed_args.detail
|
||||
columns = res_fields.VOLUME_CONNECTOR_DETAILED_RESOURCE.fields
|
||||
labels = res_fields.VOLUME_CONNECTOR_DETAILED_RESOURCE.labels
|
||||
elif parsed_args.fields:
|
||||
params['detail'] = False
|
||||
fields = itertools.chain.from_iterable(parsed_args.fields)
|
||||
resource = res_fields.Resource(list(fields))
|
||||
columns = resource.fields
|
||||
labels = resource.labels
|
||||
params['fields'] = columns
|
||||
|
||||
self.log.debug("params(%s)" % params)
|
||||
@@ -216,7 +213,7 @@ class ListBaremetalVolumeConnector(command.Lister):
|
||||
|
||||
data = oscutils.sort_items(data, parsed_args.sort)
|
||||
|
||||
return (labels,
|
||||
return (columns,
|
||||
(oscutils.get_item_properties(s, columns, formatters={
|
||||
'Properties': utils.HashColumn},) for s in data))
|
||||
|
||||
|
||||
@@ -203,7 +203,6 @@ class ListBaremetalVolumeTarget(command.Lister):
|
||||
client = self.app.client_manager.baremetal
|
||||
|
||||
columns = res_fields.VOLUME_TARGET_RESOURCE.fields
|
||||
labels = res_fields.VOLUME_TARGET_RESOURCE.labels
|
||||
|
||||
params = {}
|
||||
if parsed_args.limit is not None and parsed_args.limit < 0:
|
||||
@@ -218,13 +217,11 @@ class ListBaremetalVolumeTarget(command.Lister):
|
||||
if parsed_args.detail:
|
||||
params['detail'] = parsed_args.detail
|
||||
columns = res_fields.VOLUME_TARGET_DETAILED_RESOURCE.fields
|
||||
labels = res_fields.VOLUME_TARGET_DETAILED_RESOURCE.labels
|
||||
elif parsed_args.fields:
|
||||
params['detail'] = False
|
||||
fields = itertools.chain.from_iterable(parsed_args.fields)
|
||||
resource = res_fields.Resource(list(fields))
|
||||
columns = resource.fields
|
||||
labels = resource.labels
|
||||
params['fields'] = columns
|
||||
|
||||
self.log.debug("params(%s)" % params)
|
||||
@@ -232,7 +229,7 @@ class ListBaremetalVolumeTarget(command.Lister):
|
||||
|
||||
data = oscutils.sort_items(data, parsed_args.sort)
|
||||
|
||||
return (labels,
|
||||
return (columns,
|
||||
(oscutils.get_item_properties(s, columns, formatters={
|
||||
'Properties': utils.HashColumn},) for s in data))
|
||||
|
||||
|
||||
@@ -294,11 +294,11 @@ class TestBaremetalAllocationList(TestBaremetalAllocation):
|
||||
self.baremetal_mock.allocation.list.assert_called_with(**kwargs)
|
||||
|
||||
collist = (
|
||||
"UUID",
|
||||
"Name",
|
||||
"Resource Class",
|
||||
"State",
|
||||
"Node UUID")
|
||||
"uuid",
|
||||
"name",
|
||||
"resource_class",
|
||||
"state",
|
||||
"node_uuid")
|
||||
self.assertEqual(collist, columns)
|
||||
|
||||
datalist = ((baremetal_fakes.baremetal_uuid,
|
||||
@@ -322,11 +322,11 @@ class TestBaremetalAllocationList(TestBaremetalAllocation):
|
||||
self.baremetal_mock.allocation.list.assert_called_once_with(**kwargs)
|
||||
|
||||
collist = (
|
||||
"UUID",
|
||||
"Name",
|
||||
"Resource Class",
|
||||
"State",
|
||||
"Node UUID")
|
||||
"uuid",
|
||||
"name",
|
||||
"resource_class",
|
||||
"state",
|
||||
"node_uuid")
|
||||
self.assertEqual(collist, columns)
|
||||
|
||||
datalist = ((baremetal_fakes.baremetal_uuid,
|
||||
@@ -352,11 +352,11 @@ class TestBaremetalAllocationList(TestBaremetalAllocation):
|
||||
self.baremetal_mock.allocation.list.assert_called_once_with(**kwargs)
|
||||
|
||||
collist = (
|
||||
"UUID",
|
||||
"Name",
|
||||
"Resource Class",
|
||||
"State",
|
||||
"Node UUID")
|
||||
"uuid",
|
||||
"name",
|
||||
"resource_class",
|
||||
"state",
|
||||
"node_uuid")
|
||||
self.assertEqual(collist, columns)
|
||||
|
||||
datalist = ((baremetal_fakes.baremetal_uuid,
|
||||
@@ -382,11 +382,11 @@ class TestBaremetalAllocationList(TestBaremetalAllocation):
|
||||
self.baremetal_mock.allocation.list.assert_called_once_with(**kwargs)
|
||||
|
||||
collist = (
|
||||
"UUID",
|
||||
"Name",
|
||||
"Resource Class",
|
||||
"State",
|
||||
"Node UUID")
|
||||
"uuid",
|
||||
"name",
|
||||
"resource_class",
|
||||
"state",
|
||||
"node_uuid")
|
||||
self.assertEqual(collist, columns)
|
||||
|
||||
datalist = ((baremetal_fakes.baremetal_uuid,
|
||||
@@ -410,11 +410,11 @@ class TestBaremetalAllocationList(TestBaremetalAllocation):
|
||||
self.baremetal_mock.allocation.list.assert_called_once_with(**kwargs)
|
||||
|
||||
collist = (
|
||||
"UUID",
|
||||
"Name",
|
||||
"Resource Class",
|
||||
"State",
|
||||
"Node UUID")
|
||||
"uuid",
|
||||
"name",
|
||||
"resource_class",
|
||||
"state",
|
||||
"node_uuid")
|
||||
self.assertEqual(collist, columns)
|
||||
|
||||
datalist = ((baremetal_fakes.baremetal_uuid,
|
||||
@@ -437,18 +437,18 @@ class TestBaremetalAllocationList(TestBaremetalAllocation):
|
||||
}
|
||||
self.baremetal_mock.allocation.list.assert_called_once_with(**kwargs)
|
||||
|
||||
collist = ('UUID',
|
||||
'Name',
|
||||
'State',
|
||||
'Owner',
|
||||
'Node UUID',
|
||||
'Last Error',
|
||||
'Resource Class',
|
||||
'Traits',
|
||||
'Candidate Nodes',
|
||||
'Extra',
|
||||
'Created At',
|
||||
'Updated At')
|
||||
collist = ('uuid',
|
||||
'name',
|
||||
'state',
|
||||
'owner',
|
||||
'node_uuid',
|
||||
'last_error',
|
||||
'resource_class',
|
||||
'traits',
|
||||
'candidate_nodes',
|
||||
'extra',
|
||||
'created_at',
|
||||
'updated_at')
|
||||
self.assertEqual(collist, columns)
|
||||
|
||||
datalist = ((baremetal_fakes.baremetal_uuid,
|
||||
|
||||
@@ -209,8 +209,8 @@ class TestChassisList(TestChassis):
|
||||
)
|
||||
|
||||
collist = (
|
||||
"UUID",
|
||||
"Description",
|
||||
"uuid",
|
||||
"description",
|
||||
)
|
||||
self.assertEqual(collist, columns)
|
||||
datalist = ((
|
||||
@@ -243,7 +243,7 @@ class TestChassisList(TestChassis):
|
||||
**kwargs
|
||||
)
|
||||
|
||||
collist = ('UUID', 'Description', 'Created At', 'Updated At', 'Extra')
|
||||
collist = ('uuid', 'description', 'created_at', 'updated_at', 'extra')
|
||||
self.assertEqual(collist, columns)
|
||||
datalist = ((
|
||||
baremetal_fakes.baremetal_chassis_uuid,
|
||||
|
||||
@@ -64,9 +64,9 @@ class TestBaremetalConductorList(TestBaremetalConductor):
|
||||
)
|
||||
|
||||
collist = (
|
||||
"Hostname",
|
||||
"Conductor Group",
|
||||
"Alive",
|
||||
"hostname",
|
||||
"conductor_group",
|
||||
"alive",
|
||||
)
|
||||
self.assertEqual(collist, columns)
|
||||
datalist = ((
|
||||
@@ -100,21 +100,21 @@ class TestBaremetalConductorList(TestBaremetalConductor):
|
||||
**kwargs
|
||||
)
|
||||
|
||||
collist = [
|
||||
'Hostname',
|
||||
'Conductor Group',
|
||||
'Alive',
|
||||
'Drivers',
|
||||
'Created At',
|
||||
'Updated At',
|
||||
]
|
||||
self.assertEqual(tuple(collist), columns)
|
||||
collist = tuple([
|
||||
'hostname',
|
||||
'conductor_group',
|
||||
'alive',
|
||||
'drivers',
|
||||
'created_at',
|
||||
'updated_at',
|
||||
])
|
||||
self.assertEqual(collist, columns)
|
||||
|
||||
fake_values = {
|
||||
'Hostname': baremetal_fakes.baremetal_hostname,
|
||||
'Conductor Group': baremetal_fakes.baremetal_conductor_group,
|
||||
'Alive': baremetal_fakes.baremetal_alive,
|
||||
'Drivers': baremetal_fakes.baremetal_drivers,
|
||||
'hostname': baremetal_fakes.baremetal_hostname,
|
||||
'conductor_group': baremetal_fakes.baremetal_conductor_group,
|
||||
'alive': baremetal_fakes.baremetal_alive,
|
||||
'drivers': baremetal_fakes.baremetal_drivers,
|
||||
}
|
||||
values = tuple(fake_values.get(name, '') for name in collist)
|
||||
self.assertEqual((values,), tuple(data))
|
||||
|
||||
@@ -374,8 +374,8 @@ class TestBaremetalDeployTemplateList(TestBaremetalDeployTemplate):
|
||||
self.baremetal_mock.deploy_template.list.assert_called_with(**kwargs)
|
||||
|
||||
collist = (
|
||||
"UUID",
|
||||
"Name")
|
||||
"uuid",
|
||||
"name")
|
||||
self.assertEqual(collist, columns)
|
||||
|
||||
datalist = ((
|
||||
@@ -398,8 +398,8 @@ class TestBaremetalDeployTemplateList(TestBaremetalDeployTemplate):
|
||||
}
|
||||
self.baremetal_mock.deploy_template.list.assert_called_with(**kwargs)
|
||||
|
||||
collist = ('UUID', 'Name', 'Steps', 'Extra', 'Created At',
|
||||
'Updated At')
|
||||
collist = ('uuid', 'name', 'steps', 'extra', 'created_at',
|
||||
'updated_at')
|
||||
self.assertEqual(collist, columns)
|
||||
|
||||
datalist = ((
|
||||
|
||||
@@ -51,8 +51,8 @@ class TestListBaremetalDriver(TestBaremetalDriver):
|
||||
columns, data = self.cmd.take_action(parsed_args)
|
||||
|
||||
collist = (
|
||||
"Supported driver(s)",
|
||||
"Active host(s)")
|
||||
"name",
|
||||
"hosts")
|
||||
self.assertEqual(collist, tuple(columns))
|
||||
|
||||
datalist = ((
|
||||
@@ -68,8 +68,8 @@ class TestListBaremetalDriver(TestBaremetalDriver):
|
||||
columns, data = self.cmd.take_action(parsed_args)
|
||||
|
||||
collist = (
|
||||
"Supported driver(s)",
|
||||
"Active host(s)")
|
||||
"name",
|
||||
"hosts")
|
||||
self.assertEqual(collist, tuple(columns))
|
||||
|
||||
datalist = ((
|
||||
@@ -85,35 +85,35 @@ class TestListBaremetalDriver(TestBaremetalDriver):
|
||||
columns, data = self.cmd.take_action(parsed_args)
|
||||
|
||||
collist = (
|
||||
"Supported driver(s)",
|
||||
"Type",
|
||||
"Active host(s)",
|
||||
'Default BIOS Interface',
|
||||
'Default Boot Interface',
|
||||
'Default Console Interface',
|
||||
'Default Deploy Interface',
|
||||
'Default Firmware Interface',
|
||||
'Default Inspect Interface',
|
||||
'Default Management Interface',
|
||||
'Default Network Interface',
|
||||
'Default Power Interface',
|
||||
'Default RAID Interface',
|
||||
'Default Rescue Interface',
|
||||
'Default Storage Interface',
|
||||
'Default Vendor Interface',
|
||||
'Enabled BIOS Interfaces',
|
||||
'Enabled Boot Interfaces',
|
||||
'Enabled Console Interfaces',
|
||||
'Enabled Deploy Interfaces',
|
||||
'Enabled Firmware Interfaces',
|
||||
'Enabled Inspect Interfaces',
|
||||
'Enabled Management Interfaces',
|
||||
'Enabled Network Interfaces',
|
||||
'Enabled Power Interfaces',
|
||||
'Enabled RAID Interfaces',
|
||||
'Enabled Rescue Interfaces',
|
||||
'Enabled Storage Interfaces',
|
||||
'Enabled Vendor Interfaces'
|
||||
"name",
|
||||
"type",
|
||||
"hosts",
|
||||
'default_bios_interface',
|
||||
'default_boot_interface',
|
||||
'default_console_interface',
|
||||
'default_deploy_interface',
|
||||
'default_firmware_interface',
|
||||
'default_inspect_interface',
|
||||
'default_management_interface',
|
||||
'default_network_interface',
|
||||
'default_power_interface',
|
||||
'default_raid_interface',
|
||||
'default_rescue_interface',
|
||||
'default_storage_interface',
|
||||
'default_vendor_interface',
|
||||
'enabled_bios_interfaces',
|
||||
'enabled_boot_interfaces',
|
||||
'enabled_console_interfaces',
|
||||
'enabled_deploy_interfaces',
|
||||
'enabled_firmware_interfaces',
|
||||
'enabled_inspect_interfaces',
|
||||
'enabled_management_interfaces',
|
||||
'enabled_network_interfaces',
|
||||
'enabled_power_interfaces',
|
||||
'enabled_raid_interfaces',
|
||||
'enabled_rescue_interfaces',
|
||||
'enabled_storage_interfaces',
|
||||
'enabled_vendor_interfaces'
|
||||
)
|
||||
self.assertEqual(collist, tuple(columns))
|
||||
|
||||
@@ -232,7 +232,7 @@ class TestListBaremetalDriverProperty(TestBaremetalDriver):
|
||||
columns, data = self.cmd.take_action(parsed_args)
|
||||
self.baremetal_mock.driver.properties.assert_called_with(*arglist)
|
||||
|
||||
collist = ['Property', 'Description']
|
||||
collist = ['property', 'description']
|
||||
self.assertEqual(collist, columns)
|
||||
expected_data = [('property1', 'description1'),
|
||||
('property2', 'description2')]
|
||||
@@ -272,7 +272,7 @@ class TestListBaremetalDriverRaidProperty(TestBaremetalDriver):
|
||||
(self.baremetal_mock.driver.
|
||||
raid_logical_disk_properties.assert_called_with(*arglist))
|
||||
|
||||
collist = ('Property', 'Description')
|
||||
collist = ('property', 'description')
|
||||
self.assertEqual(collist, tuple(columns))
|
||||
|
||||
expected_data = [('RAIDProperty1', 'driver_raid_property1'),
|
||||
@@ -388,11 +388,11 @@ class TestPassthruListBaremetalDriver(TestBaremetalDriver):
|
||||
assert_called_with(*args))
|
||||
|
||||
collist = (
|
||||
"Name",
|
||||
"Supported HTTP methods",
|
||||
"Async",
|
||||
"Description",
|
||||
"Response is attachment",
|
||||
"name",
|
||||
"http_methods",
|
||||
"async",
|
||||
"description",
|
||||
"attach",
|
||||
)
|
||||
self.assertEqual(collist, tuple(columns))
|
||||
|
||||
|
||||
@@ -1101,12 +1101,12 @@ class TestBaremetalList(TestBaremetal):
|
||||
)
|
||||
|
||||
collist = (
|
||||
"UUID",
|
||||
"Name",
|
||||
"Instance UUID",
|
||||
"Power State",
|
||||
"Provisioning State",
|
||||
"Maintenance",
|
||||
"uuid",
|
||||
"name",
|
||||
"instance_uuid",
|
||||
"power_state",
|
||||
"provision_state",
|
||||
"maintenance",
|
||||
)
|
||||
self.assertEqual(collist, columns)
|
||||
datalist = ((
|
||||
@@ -1142,83 +1142,80 @@ class TestBaremetalList(TestBaremetal):
|
||||
self.baremetal_mock.node.list.assert_called_with(
|
||||
**kwargs
|
||||
)
|
||||
|
||||
# NOTE(dtantsur): please keep this list sorted for sanity reasons
|
||||
collist = [
|
||||
'Allocation UUID',
|
||||
'Automated Clean',
|
||||
'BIOS Interface',
|
||||
'Boot Interface',
|
||||
'Boot Mode',
|
||||
'Chassis UUID',
|
||||
'Clean Step',
|
||||
'Conductor',
|
||||
'Conductor Group',
|
||||
'Console Enabled',
|
||||
'Console Interface',
|
||||
'Created At',
|
||||
'Current RAID configuration',
|
||||
'Deploy Interface',
|
||||
'Deploy Step',
|
||||
'Description',
|
||||
'Disable Power Off',
|
||||
'Driver',
|
||||
'Driver Info',
|
||||
'Driver Internal Info',
|
||||
'Extra',
|
||||
'Fault',
|
||||
'Firmware Interface',
|
||||
'Health',
|
||||
'Inspect Interface',
|
||||
'Inspection Finished At',
|
||||
'Inspection Started At',
|
||||
'Instance Info',
|
||||
'Instance Name',
|
||||
'Instance UUID',
|
||||
'Last Error',
|
||||
'Lessee',
|
||||
'Maintenance',
|
||||
'Maintenance Reason',
|
||||
'Management Interface',
|
||||
'Name',
|
||||
'Network Configuration',
|
||||
'Network Interface',
|
||||
'Owner',
|
||||
'Parent Node',
|
||||
'Power Interface',
|
||||
'Power State',
|
||||
'Properties',
|
||||
'Protected',
|
||||
'Protected Reason',
|
||||
'Provision Updated At',
|
||||
'Provisioning State',
|
||||
'RAID Interface',
|
||||
'Rescue Interface',
|
||||
'Reservation',
|
||||
'Resource Class',
|
||||
'Retired',
|
||||
'Retired Reason',
|
||||
'Secure Boot',
|
||||
'Storage Interface',
|
||||
'Target Power State',
|
||||
'Target Provision State',
|
||||
'Target RAID configuration',
|
||||
'Traits',
|
||||
'UUID',
|
||||
'Updated At',
|
||||
'Vendor Interface'
|
||||
]
|
||||
# Enforce sorting
|
||||
collist.sort()
|
||||
self.assertEqual(tuple(collist), columns)
|
||||
collist = tuple([
|
||||
'allocation_uuid',
|
||||
'automated_clean',
|
||||
'bios_interface',
|
||||
'boot_interface',
|
||||
'boot_mode',
|
||||
'chassis_uuid',
|
||||
'clean_step',
|
||||
'conductor',
|
||||
'conductor_group',
|
||||
'console_enabled',
|
||||
'console_interface',
|
||||
'created_at',
|
||||
'raid_config',
|
||||
'deploy_interface',
|
||||
'deploy_step',
|
||||
'description',
|
||||
'disable_power_off',
|
||||
'driver',
|
||||
'driver_info',
|
||||
'driver_internal_info',
|
||||
'extra',
|
||||
'fault',
|
||||
'firmware_interface',
|
||||
'health',
|
||||
'inspect_interface',
|
||||
'inspection_finished_at',
|
||||
'inspection_started_at',
|
||||
'instance_info',
|
||||
'instance_name',
|
||||
'instance_uuid',
|
||||
'last_error',
|
||||
'lessee',
|
||||
'maintenance',
|
||||
'maintenance_reason',
|
||||
'management_interface',
|
||||
'name',
|
||||
'network_data',
|
||||
'network_interface',
|
||||
'owner',
|
||||
'parent_node',
|
||||
'power_interface',
|
||||
'power_state',
|
||||
'properties',
|
||||
'protected',
|
||||
'protected_reason',
|
||||
'provision_updated_at',
|
||||
'provision_state',
|
||||
'raid_interface',
|
||||
'rescue_interface',
|
||||
'reservation',
|
||||
'resource_class',
|
||||
'retired',
|
||||
'retired_reason',
|
||||
'secure_boot',
|
||||
'storage_interface',
|
||||
'target_power_state',
|
||||
'target_provision_state',
|
||||
'target_raid_config',
|
||||
'traits',
|
||||
'uuid',
|
||||
'updated_at',
|
||||
'vendor_interface'
|
||||
])
|
||||
self.assertEqual(collist, columns)
|
||||
|
||||
fake_values = {
|
||||
'Instance UUID': baremetal_fakes.baremetal_instance_uuid,
|
||||
'Maintenance': baremetal_fakes.baremetal_maintenance,
|
||||
'Name': baremetal_fakes.baremetal_name,
|
||||
'Power State': baremetal_fakes.baremetal_power_state,
|
||||
'Provisioning State': baremetal_fakes.baremetal_provision_state,
|
||||
'UUID': baremetal_fakes.baremetal_uuid,
|
||||
'instance_uuid': baremetal_fakes.baremetal_instance_uuid,
|
||||
'maintenance': baremetal_fakes.baremetal_maintenance,
|
||||
'name': baremetal_fakes.baremetal_name,
|
||||
'power_state': baremetal_fakes.baremetal_power_state,
|
||||
'provision_state': baremetal_fakes.baremetal_provision_state,
|
||||
'uuid': baremetal_fakes.baremetal_uuid,
|
||||
}
|
||||
values = tuple(fake_values.get(name, '') for name in collist)
|
||||
self.assertEqual((values,), tuple(data))
|
||||
@@ -4575,7 +4572,7 @@ class TestListTraits(TestBaremetal):
|
||||
|
||||
self.baremetal_mock.node.get_traits.assert_called_once_with(
|
||||
'node_uuid')
|
||||
self.assertEqual(('Traits',), columns)
|
||||
self.assertEqual(('traits',), columns)
|
||||
self.assertEqual([[trait] for trait in baremetal_fakes.TRAITS], data)
|
||||
|
||||
|
||||
@@ -4760,7 +4757,7 @@ class TestListBIOSSetting(TestBaremetal):
|
||||
|
||||
self.baremetal_mock.node.list_bios_settings.assert_called_once_with(
|
||||
'node_uuid')
|
||||
expected_columns = ('BIOS setting name', 'BIOS setting value')
|
||||
expected_columns = ('name', 'value')
|
||||
self.assertEqual(expected_columns, columns)
|
||||
|
||||
expected_data = ([(s['name'], s['value'])
|
||||
@@ -4788,10 +4785,10 @@ class TestListBIOSSetting(TestBaremetal):
|
||||
|
||||
self.baremetal_mock.node.list_bios_settings.assert_called_once_with(
|
||||
'node_uuid', **kwargs)
|
||||
expected_columns = ('Name', 'Value', 'Attribute Type',
|
||||
'Allowable Values', 'Lower Bound',
|
||||
'Minimum Length', 'Maximum Length', 'Read Only',
|
||||
'Reset Required', 'Unique', 'Upper Bound')
|
||||
expected_columns = ('name', 'value', 'attribute_type',
|
||||
'allowable_values', 'lower_bound',
|
||||
'min_length', 'max_length', 'read_only',
|
||||
'reset_required', 'unique', 'upper_bound')
|
||||
self.assertEqual(expected_columns, columns)
|
||||
|
||||
expected_data = (('SysName', 'my-system', 'String', '', '', '1', '16',
|
||||
@@ -4815,9 +4812,9 @@ class TestListBIOSSetting(TestBaremetal):
|
||||
baremetal_fakes.BIOS_DETAILED_SETTINGS)
|
||||
|
||||
columns, data = self.cmd.take_action(parsed_args)
|
||||
self.assertNotIn('Value', columns)
|
||||
self.assertIn('Name', columns)
|
||||
self.assertIn('Attribute Type', columns)
|
||||
self.assertNotIn('value', columns)
|
||||
self.assertIn('name', columns)
|
||||
self.assertIn('attribute_type', columns)
|
||||
|
||||
kwargs = {
|
||||
'detail': False,
|
||||
@@ -4871,9 +4868,9 @@ class TestNodeHistoryEventList(TestBaremetal):
|
||||
columns, data = self.cmd.take_action(parsed_args)
|
||||
self.baremetal_mock.node.get_history_list.assert_called_once_with(
|
||||
'node_uuid', True)
|
||||
expected_columns = ('UUID', 'Created At', 'Severity',
|
||||
'Event Origin Type', 'Description of the event',
|
||||
'Conductor', 'User')
|
||||
expected_columns = ('uuid', 'created_at', 'severity',
|
||||
'event_type', 'event',
|
||||
'conductor', 'user')
|
||||
expected_data = (('abcdef1', 'time', 'info', 'purring', 'meow',
|
||||
'lap-conductor', '0191'),)
|
||||
self.assertEqual(expected_columns, columns)
|
||||
@@ -4965,7 +4962,7 @@ class TestNodeChildrenList(TestBaremetal):
|
||||
|
||||
self.baremetal_mock.node.list_children_of_node \
|
||||
.assert_called_once_with('node_uuid')
|
||||
self.assertEqual(('Child Nodes',), columns)
|
||||
self.assertEqual(('children',), columns)
|
||||
self.assertEqual([[node] for node in baremetal_fakes.CHILDREN], data)
|
||||
|
||||
|
||||
@@ -5014,9 +5011,9 @@ class TestListFirmwareComponents(TestBaremetal):
|
||||
|
||||
self.baremetal_mock.node.list_firmware_components \
|
||||
.assert_called_once_with('node_uuid')
|
||||
expected_columns = ('Component', 'Initial Version',
|
||||
'Current Version', 'Last Version Flashed',
|
||||
'Created At', 'Updated At')
|
||||
expected_columns = ('component', 'initial_version',
|
||||
'current_version', 'last_version_flashed',
|
||||
'created_at', 'updated_at')
|
||||
self.assertEqual(expected_columns, columns)
|
||||
|
||||
expected_data = (
|
||||
|
||||
@@ -882,8 +882,8 @@ class TestBaremetalPortList(TestBaremetalPort):
|
||||
self.baremetal_mock.port.list.assert_called_with(**kwargs)
|
||||
|
||||
collist = (
|
||||
"UUID",
|
||||
"Address")
|
||||
"uuid",
|
||||
"address")
|
||||
self.assertEqual(collist, columns)
|
||||
|
||||
datalist = ((
|
||||
@@ -949,12 +949,12 @@ class TestBaremetalPortList(TestBaremetalPort):
|
||||
}
|
||||
self.baremetal_mock.port.list.assert_called_with(**kwargs)
|
||||
|
||||
collist = ('UUID', 'Address', 'Created At', 'Extra', 'Node UUID',
|
||||
'Category', 'Vendor',
|
||||
'Local Link Connection', 'Portgroup UUID',
|
||||
'PXE boot enabled', 'Physical Network', 'Updated At',
|
||||
'Internal Info', 'Is Smart NIC port',
|
||||
'Name')
|
||||
collist = ('uuid', 'address', 'created_at', 'extra', 'node_uuid',
|
||||
'category', 'vendor',
|
||||
'local_link_connection', 'portgroup_uuid',
|
||||
'pxe_enabled', 'physical_network', 'updated_at',
|
||||
'internal_info', 'is_smartnic',
|
||||
'name')
|
||||
self.assertEqual(collist, columns)
|
||||
|
||||
datalist = ((
|
||||
|
||||
@@ -371,9 +371,9 @@ class TestBaremetalPortGroupList(TestBaremetalPortGroup):
|
||||
self.baremetal_mock.portgroup.list.assert_called_with(**kwargs)
|
||||
|
||||
collist = (
|
||||
"UUID",
|
||||
"Address",
|
||||
"Name")
|
||||
"uuid",
|
||||
"address",
|
||||
"name")
|
||||
self.assertEqual(collist, columns)
|
||||
|
||||
datalist = ((baremetal_fakes.baremetal_portgroup_uuid,
|
||||
@@ -395,9 +395,9 @@ class TestBaremetalPortGroupList(TestBaremetalPortGroup):
|
||||
self.baremetal_mock.portgroup.list.assert_called_with(**kwargs)
|
||||
|
||||
collist = (
|
||||
"UUID",
|
||||
"Address",
|
||||
"Name")
|
||||
"uuid",
|
||||
"address",
|
||||
"name")
|
||||
self.assertEqual(collist, columns)
|
||||
|
||||
datalist = ((baremetal_fakes.baremetal_portgroup_uuid,
|
||||
@@ -419,9 +419,9 @@ class TestBaremetalPortGroupList(TestBaremetalPortGroup):
|
||||
self.baremetal_mock.portgroup.list.assert_called_with(**kwargs)
|
||||
|
||||
collist = (
|
||||
"UUID",
|
||||
"Address",
|
||||
"Name")
|
||||
"uuid",
|
||||
"address",
|
||||
"name")
|
||||
self.assertEqual(collist, columns)
|
||||
|
||||
datalist = ((baremetal_fakes.baremetal_portgroup_uuid,
|
||||
@@ -443,10 +443,11 @@ class TestBaremetalPortGroupList(TestBaremetalPortGroup):
|
||||
}
|
||||
self.baremetal_mock.portgroup.list.assert_called_with(**kwargs)
|
||||
|
||||
collist = ('UUID', 'Address', 'Created At', 'Extra',
|
||||
'Standalone Ports Supported', 'Node UUID', 'Name',
|
||||
'Updated At', 'Internal Info', 'Mode', 'Properties',
|
||||
'Physical Network', 'Category')
|
||||
collist = ('uuid', 'address', 'created_at', 'extra',
|
||||
'standalone_ports_supported', 'node_uuid', 'name',
|
||||
'updated_at', 'internal_info', 'mode', 'properties',
|
||||
'physical_network', 'category')
|
||||
|
||||
self.assertEqual(collist, columns)
|
||||
|
||||
datalist = ((baremetal_fakes.baremetal_portgroup_uuid,
|
||||
@@ -516,9 +517,9 @@ class TestBaremetalPortGroupList(TestBaremetalPortGroup):
|
||||
self.baremetal_mock.portgroup.list.assert_called_with(**kwargs)
|
||||
|
||||
collist = (
|
||||
"UUID",
|
||||
"Address",
|
||||
"Name")
|
||||
"uuid",
|
||||
"address",
|
||||
"name")
|
||||
self.assertEqual(collist, columns)
|
||||
|
||||
datalist = ((baremetal_fakes.baremetal_portgroup_uuid,
|
||||
|
||||
@@ -400,8 +400,8 @@ class TestBaremetalRunbookList(TestBaremetalRunbook):
|
||||
self.baremetal_mock.runbook.list.assert_called_with(**kwargs)
|
||||
|
||||
collist = (
|
||||
"UUID",
|
||||
"Name")
|
||||
"uuid",
|
||||
"name")
|
||||
self.assertEqual(collist, columns)
|
||||
|
||||
datalist = ((
|
||||
@@ -424,14 +424,14 @@ class TestBaremetalRunbookList(TestBaremetalRunbook):
|
||||
}
|
||||
self.baremetal_mock.runbook.list.assert_called_with(**kwargs)
|
||||
|
||||
collist = ('UUID',
|
||||
'Name',
|
||||
'Owner',
|
||||
'Public',
|
||||
'Steps',
|
||||
'Extra',
|
||||
'Created At',
|
||||
'Updated At')
|
||||
collist = ('uuid',
|
||||
'name',
|
||||
'owner',
|
||||
'public',
|
||||
'steps',
|
||||
'extra',
|
||||
'created_at',
|
||||
'updated_at')
|
||||
self.assertEqual(collist, columns)
|
||||
|
||||
datalist = ((
|
||||
|
||||
@@ -49,7 +49,7 @@ class TestBaremetalShardList(TestBaremetalShard):
|
||||
columns, data = self.cmd.take_action(parsed_args)
|
||||
|
||||
# Define expected columns and data output
|
||||
collist = ("Name", "Count")
|
||||
collist = ("name", "count")
|
||||
datalist = ((baremetal_fakes.baremetal_shard_name,
|
||||
baremetal_fakes.baremetal_shard_count), )
|
||||
|
||||
|
||||
@@ -331,10 +331,10 @@ class TestListBaremetalVolumeConnector(TestBaremetalVolumeConnector):
|
||||
**kwargs)
|
||||
|
||||
collist = (
|
||||
"UUID",
|
||||
"Node UUID",
|
||||
"Type",
|
||||
"Connector ID")
|
||||
"uuid",
|
||||
"node_uuid",
|
||||
"type",
|
||||
"connector_id")
|
||||
self.assertEqual(collist, columns)
|
||||
|
||||
datalist = ((baremetal_fakes.baremetal_volume_connector_uuid,
|
||||
@@ -358,10 +358,10 @@ class TestListBaremetalVolumeConnector(TestBaremetalVolumeConnector):
|
||||
**kwargs)
|
||||
|
||||
collist = (
|
||||
"UUID",
|
||||
"Node UUID",
|
||||
"Type",
|
||||
"Connector ID")
|
||||
"uuid",
|
||||
"node_uuid",
|
||||
"type",
|
||||
"connector_id")
|
||||
self.assertEqual(collist, columns)
|
||||
|
||||
datalist = ((baremetal_fakes.baremetal_volume_connector_uuid,
|
||||
@@ -384,8 +384,8 @@ class TestListBaremetalVolumeConnector(TestBaremetalVolumeConnector):
|
||||
}
|
||||
self.baremetal_mock.volume_connector.list.assert_called_with(**kwargs)
|
||||
|
||||
collist = ('UUID', 'Node UUID', 'Type', 'Connector ID', 'Extra',
|
||||
'Created At', 'Updated At')
|
||||
collist = ('uuid', 'node_uuid', 'type', 'connector_id', 'extra',
|
||||
'created_at', 'updated_at')
|
||||
self.assertEqual(collist, columns)
|
||||
|
||||
datalist = ((baremetal_fakes.baremetal_volume_connector_uuid,
|
||||
@@ -423,7 +423,7 @@ class TestListBaremetalVolumeConnector(TestBaremetalVolumeConnector):
|
||||
}
|
||||
self.baremetal_mock.volume_connector.list.assert_called_with(**kwargs)
|
||||
|
||||
collist = ('UUID', 'Connector ID')
|
||||
collist = ('uuid', 'connector_id')
|
||||
self.assertEqual(collist, columns)
|
||||
|
||||
datalist = ((baremetal_fakes.baremetal_volume_connector_uuid,
|
||||
@@ -455,7 +455,7 @@ class TestListBaremetalVolumeConnector(TestBaremetalVolumeConnector):
|
||||
}
|
||||
self.baremetal_mock.volume_connector.list.assert_called_with(**kwargs)
|
||||
|
||||
collist = ('UUID', 'Connector ID', 'Extra')
|
||||
collist = ('uuid', 'connector_id', 'extra')
|
||||
self.assertEqual(collist, columns)
|
||||
|
||||
datalist = ((baremetal_fakes.baremetal_volume_connector_uuid,
|
||||
|
||||
@@ -393,11 +393,11 @@ class TestListBaremetalVolumeTarget(TestBaremetalVolumeTarget):
|
||||
**kwargs)
|
||||
|
||||
collist = (
|
||||
"UUID",
|
||||
"Node UUID",
|
||||
"Driver Volume Type",
|
||||
"Boot Index",
|
||||
"Volume ID")
|
||||
"uuid",
|
||||
"node_uuid",
|
||||
"volume_type",
|
||||
"boot_index",
|
||||
"volume_id")
|
||||
self.assertEqual(collist, columns)
|
||||
|
||||
datalist = ((baremetal_fakes.baremetal_volume_target_uuid,
|
||||
@@ -422,11 +422,11 @@ class TestListBaremetalVolumeTarget(TestBaremetalVolumeTarget):
|
||||
**kwargs)
|
||||
|
||||
collist = (
|
||||
"UUID",
|
||||
"Node UUID",
|
||||
"Driver Volume Type",
|
||||
"Boot Index",
|
||||
"Volume ID")
|
||||
"uuid",
|
||||
"node_uuid",
|
||||
"volume_type",
|
||||
"boot_index",
|
||||
"volume_id")
|
||||
self.assertEqual(collist, columns)
|
||||
|
||||
datalist = ((baremetal_fakes.baremetal_volume_target_uuid,
|
||||
@@ -450,9 +450,9 @@ class TestListBaremetalVolumeTarget(TestBaremetalVolumeTarget):
|
||||
}
|
||||
self.baremetal_mock.volume_target.list.assert_called_with(**kwargs)
|
||||
|
||||
collist = ('UUID', 'Node UUID', 'Driver Volume Type', 'Properties',
|
||||
'Boot Index', 'Extra', 'Volume ID', 'Created At',
|
||||
'Updated At')
|
||||
collist = ('uuid', 'node_uuid', 'volume_type', 'properties',
|
||||
'boot_index', 'extra', 'volume_id', 'created_at',
|
||||
'updated_at')
|
||||
self.assertEqual(collist, columns)
|
||||
|
||||
datalist = ((baremetal_fakes.baremetal_volume_target_uuid,
|
||||
@@ -494,7 +494,7 @@ class TestListBaremetalVolumeTarget(TestBaremetalVolumeTarget):
|
||||
}
|
||||
self.baremetal_mock.volume_target.list.assert_called_with(**kwargs)
|
||||
|
||||
collist = ('UUID', 'Boot Index')
|
||||
collist = ('uuid', 'boot_index')
|
||||
self.assertEqual(collist, columns)
|
||||
|
||||
datalist = ((baremetal_fakes.baremetal_volume_target_uuid,
|
||||
@@ -528,7 +528,7 @@ class TestListBaremetalVolumeTarget(TestBaremetalVolumeTarget):
|
||||
}
|
||||
self.baremetal_mock.volume_target.list.assert_called_with(**kwargs)
|
||||
|
||||
collist = ('UUID', 'Boot Index', 'Extra')
|
||||
collist = ('uuid', 'boot_index', 'extra')
|
||||
self.assertEqual(collist, columns)
|
||||
|
||||
datalist = ((baremetal_fakes.baremetal_volume_target_uuid,
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
---
|
||||
upgrade:
|
||||
- |
|
||||
All baremetal list commands now use actual resource field names
|
||||
(e.g., "uuid", "name", "resource_class") as column headers instead
|
||||
of human-friendly labels (e.g., "UUID", "Name", "Resource Class").
|
||||
This change ensures consistency between table output, JSON output,
|
||||
and field selection via the ``--fields`` option.
|
||||
|
||||
**Action Required**: Scripts that parse the output of baremetal list
|
||||
commands will need to be updated to use the new lowercase,
|
||||
snake_case column headers. For example:
|
||||
|
||||
- "UUID" → "uuid"
|
||||
- "Name" → "name"
|
||||
- "Resource Class" → "resource_class"
|
||||
- "Instance UUID" → "instance_uuid"
|
||||
- "Power State" → "power_state"
|
||||
- "Provisioning State" → "provision_state"
|
||||
- "Supported driver(s)" → "name"
|
||||
- "Active host(s)" → "hosts"
|
||||
|
||||
This affects all list commands including node list, port list,
|
||||
portgroup list, allocation list, chassis list, conductor list,
|
||||
deploy template list, driver list, volume connector list,
|
||||
volume target list, runbook list, shard list, and inspection rule list.
|
||||
|
||||
fixes:
|
||||
- |
|
||||
Fixes an inconsistency where column headers in list command table
|
||||
output used different names than the actual resource fields,
|
||||
causing confusion when using the ``--fields`` option or comparing
|
||||
with JSON output format (``-f json``).
|
||||
Reference in New Issue
Block a user