1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
#
# Time based orchestration
#
body common control
{
bundlesequence => { "example" };
inputs => { "$(sys.libdir)/stdlib.cf" };
}
###########################################
bundle common orchestrate
{
vars:
# Must have delay < reset_time
"reset_time" int => "2";
"delay" int => "1";
}
###########################################
bundle agent example
{
methods:
"immediate" usebundle => one,
classes => if_repaired_persist("countdown", "$(orchestrate.delay)"),
if => "!one";
"delayed" usebundle => two,
if => "one.!countdown";
reports:
countdown::
"Counting down ... $(sys.date)";
}
###########################################
bundle agent one
{
reports:
"One = $(this.bundle) at $(sys.date)"
classes => if_repaired_persist("$(this.bundle)", "$(orchestrate.reset_time)"),
action => if_elapsed("0");
"Set class $(this.bundle)"
if => "$(this.bundle)";
}
##########################################
bundle agent two
{
reports:
"Two = $(this.bundle) at $(sys.date)"
classes => if_repaired_persist("$(this.bundle)", "$(orchestrate.reset_time)"),
action => if_elapsed("0");
"Set class $(this.bundle)"
if => "$(this.bundle)";
}
###########################################
body classes if_repaired_persist(x,t)
{
promise_repaired => { "$(x)" };
persist_time => "$(t)";
}
body classes cancel_persist(x)
{
cancel_repaired => { "$(x)" };
}
|