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
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine

Reply via email to