Improve "server list" command to have the same output as "nova list".
"nova list" will also output "Task State" and "Power State" by default. This patch improves "server list" command to have the same columns, but not by default. These two columns will be output if --long is added. The power state is an int, so also adds a formatter helper function to translate it to human readable string, just as "Networks" does. Change-Id: I0530a910bec03835839a5ba7687c66d5643338f3
This commit is contained in:
parent
6e1ad73723
commit
fc32b0d76b
@ -56,6 +56,29 @@ def _format_servers_list_networks(networks):
|
||||
return '; '.join(output)
|
||||
|
||||
|
||||
def _format_servers_list_power_state(state):
|
||||
"""Return a formatted string of a server's power state
|
||||
|
||||
:param state: the power state number of a server
|
||||
:rtype: a string mapped to the power state number
|
||||
"""
|
||||
power_states = [
|
||||
'NOSTATE', # 0x00
|
||||
'Running', # 0x01
|
||||
'', # 0x02
|
||||
'Paused', # 0x03
|
||||
'Shutdown', # 0x04
|
||||
'', # 0x05
|
||||
'Crashed', # 0x06
|
||||
'Suspended' # 0x07
|
||||
]
|
||||
|
||||
try:
|
||||
return power_states[state]
|
||||
except Exception:
|
||||
return 'N/A'
|
||||
|
||||
|
||||
def _get_ip_address(addresses, address_type, ip_address_family):
|
||||
# Old style addresses
|
||||
if address_type in addresses:
|
||||
@ -762,6 +785,8 @@ class ListServer(lister.Lister):
|
||||
'ID',
|
||||
'Name',
|
||||
'Status',
|
||||
'OS-EXT-STS:task_state',
|
||||
'OS-EXT-STS:power_state',
|
||||
'Networks',
|
||||
'OS-EXT-AZ:availability_zone',
|
||||
'OS-EXT-SRV-ATTR:host',
|
||||
@ -771,18 +796,32 @@ class ListServer(lister.Lister):
|
||||
'ID',
|
||||
'Name',
|
||||
'Status',
|
||||
'Task State',
|
||||
'Power State',
|
||||
'Networks',
|
||||
'Availability Zone',
|
||||
'Host',
|
||||
'Properties',
|
||||
)
|
||||
mixed_case_fields = [
|
||||
'OS-EXT-STS:task_state',
|
||||
'OS-EXT-STS:power_state',
|
||||
'OS-EXT-AZ:availability_zone',
|
||||
'OS-EXT-SRV-ATTR:host',
|
||||
]
|
||||
else:
|
||||
columns = ('ID', 'Name', 'Status', 'Networks')
|
||||
column_headers = columns
|
||||
columns = (
|
||||
'ID',
|
||||
'Name',
|
||||
'Status',
|
||||
'Networks',
|
||||
)
|
||||
column_headers = (
|
||||
'ID',
|
||||
'Name',
|
||||
'Status',
|
||||
'Networks',
|
||||
)
|
||||
mixed_case_fields = []
|
||||
data = compute_client.servers.list(search_opts=search_opts)
|
||||
return (column_headers,
|
||||
@ -790,6 +829,8 @@ class ListServer(lister.Lister):
|
||||
s, columns,
|
||||
mixed_case_fields=mixed_case_fields,
|
||||
formatters={
|
||||
'OS-EXT-STS:power_state':
|
||||
_format_servers_list_power_state,
|
||||
'Networks': _format_servers_list_networks,
|
||||
'Metadata': utils.format_dict,
|
||||
},
|
||||
|
Loading…
x
Reference in New Issue
Block a user