Add cluster check and recover into CLI

Expose check and recover for manual health management scenario

Change-Id: Ib669d4e759d74f9dc7054e91d7247d50c90d41ed
Implements: blueprint support-health-management-customization
This commit is contained in:
Cindia-blue 2016-03-14 10:39:55 +08:00
parent 92c0ac13c1
commit 0dbef6f95a
4 changed files with 58 additions and 0 deletions

@ -304,6 +304,23 @@ class ClientTest(testtools.TestCase):
self.service.cluster_update_policy.assert_called_once_with(
'FOO', 'BAR', foo='bar')
def test_check_cluster(self, mock_conn):
mock_conn.return_value = self.conn
sc = client.Client()
res = sc.check_cluster('FAKE_CLUSTER_ID')
self.assertEqual(self.service.check_cluster.return_value, res)
self.service.check_cluster.assert_called_once_with('FAKE_CLUSTER_ID')
def test_recover_cluster(self, mock_conn):
mock_conn.return_value = self.conn
sc = client.Client()
res = sc.recover_cluster('FAKE_CLUSTER_ID')
self.assertEqual(self.service.recover_cluster.return_value, res)
self.service.recover_cluster.assert_called_once_with(
'FAKE_CLUSTER_ID')
def test_nodes(self, mock_conn):
mock_conn.return_value = self.conn
sc = client.Client()

@ -1029,6 +1029,25 @@ class ShellTest(testtools.TestCase):
service.cluster_update_policy.assert_called_once_with('C1', 'policy1',
**kwargs)
def test_do_cluster_check(self):
service = mock.Mock()
args = self._make_args({'id': ['cluster1']})
service.check_cluster = mock.Mock()
service.check_cluster.return_value = {'action': 'action_id'}
sh.do_cluster_check(service, args)
service.check_cluster.assert_called_once_with(['cluster1'])
def test_do_cluster_recover(self):
service = mock.Mock()
args = self._make_args({'id': ['cluster1']})
service.recover_cluster = mock.Mock()
service.recover_cluster.return_value = {'action': 'action_id'}
sh.do_cluster_recover(service, args)
service.recover_cluster.assert_called_once_with(['cluster1'])
@mock.patch.object(utils, 'print_list')
def test_do_node_list(self, mock_print):
service = mock.Mock()

@ -113,6 +113,12 @@ class Client(object):
def cluster_update_policy(self, cluster, policy, **attrs):
return self.service.cluster_update_policy(cluster, policy, **attrs)
def check_cluster(self, cluster, **params):
return self.service.check_cluster(cluster, **params)
def recover_cluster(self, cluster, **params):
return self.service.recover_cluster(cluster, **params)
def nodes(self, **queries):
return self.service.nodes(**queries)

@ -776,6 +776,22 @@ def do_cluster_policy_update(service, args):
print('Request accepted by action: %s' % resp['action'])
@utils.arg('id', metavar='<CLUSTER>',
help=_('ID or name of cluster to operate on.'))
def do_cluster_check(service, args):
"""Check the cluster(s)."""
resp = service.check_cluster(args.id)
print('Request accepted by action: %s' % resp['action'])
@utils.arg('id', metavar='<CLUSTER>',
help=_('ID or name of cluster to operate on.'))
def do_cluster_recover(service, args):
"""Recover the cluster(s)."""
resp = service.recover_cluster(args.id)
print('Request accepted by action: %s' % resp['action'])
# NODES