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