summaryrefslogtreecommitdiff
path: root/openstackclient/compute
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2015-11-13 22:54:27 +0000
committerGerrit Code Review <review@openstack.org>2015-11-13 22:54:27 +0000
commitc6949c782c9f40418ebc95630478ce558d935be1 (patch)
treeb86ce3f87d670ccf3060167e630bed142b3cd537 /openstackclient/compute
parent5243b093caa4d041d2367e7e2bd733f8580e4a2c (diff)
parentfc32b0d76bf07cb5bd43f2f9dc0078438a9ae351 (diff)
downloadpython-openstackclient-c6949c782c9f40418ebc95630478ce558d935be1.tar.gz
Merge "Improve "server list" command to have the same output as "nova list"."
Diffstat (limited to 'openstackclient/compute')
-rw-r--r--openstackclient/compute/v2/server.py45
1 files changed, 43 insertions, 2 deletions
diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py
index ef9d24e7..6a2809c6 100644
--- a/openstackclient/compute/v2/server.py
+++ b/openstackclient/compute/v2/server.py
@@ -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,
},