From 8682e2fc5ec459b1f535d8f50f0d1eb3ac482e4e Mon Sep 17 00:00:00 2001 From: jonnary Date: Wed, 19 Jul 2017 23:47:29 +0800 Subject: [PATCH] Fix `openstack cluster service` 1 Better to use command.Lister; 2 Revise to `openstack cluster service list` 3 Indeed, this command can't work now, implement it. Closes-Bug: #1705321 Change-Id: I5986751ba6d8a0b33c3c3d53e1efd93f7003d028 --- senlinclient/tests/unit/v1/test_service.py | 10 +++++----- senlinclient/v1/client.py | 2 +- senlinclient/v1/service.py | 20 ++++++++++++-------- setup.cfg | 2 +- 4 files changed, 19 insertions(+), 15 deletions(-) diff --git a/senlinclient/tests/unit/v1/test_service.py b/senlinclient/tests/unit/v1/test_service.py index 44bd31f..9089cc5 100644 --- a/senlinclient/tests/unit/v1/test_service.py +++ b/senlinclient/tests/unit/v1/test_service.py @@ -16,13 +16,13 @@ from senlinclient.v1 import service as osc_service class TestServiceList(fakes.TestClusteringv1): - columns = ['Binary', 'Host', 'Status', 'State', 'Updated_at', - 'Disabled Reason'] + columns = ['binary', 'host', 'status', 'state', 'updated_at', + 'disabled_reason'] def setUp(self): super(TestServiceList, self).setUp() self.mock_client = self.app.client_manager.clustering - self.cmd = osc_service.Service(self.app, None) + self.cmd = osc_service.ListService(self.app, None) fake_service = mock.Mock( Binary='senlin-engine', Host='Host1', @@ -33,11 +33,11 @@ class TestServiceList(fakes.TestClusteringv1): ) fake_service.name = 'test_service' fake_service.to_dict = mock.Mock(return_value={}) - self.mock_client.get_service = mock.Mock(return_value=[fake_service]) + self.mock_client.services = mock.Mock(return_value=[fake_service]) def test_service(self): arglist = [] parsed_args = self.check_parser(self.cmd, arglist, []) columns, data = self.cmd.take_action(parsed_args) - self.mock_client.get_service.assert_called_with() + self.mock_client.services.assert_called_with() self.assertEqual(self.columns, columns) diff --git a/senlinclient/v1/client.py b/senlinclient/v1/client.py index fda588d..9c1f2c6 100644 --- a/senlinclient/v1/client.py +++ b/senlinclient/v1/client.py @@ -469,7 +469,7 @@ class Client(object): """ return self.service.get_action(action) - def get_service(self, **queries): + def services(self, **queries): """List services Doc link: diff --git a/senlinclient/v1/service.py b/senlinclient/v1/service.py index 2ba0cee..8036452 100644 --- a/senlinclient/v1/service.py +++ b/senlinclient/v1/service.py @@ -16,24 +16,28 @@ from osc_lib.command import command from osc_lib import utils -class Service(command.ShowOne): +class ListService(command.Lister): """Show a list of all running services.""" - log = logging.getLogger(__name__ + ".Service") + log = logging.getLogger(__name__ + ".ListService") def get_parser(self, prog_name): - parser = super(Service, self).get_parser(prog_name) + parser = super(ListService, self).get_parser(prog_name) return parser def take_action(self, parsed_args): self.log.debug("take_action(%s)", parsed_args) senlin_client = self.app.client_manager.clustering + columns = ['binary', 'host', 'status', 'state', 'updated_at', + 'disabled_reason'] + queries = {} - result = senlin_client.get_service(**queries) + result = senlin_client.services(**queries) formatters = {} - columns = ['Binary', 'Host', 'Status', 'State', 'Updated_at', - 'Disabled Reason'] - return columns, utils.get_dict_properties(result, columns, - formatters=formatters) + return ( + columns, + (utils.get_item_properties(s, columns, formatters=formatters) + for s in result) + ) diff --git a/setup.cfg b/setup.cfg index c151126..24e19c8 100644 --- a/setup.cfg +++ b/setup.cfg @@ -84,7 +84,7 @@ openstack.clustering.v1 = cluster_update = senlinclient.v1.cluster:UpdateCluster cluster_collect = senlinclient.v1.cluster:ClusterCollect cluster_run = senlinclient.v1.cluster:ClusterRun - cluster_service = senlinclient.v1.service:Service + cluster_service_list = senlinclient.v1.service:ListService [global] setup-hooks =