Fix "security group list" command to display project ID properly

The "Project" column of the output of
"security group list" command is blank
since the new attribute name is "project_id"
not "tenant_id" in network resource, so change
it to display project IDs properly

Change-Id: Ie2a071afac3b5a8aaa2c6f1c50d44ae06905d916
Closes-bug: #1659967
(cherry picked from commit 888022f8c0)
This commit is contained in:
Huanxuan Ao 2017-02-16 18:43:31 +08:00 committed by Julie Pichon
parent 31087e4222
commit 253a92ec8f
4 changed files with 41 additions and 21 deletions

View File

@ -210,21 +210,6 @@ class ListSecurityGroup(common.NetworkAndComputeLister):
)
return parser
def _get_return_data(self, data, include_project=True):
columns = (
"ID",
"Name",
"Description",
)
column_headers = columns
if include_project:
columns = columns + ('Tenant ID',)
column_headers = column_headers + ('Project',)
return (column_headers,
(utils.get_item_properties(
s, columns,
) for s in data))
def take_action_network(self, client, parsed_args):
filters = {}
if parsed_args.project:
@ -236,13 +221,42 @@ class ListSecurityGroup(common.NetworkAndComputeLister):
).id
filters['tenant_id'] = project_id
filters['project_id'] = project_id
return self._get_return_data(client.security_groups(**filters))
data = client.security_groups(**filters)
columns = (
"ID",
"Name",
"Description",
"Project ID"
)
column_headers = (
"ID",
"Name",
"Description",
"Project"
)
return (column_headers,
(utils.get_item_properties(
s, columns,
) for s in data))
def take_action_compute(self, client, parsed_args):
search = {'all_tenants': parsed_args.all_projects}
data = client.security_groups.list(search_opts=search)
return self._get_return_data(data,
include_project=parsed_args.all_projects)
columns = (
"ID",
"Name",
"Description",
)
column_headers = columns
if parsed_args.all_projects:
columns = columns + ('Tenant ID',)
column_headers = column_headers + ('Project',)
return (column_headers,
(utils.get_item_properties(
s, columns,
) for s in data))
class SetSecurityGroup(common.NetworkAndComputeCommand):

View File

@ -978,7 +978,7 @@ class FakeSecurityGroup(object):
'id': 'security-group-id-' + uuid.uuid4().hex,
'name': 'security-group-name-' + uuid.uuid4().hex,
'description': 'security-group-description-' + uuid.uuid4().hex,
'tenant_id': 'project-id-' + uuid.uuid4().hex,
'project_id': 'project-id-' + uuid.uuid4().hex,
'security_group_rules': [],
}
@ -990,7 +990,7 @@ class FakeSecurityGroup(object):
loaded=True)
# Set attributes with special mapping in OpenStack SDK.
security_group.project_id = security_group_attrs['tenant_id']
security_group.project_id = security_group_attrs['project_id']
return security_group

View File

@ -404,7 +404,7 @@ class TestListSecurityGroupNetwork(TestSecurityGroupNetwork):
grp.id,
grp.name,
grp.description,
grp.tenant_id,
grp.project_id,
))
def setUp(self):

View File

@ -0,0 +1,6 @@
---
fixes:
- |
``security group list`` command now can display project IDs in the ``Project`` column
of the command output.
[Bug `1659967 <https://bugs.launchpad.net/bugs/1659967>`_]