summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHuanxuan Ao <huanxuan.ao@easystack.cn>2017-02-16 18:43:31 +0800
committerJulie Pichon <jpichon@redhat.com>2017-08-15 14:04:19 +0000
commit253a92ec8f2b7bd5d8f056210dea374f2e2ae184 (patch)
tree78cd00080eada35d1e6c515ae7a8cb9f15761bf7
parent31087e42226e487099e903d05a0f5b1ff80c7be3 (diff)
downloadpython-openstackclient-253a92ec8f2b7bd5d8f056210dea374f2e2ae184.tar.gz
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 888022f8c0a2911a03fc682fdbe4c68c35a27db7)
-rw-r--r--openstackclient/network/v2/security_group.py50
-rw-r--r--openstackclient/tests/unit/network/v2/fakes.py4
-rw-r--r--openstackclient/tests/unit/network/v2/test_security_group.py2
-rw-r--r--releasenotes/notes/bug-1659967-644a8ee3621c9e81.yaml6
4 files changed, 41 insertions, 21 deletions
diff --git a/openstackclient/network/v2/security_group.py b/openstackclient/network/v2/security_group.py
index c6d9ede7..182d4817 100644
--- a/openstackclient/network/v2/security_group.py
+++ b/openstackclient/network/v2/security_group.py
@@ -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):
diff --git a/openstackclient/tests/unit/network/v2/fakes.py b/openstackclient/tests/unit/network/v2/fakes.py
index eb965339..50163342 100644
--- a/openstackclient/tests/unit/network/v2/fakes.py
+++ b/openstackclient/tests/unit/network/v2/fakes.py
@@ -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
diff --git a/openstackclient/tests/unit/network/v2/test_security_group.py b/openstackclient/tests/unit/network/v2/test_security_group.py
index 9a30267e..66d357f9 100644
--- a/openstackclient/tests/unit/network/v2/test_security_group.py
+++ b/openstackclient/tests/unit/network/v2/test_security_group.py
@@ -404,7 +404,7 @@ class TestListSecurityGroupNetwork(TestSecurityGroupNetwork):
grp.id,
grp.name,
grp.description,
- grp.tenant_id,
+ grp.project_id,
))
def setUp(self):
diff --git a/releasenotes/notes/bug-1659967-644a8ee3621c9e81.yaml b/releasenotes/notes/bug-1659967-644a8ee3621c9e81.yaml
new file mode 100644
index 00000000..a42f9460
--- /dev/null
+++ b/releasenotes/notes/bug-1659967-644a8ee3621c9e81.yaml
@@ -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>`_]