diff --git a/doc/source/images/states.png b/doc/source/images/states.png deleted file mode 100644 index e63be47e48..0000000000 Binary files a/doc/source/images/states.png and /dev/null differ diff --git a/doc/source/images/states.svg b/doc/source/images/states.svg new file mode 100644 index 0000000000..3435dce13b --- /dev/null +++ b/doc/source/images/states.svg @@ -0,0 +1,795 @@ + + + + + + +Ironic states + + + +enroll + +enroll + + + +verifying + +verifying + + + +enroll->verifying + + +manage (via API) + + + +verifying->enroll + + +fail + + + +manageable + +manageable + + + +verifying->manageable + + +done + + + +cleaning + +cleaning + + + +manageable->cleaning + + +provide (via API) + + + +manageable->cleaning + + +clean (via API) + + + +inspecting + +inspecting + + + +manageable->inspecting + + +inspect (via API) + + + +adopting + +adopting + + + +manageable->adopting + + +adopt (via API) + + + +cleaning->manageable + + +manage + + + +available + +available + + + +cleaning->available + + +done + + + +clean failed + +clean failed + + + +cleaning->clean failed + + +fail + + + +clean wait + +clean wait + + + +cleaning->clean wait + + +wait + + + +clean hold + +clean hold + + + +cleaning->clean hold + + +hold + + + +inspecting->manageable + + +done + + + +inspect failed + +inspect failed + + + +inspecting->inspect failed + + +fail + + + +inspect wait + +inspect wait + + + +inspecting->inspect wait + + +wait + + + +active + +active + + + +adopting->active + + +done + + + +adopt failed + +adopt failed + + + +adopting->adopt failed + + +fail + + + +available->manageable + + +manage (via API) + + + +deploying + +deploying + + + +available->deploying + + +active (via API) + + + +deploying->active + + +done + + + +deploy failed + +deploy failed + + + +deploying->deploy failed + + +fail + + + +wait call-back + +wait call-back + + + +deploying->wait call-back + + +wait + + + +deploy hold + +deploy hold + + + +deploying->deploy hold + + +hold + + + +active->deploying + + +rebuild (via API) + + + +deleting + +deleting + + + +active->deleting + + +deleted (via API) + + + +rescuing + +rescuing + + + +active->rescuing + + +rescue (via API) + + + +servicing + +servicing + + + +active->servicing + + +service (via API) + + + +deleting->cleaning + + +clean + + + +error + +error + + + +deleting->error + + +fail + + + +rescue + +rescue + + + +rescuing->rescue + + +done + + + +rescue wait + +rescue wait + + + +rescuing->rescue wait + + +wait + + + +rescue failed + +rescue failed + + + +rescuing->rescue failed + + +fail + + + +servicing->active + + +done + + + +service failed + +service failed + + + +servicing->service failed + + +fail + + + +service wait + +service wait + + + +servicing->service wait + + +wait + + + +service hold + +service hold + + + +servicing->service hold + + +hold + + + +error->deploying + + +rebuild (via API) + + + +error->deleting + + +deleted (via API) + + + +rescue->deleting + + +deleted (via API) + + + +rescue->rescuing + + +rescue (via API) + + + +unrescuing + +unrescuing + + + +rescue->unrescuing + + +unrescue (via API) + + + +unrescuing->active + + +done + + + +unrescue failed + +unrescue failed + + + +unrescuing->unrescue failed + + +fail + + + +deploy failed->deploying + + +rebuild (via API) + + + +deploy failed->deploying + + +active (via API) + + + +deploy failed->deleting + + +deleted (via API) + + + +wait call-back->deploying + + +resume + + + +wait call-back->deleting + + +deleted (via API) + + + +wait call-back->deploy failed + + +fail + + + +wait call-back->deploy hold + + +hold + + + +deploy hold->deploy failed + + +abort (via API) + + + +deploy hold->wait call-back + + +unhold + + + +clean failed->manageable + + +manage (via API) + + + +clean wait->cleaning + + +resume + + + +clean wait->clean failed + + +fail + + + +clean wait->clean failed + + +abort (via API) + + + +clean wait->clean hold + + +hold + + + +clean hold->clean failed + + +abort (via API) + + + +clean hold->clean wait + + +unhold + + + +inspect failed->manageable + + +manage (via API) + + + +inspect failed->inspecting + + +inspect (via API) + + + +inspect wait->manageable + + +done + + + +inspect wait->inspecting + + +resume + + + +inspect wait->inspect failed + + +fail + + + +inspect wait->inspect failed + + +abort (via API) + + + +adopt failed->manageable + + +manage (via API) + + + +adopt failed->adopting + + +adopt (via API) + + + +rescue wait->deleting + + +deleted (via API) + + + +rescue wait->rescuing + + +resume + + + +rescue wait->rescue failed + + +fail + + + +rescue wait->rescue failed + + +abort (via API) + + + +rescue failed->deleting + + +deleted (via API) + + + +rescue failed->rescuing + + +rescue (via API) + + + +rescue failed->unrescuing + + +unrescue (via API) + + + +unrescue failed->deleting + + +deleted (via API) + + + +unrescue failed->rescuing + + +rescue (via API) + + + +unrescue failed->unrescuing + + +unrescue (via API) + + + +service failed->rescuing + + +rescue (via API) + + + +service failed->servicing + + +service (via API) + + + +service wait->servicing + + +resume + + + +service wait->service failed + + +fail + + + +service wait->service failed + + +abort (via API) + + + +service wait->service hold + + +hold + + + +service hold->servicing + + +service + + + +service hold->service failed + + +abort (via API) + + + +service hold->service wait + + +unhold + + + diff --git a/doc/source/user/states.rst b/doc/source/user/states.rst index c6eb8b70c7..199b7e7d7b 100644 --- a/doc/source/user/states.rst +++ b/doc/source/user/states.rst @@ -17,7 +17,7 @@ API-initiated-transitions that are possible from non-stable states. The events for these API-initiated transitions are indicated with '(via API)'. Internally, the conductor initiates the other transitions (depicted in gray). -.. figure:: ../images/states.png +.. figure:: ../images/states.svg :width: 660px :align: left :alt: Ironic state transitions @@ -256,3 +256,37 @@ unrescue failed using the ``unrescue`` verb. * ``available`` (through ``deleting``) by setting the node's provision state using the ``deleted`` verb. + + +Servicing +========= + +servicing + Nodes in the ``servicing`` state are nodes that are having service performed + on them. This service is similar to cleaning, but is performed on nodes currently + in ``active`` state and returns them to ``active`` state when complete. + + When a node is in the ``servicing`` state it means that the conductor is + executing the service step or preparing the environment to execute the step. + + See :doc:`/admin/servicing` for more details on Node servicing. + +service wait + Just like the ``servicing`` state, the nodes in the ``service wait`` state are + being serviced with service steps. The difference is that in the + ``service wait`` state the conductor is waiting for the ramdisk to boot or the + clean step which is running in-band to finish. + + The servicing of a node in the ``service wait`` state can be interrupted + by setting the node's provision state using the ``abort`` verb if the task + that is running allows it. + +service failed + This is the state a node will move into when a service operation fails, + for example a timeout waiting for the ramdisk to PXE boot. From here the + node can be transitioned to: + + * ``active`` (through ``servicing``) by setting the node's provision state + using the ``service`` verb. + * ``rescue`` (through ``rescuing``) by setting the node's provision state + using the ``rescue`` verb. diff --git a/tox.ini b/tox.ini index aa7698470d..b4c0c8378d 100644 --- a/tox.ini +++ b/tox.ini @@ -36,7 +36,7 @@ deps = {[testenv]deps} [testenv:genstates] allowlist_externals = {toxinidir}/tools/states_to_dot.py deps = {[testenv]deps} - pydot2 + pydot commands = {toxinidir}/tools/states_to_dot.py -f {toxinidir}/doc/source/images/states.svg --format svg [testenv:pep8] @@ -177,4 +177,4 @@ deps = codespell # note(JayF): {posargs} lets us run `tox -ecodespell -- -w` to get codespell # to correct spelling issues in our code it's aware of. commands = - codespell {posargs} \ No newline at end of file + codespell {posargs}