Merge "Improve "server list" command to have the same output as "nova list"."

This commit is contained in:
Jenkins 2015-11-13 22:54:27 +00:00 committed by Gerrit Code Review
commit c6949c782c

View File

@ -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:
@ -769,6 +792,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',
@ -778,18 +803,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,
@ -797,6 +836,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,
},