sig
type failure_reason
type progress = [ `Changed_state | `No_change ]
type 'a transition_callback =
?log:string ->
'a -> Ketrew_pure.Target.t * Ketrew_pure.Target.Automaton.progress
type severity = [ `Fatal | `Try_again ]
type bookkeeping = { plugin_name : string; run_parameters : string; }
type long_running_failure =
Ketrew_pure.Target.Automaton.severity * string *
Ketrew_pure.Target.Automaton.bookkeeping
type long_running_action =
(Ketrew_pure.Target.Automaton.bookkeeping,
Ketrew_pure.Target.Automaton.long_running_failure)
Pvem.Result.t
type process_check =
[ `Still_running of Ketrew_pure.Target.Automaton.bookkeeping
| `Successful of Ketrew_pure.Target.Automaton.bookkeeping ]
type process_status_check =
(Ketrew_pure.Target.Automaton.process_check,
Ketrew_pure.Target.Automaton.long_running_failure)
Pvem.Result.t
type condition_evaluation =
(bool, Ketrew_pure.Target.Automaton.severity * string) Pvem.Result.t
type dependencies_status =
[ `All_succeeded
| `At_least_one_failed of Ketrew_pure.Target.id list
| `Still_processing ]
type transition =
[ `Activate of
Ketrew_pure.Target.id list *
unit Ketrew_pure.Target.Automaton.transition_callback
| `Check_and_activate_dependencies of
Ketrew_pure.Target.Automaton.dependencies_status
Ketrew_pure.Target.Automaton.transition_callback
| `Check_process of
Ketrew_pure.Target.Automaton.bookkeeping *
Ketrew_pure.Target.Automaton.process_status_check
Ketrew_pure.Target.Automaton.transition_callback
| `Do_nothing of unit Ketrew_pure.Target.Automaton.transition_callback
| `Eval_condition of
Ketrew_pure.Target.Condition.t *
Ketrew_pure.Target.Automaton.condition_evaluation
Ketrew_pure.Target.Automaton.transition_callback
| `Kill of
Ketrew_pure.Target.Automaton.bookkeeping *
Ketrew_pure.Target.Automaton.long_running_action
Ketrew_pure.Target.Automaton.transition_callback
| `Start_running of
Ketrew_pure.Target.Automaton.bookkeeping *
Ketrew_pure.Target.Automaton.long_running_action
Ketrew_pure.Target.Automaton.transition_callback ]
val transition :
Ketrew_pure.Target.t -> Ketrew_pure.Target.Automaton.transition
end