# Example policy showing features of reports type promises bundle agent main { reports: "It's recommended that you always guard reports" comment => "Remember by default output from cf-agent when run from cf-execd will be emailed"; DEBUG|DEBUG_main:: "Run with --define DEBUG or --define DEBUG_main to display this report"; methods: "Actuate bundle that reports with a return value" usebundle => bundle_with_return_value, useresult => "return_array", comment => "Reports can be used to return data into a parent bundle. This is useful in some re-usable bundle patterns."; reports: "I got '$(return_array[key])' returned from bundle_with_return_value"; "Reports can be redirected and appended to files" report_to_file => "$(sys.workdir)/report_output.txt", comment => "It's important to note that this will suppress the report from stdout."; "Report content of a file:$(const.n)$(const.n)------------------------" printfile => cat( $(this.promise_filename) ); } bundle agent bundle_with_return_value { reports: "value from bundle_with_return_value" bundle_return_value_index => "key"; } body printfile cat(file) { file_to_print => "$(file)"; number_of_lines => "inf"; } @if minimum_version(3.8) body printfile head(file) { inherit_from => "cat"; # GNU head defaults to 10 number_of_lines => "10"; } @endif