Remove unneeded exception handling from agent driver
RPC "continue_node_clean" is an RPC cast, there will be no exception raised by the conductor. Change-Id: I4d23dc4a7bfb5d3835e62ac580dbb7ce77a11d3c
This commit is contained in:
parent
1fcb6c52a2
commit
1ee9111263
@ -302,24 +302,20 @@ class HeartbeatMixin(object):
|
|||||||
node.touch_provisioning()
|
node.touch_provisioning()
|
||||||
elif node.provision_state == states.CLEANWAIT:
|
elif node.provision_state == states.CLEANWAIT:
|
||||||
node.touch_provisioning()
|
node.touch_provisioning()
|
||||||
try:
|
if not node.clean_step:
|
||||||
if not node.clean_step:
|
LOG.debug('Node %s just booted to start cleaning.',
|
||||||
LOG.debug('Node %s just booted to start cleaning.',
|
node.uuid)
|
||||||
node.uuid)
|
msg = _('Node failed to start the first cleaning step.')
|
||||||
msg = _('Node failed to start the first cleaning '
|
# First, cache the clean steps
|
||||||
'step.')
|
self.refresh_clean_steps(task)
|
||||||
# First, cache the clean steps
|
# Then set/verify node clean steps and start cleaning
|
||||||
self.refresh_clean_steps(task)
|
manager_utils.set_node_cleaning_steps(task)
|
||||||
# Then set/verify node clean steps and start cleaning
|
# The exceptions from RPC are not possible as we using cast
|
||||||
manager_utils.set_node_cleaning_steps(task)
|
# here
|
||||||
_notify_conductor_resume_clean(task)
|
_notify_conductor_resume_clean(task)
|
||||||
else:
|
else:
|
||||||
msg = _('Node failed to check cleaning progress.')
|
msg = _('Node failed to check cleaning progress.')
|
||||||
self.continue_cleaning(task)
|
self.continue_cleaning(task)
|
||||||
except exception.NoFreeConductorWorker:
|
|
||||||
# waiting for the next heartbeat, node.last_error and
|
|
||||||
# logging message is filled already via conductor's hook
|
|
||||||
pass
|
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
err_info = {'node': node.uuid, 'msg': msg, 'e': e}
|
err_info = {'node': node.uuid, 'msg': msg, 'e': e}
|
||||||
|
@ -215,29 +215,6 @@ class HeartbeatMixinTest(AgentDeployMixinBaseTest):
|
|||||||
mock_continue.assert_called_once_with(mock.ANY, task)
|
mock_continue.assert_called_once_with(mock.ANY, task)
|
||||||
mock_handler.assert_called_once_with(task, mock.ANY)
|
mock_handler.assert_called_once_with(task, mock.ANY)
|
||||||
|
|
||||||
@mock.patch.object(manager_utils, 'cleaning_error_handler')
|
|
||||||
@mock.patch.object(agent_base_vendor.HeartbeatMixin,
|
|
||||||
'continue_cleaning', autospec=True)
|
|
||||||
def test_heartbeat_continue_cleaning_no_worker(self, mock_continue,
|
|
||||||
mock_handler):
|
|
||||||
self.node.clean_step = {
|
|
||||||
'priority': 10,
|
|
||||||
'interface': 'deploy',
|
|
||||||
'step': 'foo',
|
|
||||||
'reboot_requested': False
|
|
||||||
}
|
|
||||||
|
|
||||||
mock_continue.side_effect = exception.NoFreeConductorWorker()
|
|
||||||
|
|
||||||
self.node.provision_state = states.CLEANWAIT
|
|
||||||
self.node.save()
|
|
||||||
with task_manager.acquire(
|
|
||||||
self.context, self.node.uuid, shared=False) as task:
|
|
||||||
self.deploy.heartbeat(task, 'http://127.0.0.1:8080')
|
|
||||||
|
|
||||||
mock_continue.assert_called_once_with(mock.ANY, task)
|
|
||||||
self.assertFalse(mock_handler.called)
|
|
||||||
|
|
||||||
@mock.patch.object(agent_base_vendor.HeartbeatMixin, 'continue_deploy',
|
@mock.patch.object(agent_base_vendor.HeartbeatMixin, 'continue_deploy',
|
||||||
autospec=True)
|
autospec=True)
|
||||||
@mock.patch.object(agent_base_vendor.HeartbeatMixin,
|
@mock.patch.object(agent_base_vendor.HeartbeatMixin,
|
||||||
|
Loading…
Reference in New Issue
Block a user