Normalize additional server list columns
Server list adds some columns on demand before Cliff filters the output. Normalize those requested column names so this path accepts the same case and underscore variants as Cliff. Change-Id: I0229208246d6eee5b563bf53651f2cb24e6dfdaa Signed-off-by: t.hosseini <taaahaaa75@gmail.com>
This commit is contained in:
1 parent
37b3b0363d
commit
8481e0cfb4
2 files changed
+56
-19
No files matched your search
@@ -3035,50 +3035,45 @@ class ListServer(command.Lister):
|
||||
# support for additional columns
|
||||
if parsed_args.columns:
|
||||
for c in parsed_args.columns:
|
||||
if c in ('Project ID', 'project_id'):
|
||||
normalized_column = c.lower().strip().replace(' ', '_')
|
||||
if normalized_column == 'project_id':
|
||||
columns += ('project_id',)
|
||||
column_headers += ('Project ID',)
|
||||
if c in ('User ID', 'user_id'):
|
||||
if normalized_column == 'user_id':
|
||||
columns += ('user_id',)
|
||||
column_headers += ('User ID',)
|
||||
if c in ('Created At', 'created_at'):
|
||||
if normalized_column == 'created_at':
|
||||
columns += ('created_at',)
|
||||
column_headers += ('Created At',)
|
||||
if c in ('Security Groups', 'security_groups'):
|
||||
if normalized_column == 'security_groups':
|
||||
columns += ('security_groups_name',)
|
||||
column_headers += ('Security Groups',)
|
||||
if c in ("Task State", "task_state"):
|
||||
if normalized_column == 'task_state':
|
||||
columns += ('task_state',)
|
||||
column_headers += ('Task State',)
|
||||
if c in ("Power State", "power_state"):
|
||||
if normalized_column == 'power_state':
|
||||
columns += ('power_state',)
|
||||
column_headers += ('Power State',)
|
||||
if c in ("Image ID", "image_id"):
|
||||
if normalized_column == 'image_id':
|
||||
columns += ('Image ID',)
|
||||
column_headers += ('Image ID',)
|
||||
if c in ("Flavor ID", "flavor_id"):
|
||||
if normalized_column == 'flavor_id':
|
||||
columns += ('flavor_id',)
|
||||
column_headers += ('Flavor ID',)
|
||||
if c in ('Availability Zone', "availability_zone"):
|
||||
if normalized_column == 'availability_zone':
|
||||
columns += ('availability_zone',)
|
||||
column_headers += ('Availability Zone',)
|
||||
if c in (
|
||||
'pinned_availability_zone',
|
||||
'Pinned Availability Zone',
|
||||
):
|
||||
if normalized_column == 'pinned_availability_zone':
|
||||
if sdk_utils.supports_microversion(compute_client, '2.96'):
|
||||
columns += ('pinned_availability_zone',)
|
||||
column_headers += ('Pinned Availability Zone',)
|
||||
if c in ('Host', "host"):
|
||||
if normalized_column == 'host':
|
||||
columns += ('hypervisor_hostname',)
|
||||
column_headers += ('Host',)
|
||||
if c in ('Properties', "properties"):
|
||||
if normalized_column == 'properties':
|
||||
columns += ('Metadata',)
|
||||
column_headers += ('Properties',)
|
||||
if c in (
|
||||
'scheduler_hints',
|
||||
"Scheduler Hints",
|
||||
):
|
||||
if normalized_column == 'scheduler_hints':
|
||||
if sdk_utils.supports_microversion(
|
||||
compute_client, '2.100'
|
||||
):
|
||||
|
||||
@@ -5008,6 +5008,48 @@ class TestServerList(_TestServerList):
|
||||
self.assertIn('Properties', columns)
|
||||
self.assertCountEqual(columns, set(columns))
|
||||
|
||||
def test_server_list_column_option_normalized(self):
|
||||
arglist = [
|
||||
'-c',
|
||||
'PROJECT id',
|
||||
'-c',
|
||||
'USER id',
|
||||
'-c',
|
||||
'CREATED at',
|
||||
'-c',
|
||||
'SECURITY groups',
|
||||
'-c',
|
||||
'TASK state',
|
||||
'-c',
|
||||
'POWER state',
|
||||
'-c',
|
||||
'IMAGE id',
|
||||
'-c',
|
||||
'FLAVOR id',
|
||||
'-c',
|
||||
'AVAILABILITY zone',
|
||||
'-c',
|
||||
'hOsT',
|
||||
'-c',
|
||||
'PROPERTIES',
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, [])
|
||||
|
||||
columns, _data = self.cmd.take_action(parsed_args)
|
||||
|
||||
self.assertIn('Project ID', columns)
|
||||
self.assertIn('User ID', columns)
|
||||
self.assertIn('Created At', columns)
|
||||
self.assertIn('Security Groups', columns)
|
||||
self.assertIn('Task State', columns)
|
||||
self.assertIn('Power State', columns)
|
||||
self.assertIn('Image ID', columns)
|
||||
self.assertIn('Flavor ID', columns)
|
||||
self.assertIn('Availability Zone', columns)
|
||||
self.assertIn('Host', columns)
|
||||
self.assertIn('Properties', columns)
|
||||
self.assertCountEqual(columns, set(columns))
|
||||
|
||||
def test_server_list_no_name_lookup_option(self):
|
||||
self.data = tuple(
|
||||
(
|
||||
|
||||
Reference in new issue
Block a user