summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
authorStephen Finucane <sfinucan@redhat.com>2020-11-05 11:29:54 +0000
committerStephen Finucane <sfinucan@redhat.com>2021-01-06 12:02:25 +0000
commite2a9a9607cc84c0afc2fc5524681a3adebdc68ec (patch)
tree0c883ecbfaf9d5657c5b22898fee7610d2f5cccf /openstackclient
parentaf5e9d16e8a00c0d382b7090c66df211fefc0b3c (diff)
downloadpython-openstackclient-e2a9a9607cc84c0afc2fc5524681a3adebdc68ec.tar.gz
compute: Fix 'server group * -f yaml' output
Make use of 'FormattableColumn'-derived formatters, which provide better output than what we were using before, particularly for the YAML output format. Change-Id: Id6d25a0a348596d5a0430ff7afbf87b049a76bc8 Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/compute/v2/server_group.py27
-rw-r--r--openstackclient/tests/functional/compute/v2/test_server_group.py12
-rw-r--r--openstackclient/tests/unit/compute/v2/test_server_group.py48
3 files changed, 47 insertions, 40 deletions
diff --git a/openstackclient/compute/v2/server_group.py b/openstackclient/compute/v2/server_group.py
index a3363244..d245c092 100644
--- a/openstackclient/compute/v2/server_group.py
+++ b/openstackclient/compute/v2/server_group.py
@@ -18,6 +18,7 @@
import logging
from novaclient import api_versions
+from osc_lib.cli import format_columns
from osc_lib.command import command
from osc_lib import exceptions
from osc_lib import utils
@@ -29,8 +30,8 @@ LOG = logging.getLogger(__name__)
_formatters = {
- 'policies': utils.format_list,
- 'members': utils.format_list,
+ 'policies': format_columns.ListColumn,
+ 'members': format_columns.ListColumn,
}
@@ -93,8 +94,8 @@ class CreateServerGroup(command.ShowOne):
info.update(server_group._info)
columns = _get_columns(info)
- data = utils.get_dict_properties(info, columns,
- formatters=_formatters)
+ data = utils.get_dict_properties(
+ info, columns, formatters=_formatters)
return columns, data
@@ -176,14 +177,18 @@ class ListServerGroup(command.Lister):
policy_key,
)
- return (column_headers,
- (utils.get_item_properties(
+ return (
+ column_headers,
+ (
+ utils.get_item_properties(
s, columns,
formatters={
- 'Policies': utils.format_list,
- 'Members': utils.format_list,
+ 'Policies': format_columns.ListColumn,
+ 'Members': format_columns.ListColumn,
}
- ) for s in data))
+ ) for s in data
+ ),
+ )
class ShowServerGroup(command.ShowOne):
@@ -205,6 +210,6 @@ class ShowServerGroup(command.ShowOne):
info = {}
info.update(group._info)
columns = _get_columns(info)
- data = utils.get_dict_properties(info, columns,
- formatters=_formatters)
+ data = utils.get_dict_properties(
+ info, columns, formatters=_formatters)
return columns, data
diff --git a/openstackclient/tests/functional/compute/v2/test_server_group.py b/openstackclient/tests/functional/compute/v2/test_server_group.py
index 44ecda1d..3dff3dcd 100644
--- a/openstackclient/tests/functional/compute/v2/test_server_group.py
+++ b/openstackclient/tests/functional/compute/v2/test_server_group.py
@@ -33,7 +33,7 @@ class ServerGroupTests(base.TestCase):
cmd_output['name']
)
self.assertEqual(
- 'affinity',
+ ['affinity'],
cmd_output['policies']
)
@@ -47,7 +47,7 @@ class ServerGroupTests(base.TestCase):
cmd_output['name']
)
self.assertEqual(
- 'anti-affinity',
+ ['anti-affinity'],
cmd_output['policies']
)
@@ -74,7 +74,7 @@ class ServerGroupTests(base.TestCase):
cmd_output['name']
)
self.assertEqual(
- 'affinity',
+ ['affinity'],
cmd_output['policies']
)
@@ -91,7 +91,7 @@ class ServerGroupTests(base.TestCase):
cmd_output['name']
)
self.assertEqual(
- 'anti-affinity',
+ ['anti-affinity'],
cmd_output['policies']
)
@@ -102,5 +102,5 @@ class ServerGroupTests(base.TestCase):
self.assertIn(name1, names)
self.assertIn(name2, names)
policies = [x["Policies"] for x in cmd_output]
- self.assertIn('affinity', policies)
- self.assertIn('anti-affinity', policies)
+ self.assertIn(['affinity'], policies)
+ self.assertIn(['anti-affinity'], policies)
diff --git a/openstackclient/tests/unit/compute/v2/test_server_group.py b/openstackclient/tests/unit/compute/v2/test_server_group.py
index bf0ea0ba..8de7492c 100644
--- a/openstackclient/tests/unit/compute/v2/test_server_group.py
+++ b/openstackclient/tests/unit/compute/v2/test_server_group.py
@@ -16,6 +16,7 @@
from unittest import mock
from novaclient import api_versions
+from osc_lib.cli import format_columns
from osc_lib import exceptions
from osc_lib import utils
@@ -39,9 +40,9 @@ class TestServerGroup(compute_fakes.TestComputev2):
data = (
fake_server_group.id,
- utils.format_list(fake_server_group.members),
+ format_columns.ListColumn(fake_server_group.members),
fake_server_group.name,
- utils.format_list(fake_server_group.policies),
+ format_columns.ListColumn(fake_server_group.policies),
fake_server_group.project_id,
fake_server_group.user_id,
)
@@ -70,7 +71,7 @@ class TestServerGroupV264(TestServerGroup):
data = (
fake_server_group.id,
- utils.format_list(fake_server_group.members),
+ format_columns.ListColumn(fake_server_group.members),
fake_server_group.name,
fake_server_group.policy,
fake_server_group.project_id,
@@ -105,8 +106,8 @@ class TestServerGroupCreate(TestServerGroup):
policies=[parsed_args.policy],
)
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.data, data)
+ self.assertCountEqual(self.columns, columns)
+ self.assertCountEqual(self.data, data)
def test_server_group_create_with_soft_policies(self):
self.app.client_manager.compute.api_version = api_versions.APIVersion(
@@ -127,8 +128,8 @@ class TestServerGroupCreate(TestServerGroup):
policies=[parsed_args.policy],
)
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.data, data)
+ self.assertCountEqual(self.columns, columns)
+ self.assertCountEqual(self.data, data)
def test_server_group_create_with_soft_policies_pre_v215(self):
self.app.client_manager.compute.api_version = api_versions.APIVersion(
@@ -170,8 +171,8 @@ class TestServerGroupCreate(TestServerGroup):
policy=parsed_args.policy,
)
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.data, data)
+ self.assertCountEqual(self.columns, columns)
+ self.assertCountEqual(self.data, data)
class TestServerGroupDelete(TestServerGroup):
@@ -275,14 +276,14 @@ class TestServerGroupList(TestServerGroup):
list_data = ((
TestServerGroup.fake_server_group.id,
TestServerGroup.fake_server_group.name,
- utils.format_list(TestServerGroup.fake_server_group.policies),
+ format_columns.ListColumn(TestServerGroup.fake_server_group.policies),
),)
list_data_long = ((
TestServerGroup.fake_server_group.id,
TestServerGroup.fake_server_group.name,
- utils.format_list(TestServerGroup.fake_server_group.policies),
- utils.format_list(TestServerGroup.fake_server_group.members),
+ format_columns.ListColumn(TestServerGroup.fake_server_group.policies),
+ format_columns.ListColumn(TestServerGroup.fake_server_group.members),
TestServerGroup.fake_server_group.project_id,
TestServerGroup.fake_server_group.user_id,
),)
@@ -303,8 +304,8 @@ class TestServerGroupList(TestServerGroup):
columns, data = self.cmd.take_action(parsed_args)
self.server_groups_mock.list.assert_called_once_with(False)
- self.assertEqual(self.list_columns, columns)
- self.assertEqual(self.list_data, tuple(data))
+ self.assertCountEqual(self.list_columns, columns)
+ self.assertCountEqual(self.list_data, tuple(data))
def test_server_group_list_with_all_projects_and_long(self):
arglist = [
@@ -319,8 +320,8 @@ class TestServerGroupList(TestServerGroup):
columns, data = self.cmd.take_action(parsed_args)
self.server_groups_mock.list.assert_called_once_with(True)
- self.assertEqual(self.list_columns_long, columns)
- self.assertEqual(self.list_data_long, tuple(data))
+ self.assertCountEqual(self.list_columns_long, columns)
+ self.assertCountEqual(self.list_data_long, tuple(data))
class TestServerGroupListV264(TestServerGroupV264):
@@ -350,7 +351,8 @@ class TestServerGroupListV264(TestServerGroupV264):
TestServerGroupV264.fake_server_group.id,
TestServerGroupV264.fake_server_group.name,
TestServerGroupV264.fake_server_group.policy,
- utils.format_list(TestServerGroupV264.fake_server_group.members),
+ format_columns.ListColumn(
+ TestServerGroupV264.fake_server_group.members),
TestServerGroupV264.fake_server_group.project_id,
TestServerGroupV264.fake_server_group.user_id,
),)
@@ -373,8 +375,8 @@ class TestServerGroupListV264(TestServerGroupV264):
columns, data = self.cmd.take_action(parsed_args)
self.server_groups_mock.list.assert_called_once_with(False)
- self.assertEqual(self.list_columns, columns)
- self.assertEqual(self.list_data, tuple(data))
+ self.assertCountEqual(self.list_columns, columns)
+ self.assertCountEqual(self.list_data, tuple(data))
def test_server_group_list_with_all_projects_and_long(self):
arglist = [
@@ -389,8 +391,8 @@ class TestServerGroupListV264(TestServerGroupV264):
columns, data = self.cmd.take_action(parsed_args)
self.server_groups_mock.list.assert_called_once_with(True)
- self.assertEqual(self.list_columns_long, columns)
- self.assertEqual(self.list_data_long, tuple(data))
+ self.assertCountEqual(self.list_columns_long, columns)
+ self.assertCountEqual(self.list_data_long, tuple(data))
class TestServerGroupShow(TestServerGroup):
@@ -412,5 +414,5 @@ class TestServerGroupShow(TestServerGroup):
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
columns, data = self.cmd.take_action(parsed_args)
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.data, data)
+ self.assertCountEqual(self.columns, columns)
+ self.assertCountEqual(self.data, data)