Thanks Nick. I obviously didn't quite parse that as classes will also not be
available'. Would *any* classes be available when passing template_data? (Just
wondering; I think I might be referencing things like redhat_7 class in the
odd template, and it seems to me that I need to very carefully look at that
again. Or just not ever user 'template_data' :) )
Ted Zlatanov <t...@lifelogs.com> writes:
As another idea, you could capture datastate() in container D and then
use mergedata() to mix D.classes into your desired templatedata (making
a new container or on the fly).
Yes, thanks for saying what I apparently omitted. Here is an example
that shows merging explicit data with classes.
bundle agent main { vars: "m" data => '{ "MyData": "explicit" }'; # Get current datastate, pick classes, reparent classes, merge explicit # data on to classes "s" data => datastate(), if => not( isvariable ( s ) ); "c" data => mergedata( '{ }', "s[classes]" ); "c1" data => mergedata( '{"classes": c}' ); "r" data => mergedata( c1, m ); reports: "$(with)" with => string_mustache("My data is {{{MyData}}} and I am running CFEngine {{#classes.enterprise_edition}}Enterprise{{/classes.enterprise_edition}}{{^classes.enterprise_edition}}Community{{/classes.enterprise_edition}}", r ); "The full data container:$(const.n)$(with)" with => string_mustache("{{%-top-}}", r ); }
R: My data is explicit and I am running CFEngine Enterprise
R: The full data container:
{
"MyData": "explicit",
"classes": {
"127_0_0_1": true,
"172_17_0_1": true,
"192_168_0_1": true,
"192_168_100_1": true,
"192_168_10_1": true,
"192_168_121_1": true,
"192_168_122_1": true,
"192_168_42_189": true,
"4_cpus": true,
"64_bit": true,
"Day8": true,
"GMT_Afternoon": true,
"GMT_Day8": true,
"GMT_Hr13": true,
"GMT_Hr13_Q4": true,
"GMT_Lcycle_2": true,
"GMT_Min45_50": true,
"GMT_Min49": true,
"GMT_Monday": true,
"GMT_October": true,
"GMT_Q4": true,
"GMT_Yr2018": true,
"Hr08": true,
"Hr08_Q4": true,
"Hr8": true,
"Lcycle_2": true,
"Min45_50": true,
"Min49": true,
"Monday": true,
"Morning": true,
"October": true,
"PK_SHA_43c979e264924d0b4a2d3b568d71ab8c768ef63487670f2c51cd85e8cec63834": true,
"Q4": true,
"Yr2018": true,
"agent": true,
"any": true,
"cfengine": true,
"cfengine_3": true,
"cfengine_3_12": true,
"cfengine_3_12_0": true,
"compiled_on_linux_gnu": true,
"debian": true,
"debian_buster": true,
"enterprise": true,
"enterprise_3": true,
"enterprise_3_12": true,
"enterprise_3_12_0": true,
"enterprise_edition": true,
"fe80__5ee0_c5ff_fe9f_f38f": true,
"fe80__fc54_ff_fe61_1523": true,
"fe80__fc54_ff_fe7a_cef0": true,
"fe80__fc54_ff_fef0_9262": true,
"fe80__fc54_ff_fef8_3bda": true,
"feature": true,
"feature_curl": true,
"feature_def": true,
"feature_def_json": true,
"feature_def_json_preparse": true,
"feature_xml": true,
"feature_yaml": true,
"ipv4_127": true,
"ipv4_127_0": true,
"ipv4_127_0_0": true,
"ipv4_127_0_0_1": true,
"ipv4_172": true,
"ipv4_172_17": true,
"ipv4_172_17_0": true,
"ipv4_172_17_0_1": true,
"ipv4_192": true,
"ipv4_192_168": true,
"ipv4_192_168_0": true,
"ipv4_192_168_0_1": true,
"ipv4_192_168_10": true,
"ipv4_192_168_100": true,
"ipv4_192_168_100_1": true,
"ipv4_192_168_10_1": true,
"ipv4_192_168_121": true,
"ipv4_192_168_121_1": true,
"ipv4_192_168_122": true,
"ipv4_192_168_122_1": true,
"ipv4_192_168_42": true,
"ipv4_192_168_42_189": true,
"ipv4_gw_192_168_42_1": true,
"ipv6_fe80__5ee0_c5ff_fe9f_f38f": true,
"ipv6_fe80__fc54_ff_fe61_1523": true,
"ipv6_fe80__fc54_ff_fe7a_cef0": true,
"ipv6_fe80__fc54_ff_fef0_9262": true,
"ipv6_fe80__fc54_ff_fef8_3bda": true,
"linux": true,
"linux_4_15_0_33_lowlatency": true,
"linux_x86_64": true,
"linux_x86_64_4_15_0_33_lowlatency": true,
"linux_x86_64_4_15_0_33_lowlatency__36_Ubuntu_SMP_PREEMPT_Wed_Aug_15_17_20_28_UTC_2018": true,
"mac_02_42_d2_da_e3_92": true,
"mac_52_54_00_3c_1e_b7": true,
"mac_52_54_00_6b_62_06": true,
"mac_52_54_00_7d_55_73": true,
"mac_52_54_00_9b_e8_bd": true,
"mac_52_54_00_ff_1d_f1": true,
"mac_5c_e0_c5_9f_f3_8f": true,
"net_iface_docker0": true,
"net_iface_lo": true,
"net_iface_virbr0": true,
"net_iface_virbr1": true,
"net_iface_virbr3": true,
"net_iface_virbr4": true,
"net_iface_virbr5": true,
"net_iface_wlan0": true,
"nickanderson_thinkpad_w550s": true,
"nova": true,
"nova_3": true,
"nova_3_12": true,
"nova_3_12_0": true,
"nova_edition": true,
"systemd": true,
"ubuntu": true,
"ubuntu_18": true,
"ubuntu_18_04": true,
"ubuntu_18_4": true,
"x86_64": true
}
}
–
Nick Anderson| Doer of Things | (+1) 785-550-1767 | https://northern.tech