summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
authorjay <jayadityagupta11@gmail.com>2020-07-15 15:10:19 +0200
committerjgupta <jayadityagupta11@gmail.com>2020-11-05 14:01:12 +0100
commit311f4130d2c59638074531fa59e67783c2571e91 (patch)
tree94d53a6eeacd1525912836e97c01cc227556d785 /openstackclient
parent82ebddca006d1dc61855fdd34b0616222039ea58 (diff)
downloadpython-openstackclient-311f4130d2c59638074531fa59e67783c2571e91.tar.gz
Add a few selectable fields to the "openstack server list" output
Added ``-c project_id | user_id | created_at`` to ``openstack server list`` command to get these columns as an output. Change-Id: I18991adf899c7b72c98bb89871bf0715d35943f0 Story: 2007925
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/compute/v2/server.py21
-rw-r--r--openstackclient/tests/unit/compute/v2/test_server.py19
2 files changed, 40 insertions, 0 deletions
diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py
index 93e9f966..db3914b3 100644
--- a/openstackclient/compute/v2/server.py
+++ b/openstackclient/compute/v2/server.py
@@ -1446,6 +1446,27 @@ class ListServer(command.Lister):
marker_id = None
+ # support for additional columns
+ if parsed_args.columns:
+ # convert tuple to list to edit them
+ column_headers = list(column_headers)
+ columns = list(columns)
+
+ for c in parsed_args.columns:
+ if c in ('Project ID', 'project_id'):
+ columns.append('tenant_id')
+ column_headers.append('Project ID')
+ if c in ('User ID', 'user_id'):
+ columns.append('user_id')
+ column_headers.append('User ID')
+ if c in ('Created At', 'created_at'):
+ columns.append('created_at')
+ column_headers.append('Created At')
+
+ # convert back to tuple
+ column_headers = tuple(column_headers)
+ columns = tuple(columns)
+
if parsed_args.marker:
# Check if both "--marker" and "--deleted" are used.
# In that scenario a lookup is not needed as the marker
diff --git a/openstackclient/tests/unit/compute/v2/test_server.py b/openstackclient/tests/unit/compute/v2/test_server.py
index 7e4c71c5..f6506bf7 100644
--- a/openstackclient/tests/unit/compute/v2/test_server.py
+++ b/openstackclient/tests/unit/compute/v2/test_server.py
@@ -2696,6 +2696,25 @@ class TestServerList(TestServer):
self.assertEqual(self.columns_long, columns)
self.assertEqual(tuple(self.data_long), tuple(data))
+ def test_server_list_column_option(self):
+ arglist = [
+ '-c', 'Project ID',
+ '-c', 'User ID',
+ '-c', 'Created At',
+ '--long'
+ ]
+ verifylist = [
+ ('long', True),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ columns, data = self.cmd.take_action(parsed_args)
+
+ self.servers_mock.list.assert_called_with(**self.kwargs)
+ self.assertIn('Project ID', columns)
+ self.assertIn('User ID', columns)
+ self.assertIn('Created At', columns)
+
def test_server_list_no_name_lookup_option(self):
arglist = [
'--no-name-lookup',