Merge "baremetal node: 'error' is a failed state" into stable/train
This commit is contained in:
commit
50c989891e
|
@ -487,7 +487,8 @@ class Node(_common.ListMixin, resource.Resource):
|
||||||
elif not abort_on_failed_state:
|
elif not abort_on_failed_state:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
if self.provision_state.endswith(' failed'):
|
if (self.provision_state.endswith(' failed') or
|
||||||
|
self.provision_state == 'error'):
|
||||||
raise exceptions.ResourceFailure(
|
raise exceptions.ResourceFailure(
|
||||||
"Node %(node)s reached failure state \"%(state)s\"; "
|
"Node %(node)s reached failure state \"%(state)s\"; "
|
||||||
"the last error is %(error)s" %
|
"the last error is %(error)s" %
|
||||||
|
|
|
@ -183,6 +183,18 @@ class TestNodeWaitForProvisionState(base.TestCase):
|
||||||
self.node.wait_for_provision_state,
|
self.node.wait_for_provision_state,
|
||||||
self.session, 'manageable')
|
self.session, 'manageable')
|
||||||
|
|
||||||
|
def test_failure_error(self, mock_fetch):
|
||||||
|
def _get_side_effect(_self, session):
|
||||||
|
self.node.provision_state = 'error'
|
||||||
|
self.assertIs(session, self.session)
|
||||||
|
|
||||||
|
mock_fetch.side_effect = _get_side_effect
|
||||||
|
|
||||||
|
self.assertRaisesRegex(exceptions.ResourceFailure,
|
||||||
|
'failure state "error"',
|
||||||
|
self.node.wait_for_provision_state,
|
||||||
|
self.session, 'manageable')
|
||||||
|
|
||||||
def test_enroll_as_failure(self, mock_fetch):
|
def test_enroll_as_failure(self, mock_fetch):
|
||||||
def _get_side_effect(_self, session):
|
def _get_side_effect(_self, session):
|
||||||
self.node.provision_state = 'enroll'
|
self.node.provision_state = 'enroll'
|
||||||
|
|
Loading…
Reference in New Issue