diff --git a/doc/source/images/states.svg b/doc/source/images/states.svg index 159719fffc..775792e318 100644 --- a/doc/source/images/states.svg +++ b/doc/source/images/states.svg @@ -1,286 +1,298 @@ - - - + + Ironic states - + enroll - -enroll + +enroll verifying - -verifying + +verifying enroll->verifying - - -on_manage + + +on_manage manageable - -manageable + +manageable -verifying->manageable - - -on_done +verifying->manageable + + +on_done -verifying->enroll - - -on_fail +verifying->enroll + + +on_fail cleaning - -cleaning + +cleaning manageable->cleaning - - -on_provide + + +on_provide + + +manageable->cleaning + + +on_clean inspecting - -inspecting + +inspecting -manageable->inspecting - - -on_inspect +manageable->inspecting + + +on_inspect available - -available + +available -cleaning->available - - -on_done +cleaning->available + + +on_done clean failed - -clean failed + +clean failed -cleaning->clean failed - - -on_fail +cleaning->clean failed + + +on_fail clean wait - -clean wait + +clean wait -cleaning->clean wait - - -on_wait +cleaning->clean wait + + +on_wait + + +cleaning->manageable + + +on_manage -inspecting->manageable - - -on_done +inspecting->manageable + + +on_done inspect failed - -inspect failed + +inspect failed -inspecting->inspect failed - - -on_fail +inspecting->inspect failed + + +on_fail deploying - -deploying + +deploying -available->deploying - - -on_deploy +available->deploying + + +on_deploy -available->manageable - - -on_manage +available->manageable + + +on_manage deploy failed - -deploy failed + +deploy failed -deploying->deploy failed - - -on_fail +deploying->deploy failed + + +on_fail wait call-back - -wait call-back + +wait call-back -deploying->wait call-back - - -on_wait +deploying->wait call-back + + +on_wait active - -active + +active -deploying->active - - -on_done +deploying->active + + +on_done -active->deploying - - -on_rebuild +active->deploying + + +on_rebuild deleting - -deleting + +deleting -active->deleting - - -on_delete +active->deleting + + +on_delete error - -error + +error -deleting->error - - -on_error +deleting->error + + +on_error -deleting->cleaning - - -on_clean +deleting->cleaning + + +on_clean -error->deploying - - -on_rebuild +error->deploying + + +on_rebuild -error->deleting - - -on_delete - - -deploy failed->deploying - - -on_rebuild +error->deleting + + +on_delete deploy failed->deploying - - -on_deploy + + +on_rebuild + + +deploy failed->deploying + + +on_deploy -deploy failed->deleting - - -on_delete +deploy failed->deleting + + +on_delete -wait call-back->deploying - - -on_resume +wait call-back->deploying + + +on_resume -wait call-back->deploy failed - - -on_fail +wait call-back->deploy failed + + +on_fail -wait call-back->deleting - - -on_delete +wait call-back->deleting + + +on_delete -clean failed->manageable - - -on_manage +clean failed->manageable + + +on_manage -clean wait->clean failed - - -on_fail +clean wait->clean failed + + +on_fail -clean wait->clean failed - - -on_abort +clean wait->clean failed + + +on_abort -clean wait->cleaning - - -on_resume +clean wait->cleaning + + +on_resume -inspect failed->manageable - - -on_manage +inspect failed->manageable + + +on_manage -inspect failed->inspecting - - -on_inspect +inspect failed->inspecting + + +on_inspect diff --git a/ironic/common/states.py b/ironic/common/states.py index e61c807344..721cbc4e35 100644 --- a/ironic/common/states.py +++ b/ironic/common/states.py @@ -46,6 +46,7 @@ VERBS = { 'provide': 'provide', 'inspect': 'inspect', 'abort': 'abort', + 'clean': 'clean', } """ Mapping of state-changing events that are PUT to the REST API @@ -298,12 +299,18 @@ machine.add_transition(CLEANING, CLEANWAIT, 'wait') machine.add_transition(CLEANWAIT, CLEANING, 'resume') # An operator may want to move a CLEANFAIL node to MANAGEABLE, to perform -# other actions like zapping +# other actions like cleaning machine.add_transition(CLEANFAIL, MANAGEABLE, 'manage') -# From MANAGEABLE, a node may move to available after going through cleaning +# From MANAGEABLE, a node may move to available after going through automated +# cleaning machine.add_transition(MANAGEABLE, CLEANING, 'provide') +# From MANAGEABLE, a node may be manually cleaned, going back to manageable +# after cleaning is completed +machine.add_transition(MANAGEABLE, CLEANING, 'clean') +machine.add_transition(CLEANING, MANAGEABLE, 'manage') + # From AVAILABLE, a node may be made unavailable by managing it machine.add_transition(AVAILABLE, MANAGEABLE, 'manage')