body common control { bundlesequence => { "test" }; } bundle agent test { vars: "c" slist => readstringlist( "${sys.workdir}/inputs/command_file.txt", "#.*", "\s", "5000", "5000k" ); methods: "any" usebundle => run_command("${c}"); } bundle agent run_command(c) { vars: "class_prefix" string => canonify("${this.bundle}"); commands: cfengine:: "${c}" classes => classes_generic("${class_prefix}"); } body classes classes_generic(x) # Define x prefixed/suffixed with promise outcome { promise_repaired => { "promise_repaired_$(x)", "$(x)_repaired", "$(x)_ok", "$(x)_reached" }; repair_failed => { "repair_failed_$(x)", "$(x)_failed", "$(x)_not_ok", "$(x)_not_kept", "$(x)_not_repaired", "$(x)_reached" }; repair_denied => { "repair_denied_$(x)", "$(x)_denied", "$(x)_not_ok", "$(x)_not_kept", "$(x)_not_repaired", "$(x)_reached" }; repair_timeout => { "repair_timeout_$(x)", "$(x)_timeout", "$(x)_not_ok", "$(x)_not_kept", "$(x)_not_repaired", "$(x)_reached" }; promise_kept => { "promise_kept_$(x)", "$(x)_kept", "$(x)_ok", "$(x)_not_repaired", "$(x)_reached" }; }