Merge "Allow a node in service fail state to be unprovisioned"

This commit is contained in:
Zuul 2025-03-19 21:03:23 +00:00 committed by Gerrit Code Review
commit 09ce4dede1
3 changed files with 25 additions and 0 deletions

View File

@ -666,3 +666,6 @@ machine.add_transition(SERVICEFAIL, SERVICING, 'service')
# A node in service fail can be rescued
machine.add_transition(SERVICEFAIL, RESCUING, 'rescue')
# A no in service fail may be deleted.
machine.add_transition(SERVICEFAIL, DELETING, 'delete')

View File

@ -6212,6 +6212,23 @@ ORHMKeXMO8fcK0By7CiMKwHSXCoEQgfQhWwpMdSsO8LgHCjh87DQc= """
expect_errors=True)
self.assertEqual(http_client.BAD_REQUEST, ret.status_code)
def test_provision_with_unprovision_after_service_failed(self):
node = self.node
node.provision_state = states.SERVICEFAIL
node.target_provision_state = states.ACTIVE
node.save()
ret = self.put_json('/nodes/%s/states/provision' % node.uuid,
{'target': states.DELETED})
self.assertEqual(http_client.ACCEPTED, ret.status_code)
self.assertEqual(b'', ret.body)
self.mock_dntd.assert_called_once_with(
mock.ANY, mock.ANY, node.uuid, 'test-topic')
# Check location header
self.assertIsNotNone(ret.location)
expected_location = '/v1/nodes/%s/states' % node.uuid
self.assertEqual(urlparse.urlparse(ret.location).path,
expected_location)
@mock.patch.object(rpcapi.ConductorAPI, 'do_provisioning_action',
autospec=True)
def test_provide_from_manage(self, mock_dpa):

View File

@ -0,0 +1,5 @@
---
features:
- |
Add support for a node in service failed state can be unprovisioned
via the ``delete`` provision action.