diff --git a/libpromises/generic_agent.c b/libpromises/generic_agent.c index 1995536703..1e67f53f8d 100644 --- a/libpromises/generic_agent.c +++ b/libpromises/generic_agent.c @@ -406,7 +406,8 @@ static bool LoadAugmentsData(EvalContext *ctx, const char *filename, const JsonE if (!(StringEqual(key, "vars") || StringEqual(key, "classes") || StringEqual(key, "inputs") || - StringEqual(key, "augments"))) + StringEqual(key, "augments") || + StringEqual(key, "variables"))) { Log(LOG_LEVEL_VERBOSE, "Unknown augments key '%s' in file '%s', skipping it", key, filename); @@ -730,6 +731,10 @@ static bool LoadAugmentsData(EvalContext *ctx, const char *filename, const JsonE EvalContextClassPutSoft(ctx, ckey, CONTEXT_SCOPE_NAMESPACE, default_tags); } } + else if (StringEqual(check, "true")) + { + EvalContextClassPutSoft(ctx, ckey, CONTEXT_SCOPE_NAMESPACE, default_tags); + } free(check); } else if (JsonGetElementType(data) == JSON_ELEMENT_TYPE_CONTAINER && @@ -753,6 +758,10 @@ static bool LoadAugmentsData(EvalContext *ctx, const char *filename, const JsonE free(check); break; } + else if (StringEqual(check, "true")) + { + EvalContextClassPutSoft(ctx, ckey, CONTEXT_SCOPE_NAMESPACE, default_tags); + } free(check); } @@ -790,6 +799,11 @@ static bool LoadAugmentsData(EvalContext *ctx, const char *filename, const JsonE installed = EvalContextClassPutSoftTagsSetWithComment(ctx, ckey, CONTEXT_SCOPE_NAMESPACE, tags, comment); } + else if (StringEqual(check, "true")) + { + installed = EvalContextClassPutSoftTagsSetWithComment(ctx, ckey, CONTEXT_SCOPE_NAMESPACE, + tags, comment); + } free(check); break; } @@ -1590,8 +1604,6 @@ void GenericAgentInitialize(EvalContext *ctx, GenericAgentConfig *config) OpenLog(default_facility); SetSyslogFacility(default_facility); - EvalContextClassPutHard(ctx, "any", "source=agent"); - GenericAgentAddEditionClasses(ctx); // May set "enterprise_edition" class const Class *enterprise_edition = EvalContextClassGet(ctx, "default", "enterprise_edition"); diff --git a/tests/acceptance/00_basics/def.json/class_from_classexpression.cf b/tests/acceptance/00_basics/def.json/class_from_classexpression.cf index 80531c1716..ca1598d62a 100644 --- a/tests/acceptance/00_basics/def.json/class_from_classexpression.cf +++ b/tests/acceptance/00_basics/def.json/class_from_classexpression.cf @@ -29,6 +29,8 @@ bundle agent main "augments_class_from_classexpression_not", "augments_class_from_classexpression_or", "augments_class_from_classexpression_complex", + "augments_class_from_true", + not("augments_class_from_false") }; diff --git a/tests/acceptance/00_basics/def.json/class_from_classexpression.cf.json b/tests/acceptance/00_basics/def.json/class_from_classexpression.cf.json index cdbb1484eb..e7ae376103 100644 --- a/tests/acceptance/00_basics/def.json/class_from_classexpression.cf.json +++ b/tests/acceptance/00_basics/def.json/class_from_classexpression.cf.json @@ -6,6 +6,8 @@ "augments_class_from_classexpression_and": [ "cfengine.cfengine_3::" ], "augments_class_from_classexpression_not": [ "!MISSING::" ], "augments_class_from_classexpression_or": [ "cfengine|cfengine_3::" ], - "augments_class_from_classexpression_complex": [ "(cfengine|cfengine_3).!MISSING::" ] + "augments_class_from_classexpression_complex": [ "(cfengine|cfengine_3).!MISSING::" ], + "augments_class_from_true": [ true ], + "augments_class_from_false": [ false ] } }