Project

General

Profile

Actions

Bug #14215

closed

file_from_string_mustache GM unwanted behaviour when the mustache template use non-printable elements

Added by Félix DALLIDET almost 6 years ago. Updated over 2 years ago.

Status:
Released
Priority:
N/A
Category:
Generic methods
Target version:
Severity:
UX impact:
User visibility:
Effort required:
Priority:
0
Name check:
Fix check:
Regression:

Description

When using a wrong call in the template given to the generic method, for example, a call to print a key which has subkeys,
cf-engine will fails to render the template BUT it will use the last template rendering value instead...

The generic method should initialize the content of the rendered template, try to expand it via cf-engine, and then check that
it has successfully been changed before writing it to the result file.

Minimal problem showcase is found below:

bundle agent main {
  vars:
    "test" data => '{"key1": "value1" }';
  methods:
    "any1" usebundle => template("/tmp/test1", "content");
    # Exists bot not displayable
    # The value is not recomputed
    "any2" usebundle => template("/tmp/test2", "{{{vars.main}}}");
}

bundle agent template(dest, template) {
  vars:
    "content" string => string_mustache("${template}", datastate());

  reports:
    "${dest}:${content}";
}`
Actions

Also available in: Atom PDF