Merge "Improve "server list" command to have the same output as "nova list"."
This commit is contained in:
@@ -56,6 +56,29 @@ def _format_servers_list_networks(networks):
|
|||||||
return '; '.join(output)
|
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):
|
def _get_ip_address(addresses, address_type, ip_address_family):
|
||||||
# Old style addresses
|
# Old style addresses
|
||||||
if address_type in addresses:
|
if address_type in addresses:
|
||||||
@@ -769,6 +792,8 @@ class ListServer(lister.Lister):
|
|||||||
'ID',
|
'ID',
|
||||||
'Name',
|
'Name',
|
||||||
'Status',
|
'Status',
|
||||||
|
'OS-EXT-STS:task_state',
|
||||||
|
'OS-EXT-STS:power_state',
|
||||||
'Networks',
|
'Networks',
|
||||||
'OS-EXT-AZ:availability_zone',
|
'OS-EXT-AZ:availability_zone',
|
||||||
'OS-EXT-SRV-ATTR:host',
|
'OS-EXT-SRV-ATTR:host',
|
||||||
@@ -778,18 +803,32 @@ class ListServer(lister.Lister):
|
|||||||
'ID',
|
'ID',
|
||||||
'Name',
|
'Name',
|
||||||
'Status',
|
'Status',
|
||||||
|
'Task State',
|
||||||
|
'Power State',
|
||||||
'Networks',
|
'Networks',
|
||||||
'Availability Zone',
|
'Availability Zone',
|
||||||
'Host',
|
'Host',
|
||||||
'Properties',
|
'Properties',
|
||||||
)
|
)
|
||||||
mixed_case_fields = [
|
mixed_case_fields = [
|
||||||
|
'OS-EXT-STS:task_state',
|
||||||
|
'OS-EXT-STS:power_state',
|
||||||
'OS-EXT-AZ:availability_zone',
|
'OS-EXT-AZ:availability_zone',
|
||||||
'OS-EXT-SRV-ATTR:host',
|
'OS-EXT-SRV-ATTR:host',
|
||||||
]
|
]
|
||||||
else:
|
else:
|
||||||
columns = ('ID', 'Name', 'Status', 'Networks')
|
columns = (
|
||||||
column_headers = columns
|
'ID',
|
||||||
|
'Name',
|
||||||
|
'Status',
|
||||||
|
'Networks',
|
||||||
|
)
|
||||||
|
column_headers = (
|
||||||
|
'ID',
|
||||||
|
'Name',
|
||||||
|
'Status',
|
||||||
|
'Networks',
|
||||||
|
)
|
||||||
mixed_case_fields = []
|
mixed_case_fields = []
|
||||||
data = compute_client.servers.list(search_opts=search_opts)
|
data = compute_client.servers.list(search_opts=search_opts)
|
||||||
return (column_headers,
|
return (column_headers,
|
||||||
@@ -797,6 +836,8 @@ class ListServer(lister.Lister):
|
|||||||
s, columns,
|
s, columns,
|
||||||
mixed_case_fields=mixed_case_fields,
|
mixed_case_fields=mixed_case_fields,
|
||||||
formatters={
|
formatters={
|
||||||
|
'OS-EXT-STS:power_state':
|
||||||
|
_format_servers_list_power_state,
|
||||||
'Networks': _format_servers_list_networks,
|
'Networks': _format_servers_list_networks,
|
||||||
'Metadata': utils.format_dict,
|
'Metadata': utils.format_dict,
|
||||||
},
|
},
|
||||||
|
Reference in New Issue
Block a user