From 81a56e8d68aa692a94372ba58d3ff546db110673 Mon Sep 17 00:00:00 2001 From: Victor Moene Date: Wed, 15 Jan 2025 15:42:32 +0100 Subject: [PATCH] Added default:sys.cf_edition variable Ticket: ENT-10078 Signed-off-by: Victor Moene Changelog: Introduced a new variable default:sys.cf_edition that keeps track whether cfengine is community or enterprise. --- libpromises/generic_agent.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/libpromises/generic_agent.c b/libpromises/generic_agent.c index 4b4b132fa7..66ea39ab3b 100644 --- a/libpromises/generic_agent.c +++ b/libpromises/generic_agent.c @@ -1591,7 +1591,17 @@ void GenericAgentInitialize(EvalContext *ctx, GenericAgentConfig *config) EvalContextClassPutHard(ctx, "any", "source=agent"); - GenericAgentAddEditionClasses(ctx); + GenericAgentAddEditionClasses(ctx); // May set "enterprise_edition" class + + const Class *enterprise_edition = EvalContextClassGet(ctx, "default", "enterprise_edition"); + if (enterprise_edition == NULL) + { + EvalContextVariablePutSpecial(ctx, SPECIAL_SCOPE_SYS, "cf_edition", "community", CF_DATA_TYPE_STRING, "derived-from=enterprise_edition,report"); + } + else + { + EvalContextVariablePutSpecial(ctx, SPECIAL_SCOPE_SYS, "cf_edition", "enterprise", CF_DATA_TYPE_STRING, "derived-from=enterprise_edition,report"); + } /* Make sure the chroot for recording changes this process would normally * make on the system is setup if that was requested. */