Merge "Add node check and recover into CLI"
This commit is contained in:
@@ -356,6 +356,23 @@ class ClientTest(testtools.TestCase):
|
||||
self.service.delete_node.assert_called_once_with(
|
||||
'FAKE_ID', True)
|
||||
|
||||
def test_check_node(self, mock_conn):
|
||||
mock_conn.return_value = self.conn
|
||||
sc = client.Client()
|
||||
|
||||
res = sc.check_node('FAKE_ID')
|
||||
self.assertEqual(self.service.check_node.return_value, res)
|
||||
self.service.check_node.assert_called_once_with('FAKE_ID')
|
||||
|
||||
def test_recover_node(self, mock_conn):
|
||||
mock_conn.return_value = self.conn
|
||||
sc = client.Client()
|
||||
|
||||
res = sc.recover_node('FAKE_ID')
|
||||
self.assertEqual(self.service.recover_node.return_value, res)
|
||||
self.service.recover_node.assert_called_once_with(
|
||||
'FAKE_ID')
|
||||
|
||||
def test_delete_node_ignore_missing(self, mock_conn):
|
||||
mock_conn.return_value = self.conn
|
||||
sc = client.Client()
|
||||
|
||||
@@ -1136,6 +1136,46 @@ class ShellTest(testtools.TestCase):
|
||||
msg = _('Failed to delete some of the specified nodes.')
|
||||
self.assertEqual(msg, six.text_type(ex))
|
||||
|
||||
def test_do_node_check(self):
|
||||
service = mock.Mock()
|
||||
args = self._make_args({'id': ['node1']})
|
||||
service.check_node = mock.Mock()
|
||||
|
||||
sh.do_node_check(service, args)
|
||||
|
||||
service.check_node.assert_called_once_with('node1')
|
||||
|
||||
def test_do_node_check_not_found(self):
|
||||
service = mock.Mock()
|
||||
ex = exc.HTTPNotFound
|
||||
service.check_node.side_effect = ex
|
||||
|
||||
args = self._make_args({'id': ['node1']})
|
||||
ex = self.assertRaises(exc.CommandError,
|
||||
sh.do_node_check, service, args)
|
||||
msg = _('Failed to check some of the specified nodes.')
|
||||
self.assertEqual(msg, six.text_type(ex))
|
||||
|
||||
def test_do_node_recover(self):
|
||||
service = mock.Mock()
|
||||
args = self._make_args({'id': ['node1']})
|
||||
service.check_node = mock.Mock()
|
||||
|
||||
sh.do_node_recover(service, args)
|
||||
|
||||
service.recover_node.assert_called_once_with('node1')
|
||||
|
||||
def test_do_node_recover_not_found(self):
|
||||
service = mock.Mock()
|
||||
ex = exc.HTTPNotFound
|
||||
service.recover_node.side_effect = ex
|
||||
|
||||
args = self._make_args({'id': ['node1']})
|
||||
ex = self.assertRaises(exc.CommandError,
|
||||
sh.do_node_recover, service, args)
|
||||
msg = _('Failed to recover some of the specified nodes.')
|
||||
self.assertEqual(msg, six.text_type(ex))
|
||||
|
||||
@mock.patch.object(sh, '_show_node')
|
||||
def test_do_node_update(self, mock_show):
|
||||
service = mock.Mock()
|
||||
|
||||
@@ -128,6 +128,12 @@ class Client(object):
|
||||
def delete_node(self, node, ignore_missing=True):
|
||||
return self.service.delete_node(node, ignore_missing)
|
||||
|
||||
def check_node(self, node, **params):
|
||||
return self.service.check_node(node, **params)
|
||||
|
||||
def recover_node(self, node, **params):
|
||||
return self.service.recover_node(node, **params)
|
||||
|
||||
def receivers(self, **queries):
|
||||
return self.service.receivers(**queries)
|
||||
|
||||
|
||||
@@ -940,6 +940,42 @@ def do_node_update(service, args):
|
||||
_show_node(service, node.id)
|
||||
|
||||
|
||||
@utils.arg('id', metavar='<NODE>', nargs='+',
|
||||
help=_('ID of node(s) to check.'))
|
||||
def do_node_check(service, args):
|
||||
"""Check the node(s)."""
|
||||
failure_count = 0
|
||||
|
||||
for nid in args.id:
|
||||
try:
|
||||
service.check_node(nid)
|
||||
except exc.HTTPNotFound:
|
||||
failure_count += 1
|
||||
print('Node id "%s" not found' % nid)
|
||||
if failure_count > 0:
|
||||
msg = _('Failed to check some of the specified nodes.')
|
||||
raise exc.CommandError(msg)
|
||||
print('Request accepted')
|
||||
|
||||
|
||||
@utils.arg('id', metavar='<NODE>', nargs='+',
|
||||
help=_('ID of node(s) to recover.'))
|
||||
def do_node_recover(service, args):
|
||||
"""Recover the node(s)."""
|
||||
failure_count = 0
|
||||
|
||||
for nid in args.id:
|
||||
try:
|
||||
service.recover_node(nid)
|
||||
except exc.HTTPNotFound:
|
||||
failure_count += 1
|
||||
print('Node id "%s" not found' % nid)
|
||||
if failure_count > 0:
|
||||
msg = _('Failed to recover some of the specified nodes.')
|
||||
raise exc.CommandError(msg)
|
||||
print('Request accepted')
|
||||
|
||||
|
||||
# RECEIVERS
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user