https://gist.github.com/3667439
I am having issues getting a class to raise when one class is present
and another is not. It must be something simple I am overlooking.
The area in question is around the redfish class in this example.
I expect to be able to set cat_tail to something other than true and
have the report printed. Set cat_tail to true and it should not be
printed. What I get is the report printed all of the time.
body common control {
inputs => { "../sketches/CFEngine/stdlib/cfengine_stdlib.cf" };
bundlesequence => { "main" };
}
bundle agent main
{
vars:
"cat_hat" string => "true";
"cat_tail" string => "true";
methods:
"story time" usebundle => test("main.cat_");
}
bundle agent test(prefix)
{
vars:
"bundle" string => "test";
"class_prefix" string => "$(prefix)$(bundle)_";
classes:
"$(class_prefix)thing1" expression => regcmp("true", "$($(prefix)hat)");
"$(class_prefix)thing2" expression => regcmp("true", "$($(prefix)tail)");
# Define redfish when thing one but not thing 2
# Notice that class_prefix contains illegal characters (the dot in
main.cat_)
# So when testing the existance of the classes must be careful to
# classify/canonify the strings
"$(class_prefix)redfish" and => { classify("$(class_prefix)thing1"),
classify(not("$(class_prefix)thing2"))
};
reports:
cfengine::
"I have a cat in a hat with no tail",
ifvarclass => canonify("$(class_prefix)redfish");
}
_______________________________________________
Help-cfengine mailing list
[email protected]
https://cfengine.org/mailman/listinfo/help-cfengine