summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Theis <rtheis@us.ibm.com>2015-12-23 13:44:22 -0600
committerRichard Theis <rtheis@us.ibm.com>2015-12-23 13:44:22 -0600
commit0e38ef84844ba406cb18fe3893dc6bebd205ef51 (patch)
tree65f40b124d235b3bcd0bf0847894ba1d3411b406
parent49bed38a89ffb932334b3bdab9e59b32099c9e81 (diff)
downloadpython-openstackclient-0e38ef84844ba406cb18fe3893dc6bebd205ef51.tar.gz
Improve output for "os security group show"
Improve the security group rules output when running the "os security group show" command. Each security group rule is now displayed on a separate line. Current output example: $ openstack security group show default +-------------+------------------------- ... ---+ | Field | Value ... | +-------------+------------------------- ... ---+ | description | Default security group ... | | id | 048a5fc3-3be1-407d-ae47-9... | | name | default ... | | project_id | 3b96bb2020c1459da76963f9e... | | rules | [u"id='5d812367-9829-4340...t"] | +-------------+------------------------- ... ---+ New output example: +-------------+------------------------- ... ---+ | Field | Value ... | +-------------+------------------------- ... ---+ | description | Default security group ... | | id | 048a5fc3-3be1-407d-ae47-9... | | name | default ... | | project_id | 3b96bb2020c1459da76963f9e... | | rules | id='5d812367-9829-4340-95...lt' | | | id='ee451d1c-ade3-4975-8e...lt' | +-------------+------------------------- ... ---+ Change-Id: I1386075310896c58a2b776e2bbec3603bd00eff1 Partial-Bug: #1519511 Related-To: blueprint neutron-client
-rw-r--r--openstackclient/common/utils.py7
-rw-r--r--openstackclient/compute/v2/security_group.py2
-rw-r--r--openstackclient/tests/common/test_utils.py7
3 files changed, 12 insertions, 4 deletions
diff --git a/openstackclient/common/utils.py b/openstackclient/common/utils.py
index 42630d91..783ca8c0 100644
--- a/openstackclient/common/utils.py
+++ b/openstackclient/common/utils.py
@@ -154,14 +154,15 @@ def format_dict(data):
return output[:-2]
-def format_list(data):
+def format_list(data, separator=', '):
"""Return a formatted strings
:param data: a list of strings
- :rtype: a string formatted to a,b,c
+ :param separator: the separator to use between strings (default: ', ')
+ :rtype: a string formatted based on separator
"""
- return ', '.join(sorted(data))
+ return separator.join(sorted(data))
def get_field(item, field):
diff --git a/openstackclient/compute/v2/security_group.py b/openstackclient/compute/v2/security_group.py
index e3f542b5..a6f060f6 100644
--- a/openstackclient/compute/v2/security_group.py
+++ b/openstackclient/compute/v2/security_group.py
@@ -390,7 +390,7 @@ class ShowSecurityGroup(show.ShowOne):
# Format rules into a list of strings
info.update(
- {'rules': rules}
+ {'rules': utils.format_list(rules, separator='\n')}
)
# Map 'tenant_id' column to 'project_id'
info.update(
diff --git a/openstackclient/tests/common/test_utils.py b/openstackclient/tests/common/test_utils.py
index b564ffab..064ad417 100644
--- a/openstackclient/tests/common/test_utils.py
+++ b/openstackclient/tests/common/test_utils.py
@@ -347,3 +347,10 @@ class TestFindResource(test_utils.TestCase):
expected = 'a, b, c'
self.assertEqual(expected, utils.format_list(['a', 'b', 'c']))
self.assertEqual(expected, utils.format_list(['c', 'b', 'a']))
+
+ def test_format_list_separator(self):
+ expected = 'a\nb\nc'
+ actual_pre_sorted = utils.format_list(['a', 'b', 'c'], separator='\n')
+ actual_unsorted = utils.format_list(['c', 'b', 'a'], separator='\n')
+ self.assertEqual(expected, actual_pre_sorted)
+ self.assertEqual(expected, actual_unsorted)