56cb5f52fb
States were added to the Ironic API to enable the node servicing feature, which can be performed on nodes provisioned with Nova instances. Current nova, if asked to delete these instances, will only remove the instance metadata and not tear them down. This change has two parts: - I have added the new, relevant states to _UNPROVISION_STATES in driver.py, which now allows Nova to know that SERVIC* states and DEPLOYHOLD are safe to unprovision from. - I have added all existing ironic states to ironic_states.py and the PROVISION_STATE_LIST constant and check the state against it -- in a case where a completely unknown state is returned, we should attempt an unprovision. This fix needs to be backported as far as possible, as this bug has existed since Antelope / 2023.1 (DEPLOYHOLD) or Bobcat / 2023.3 (SERVIC*). Assisted-by: Claude Code Closes-bug: #2131960 Change-Id: I31c70d35b0e6e9f8d2252bfb2f0bdec477cc6cc7 Signed-off-by: Jay Faulkner <jay@jvf.cc>