The various states for Action Object processing are described as follows:
START: This is the initial state before any processing takes place.
WAIT_FOR_DIRECTORY_SYNCHRONIZATION: In this state, the Engine is waiting to see the Action Object itself in eDirectory. Because an Action Object node is placed in the process queue only after that object’s trigger has been set and an Event Monitor has reported it, an assumption is made that the Action Object persists in eDirectory until the Engine can see it. If an Action Object is deleted from eDirectory after the event notification and subsequent addition to the process queue, but before processing this state, the action remains in a pending state indefinitely.
VERIFY_TRIGGER: In this state, the Engine verifies that the trigger attribute has the proper value of Ready. If the attribute is not yet available, the Engine re-reads the Action Object periodically to see if the attribute is available. Once the attribute is available, if it does not contain the proper trigger value, the event is placed in the COMPLETE state. Otherwise, processing continues to the READ_DATA state.
READ_DATA: In this state, the Engine reads in the values of all the Action Object attributes that apply for the specific operation. Basic validation is performed on attribute values, and any error conditions in this level cause the event to be redrivable.
WAIT_ON_READY: This state is a placeholder for Action Object events that have an Execute Time set that defers initial processing of the event.
PROCESS: In this state, the Action Object itself is processed by calling the appropriate action function as determined by the Operation set in the Action Object.
IN_PROGRESS: Depending on the operation, some Action Objects might run asynchronous processes, such as a delegated operation like CopyDir. In these cases, the Engine must check the state of the delegated operation for this action on each process queue iteration until the operation is complete. For all other operations that were synchronously called during the PROCESS state, processing simply continues on to the next state.
SET_RESULT: In this state, the Engine sets the cccFSFactoryActionResult attribute of the Action Object in eDirectory. Because later states require the presence of this attribute, and because external systems such as Novell Identity Manager might also be interacting with the Action Object, processing does not continue past this state until the attribute can be set.
LINK: In this state, the Engine attempts to process the cccFSFactoryActionLinkNext attribute of the Action Object in eDirectory. If an action has completed successfully, and the LinkNext attribute was set, the Engine sets the trigger for the specified action to the value “ready”. If the cccFSFactoryLinkNext attribute is not set, or if the action itself did not complete successfully, processing continues with the next state.
CLEANUP: In this state, the Engine processes that value read from the cccFSFactoryActionCleanup attribute of the Action Object to determine whether it should remove the Action Object from eDirectory at the end of processing. If the cleanup attribute is present and set to the value System, or if it is set to the value OnSuccess and the operation is successful, it attempts to delete the associated Action Object from eDirectory. In all cases of failure, processing simply continues to the next state.
COMPLETE_PENDING: In this state, the Action Object trigger is cleared for Action Objects that have not been cleaned up.
COMPLETE: After this state is reached, the Action Object is eligible for removal from the process queue.