""" This module defines the state machine for the Productions """ from __future__ import absolute_import from __future__ import division from __future__ import print_function __RCSID__ = "45ddde113 (2021-10-01 11:19:55 +0200) Chris Burr " from DIRAC.Core.Utilities.StateMachine import State, StateMachine class ProductionsStateMachine(StateMachine): """Production Management System implementation of the state machine""" def __init__(self, state): """c'tor Defines the state machine transactions """ super(ProductionsStateMachine, self).__init__(state) # States transitions self.states = { "Cleaned": State(4), # final state # The Cleaning State should be added later. This State implies that there is an agent checking if # all the associated transformations are cleaned and which automatically updates the State to # Cleaned. For the moment the transition is directly from Stopped to Cleaned. # 'Cleaning' : State( 3, ['Cleaned'] ), "Stopped": State(3, ["Active", "Flush", "Cleaned"], defState="Active"), "Flush": State(2, ["Active", "Cleaned"], defState="Active"), "Active": State(1, ["Flush", "Stopped", "Cleaned"], defState="Flush"), # initial state "New": State(0, ["Active", "Cleaned"], defState="Active"), }