Hello folks,
I'm stuck with the variables expansion. Maybe somebody can explain me
what's going on? Here is the test bundle:
#######################################################
bundle common g
{
vars:
"crontab" string => "/etc/crontab";
}
body common control
{
bundlesequence => { test("on") };
}
bundle agent test(state)
{
vars:
"id" string => "test";
"path" string => "/root/bin";
groupX::
"addon" slist => { "x" };
groupY::
"addon" slist => { "y1", "y2", "y3", "y4" };
classes:
"off" expression => regcmp("off", "$(state)");
files:
"$(g.crontab)"
comment => "Ensure $(g.crontab) is set up accordingly to state",
edit_line => test_crontab("$(id)", "$(path)", "$(state)");
}
########################################################
bundle edit_line test_crontab(id, path, state)
{
vars:
"extra" slist => { @(test.addon) };
groupX::
"extra_line" string => "57 10 * * * root
nice -n -1 $(path)/$(id)-$(extra).sh";
groupY::
"min[y1]" int => "56";
"min[y2]" int => "57";
"min[y3]" int => "58";
"min[y4]" int => "59";
"extra_line" string => "$(min[$(extra)]) 10 * *
* root nice -n 10 $(path)/$(id)-$(extra).sh";
classes:
"add_line" not => regline(".*$(path)/$(id).*",
"$(edit.filename)");
"off" expression => regcmp("off", "$(state)");
delete_lines:
off::
".*$(path)/($id).*"
comment => "Remove appearances of ($id) from the
$(edit.filename)";
insert_lines:
!off.add_line::
"$(extra_line)
59 10 * * * root $(path)/$(id)"
comment => "Configure $(id) crontab call";
reports:
!off.add_line::
"$(id) added to $(edit.filename)";
}
########################################################
When I run cf-promises -v -D groupX -f ./test.cf, I'm getting the
following warnings:
cf3 Initiate variable convergence...
cf3 !! Redefinition of variable "extra_line" (embedded list in RHS)
in context "test_crontab"
cf3 Initiate control variable convergence...
cf3 Initiate variable convergence...
cf3 !! Redefinition of variable "extra_line" (embedded list in RHS)
in context "test_crontab"
cf3 # Knowledge map reporting feature is only available in version
Nova and above
cf3 -> Defined classes = { [skip] }
cf3 -> Negated Classes = { }
cf3 !! Unresolved variables in rval of "extra_line" in scope test_crontab
cf3 Initiate variable convergence...
cf3 !! Redefinition of variable "extra_line" (embedded list in RHS)
in context "test_crontab"
cf3 !! Unresolved variables in rval of "extra_line" in scope test_crontab
cf3 Initiate control variable convergence...
cf3 -> Inputs are valid
I consider those messages as warnings because inputs are reported to
be valid, but I would like to eliminate those warnings for cleaning
outputs at least. Can anybody advise me how to achieve that? Thank you
in advance.
--
SY, Seva Gluschenko.
_______________________________________________
Help-cfengine mailing list
[email protected]
https://cfengine.org/mailman/listinfo/help-cfengine