The variable is used in the “any” section not defined. If I change it to:
{{{
LISA_CLUSTER::
"cluster_name" string => "lisa";
"cluster_inputs" slist => {
"$(cluster_name)/cluster.cf",
};
}}}
I get the following error message:
12:48 r41n1.lisa.surfsara.nl:/var/cfengine
root# /var/cfengine/bin/cf-agent -KI -f ./test_promises.cf -DRUN
error: Unresolved variable '@(g.cluster_inputs)' in input list, cannot parse
error: Unresolved variable '@(g.cluster_inputs)' in input list, cannot parse
R: run_test lisa
So its looks like the “body common control” can not resolve it.
> On 24 mei 2016, at 12:22, Dimitrios Apostolou <[email protected]> wrote:
>
> Thanks Bas. This is a known issue I'm facing when a variable is defined
> twice: once under "any" context and once under "LISA_CLUSTER" context, in
> your case.
>
> In theory redefining a variable should be forbidden, because convergence
> becomes uncertain.
>
> In practice though the variable can get redefined with a new value on each
> pass. Then which value should you use in the reports (or any other) promise
> that uses that variable? Should you use both, and report a different message
> on each pass? I.e. execute the promise twice?
>
>
> Dimitris
>
>
> On Tue, May 24, 2016 at 8:55 AM, Bas van der Vlies
> <[email protected]> wrote:
> I just tested it and my setup to include the proper config files for
> different clusters does not work anymore. Here is a reduced examples. The
> class LISA_CLUSTER is defined by init_node and now the
> cluster_name is unresolved: /var/cfengine/bin/cf-agent -KI -f
> ./test_promise.cf -DRUN
> {{{
> error: Unresolved variable '$(cluster_name)/cluster.cf' in input list,
> cannot parse
> error: Unresolved variable '$(cluster_name)/cluster.cf' in input list,
> cannot parse
> R: run_test
> }}}
>
> {{{
> body common control
> {
> version => "$Revision: 4450 $ $Author: bas $";
> ignore_missing_bundles => "true";
>
> ## Default handshake protocol to connect to server
> protocol_version => "2";
>
>
> inputs => {
> @(g.cluster_inputs),
> };
>
> bundlesequence => {
> @(run.sara_bundles)
> };
> #
> ## End
> }
>
> bundle common g
> {
> classes:
>
> ## do not execute node_init if one of the classes is set via
> command line
> #
> "GOT_INIT"
> or => {
> "LISA_CLUSTER",
> };
>
> ## Use realpath instead of variable name else the classes are
> activated to late
> #
> !GOT_INIT::
> "GOT_INIT" expression =>
> usemodule("init_node","/etc/node_status/cluster");
>
> vars:
>
> UNDEFINED::
> "cluster_name" string => "undefined";
> "cluster_inputs" slist => {
> "undefined/dummy.cf",
> };
>
> LISA_CLUSTER::
> "cluster_name" string => "lisa";
>
> any::
> "cluster_inputs" slist => {
> "$(cluster_name)/cluster.cf",
> };
> }
>
> bundle agent run
> {
> vars:
>
> any::
> "quarterly_bundle" slist => {
> "run_test"
> };
>
> "sara_bundles" slist => { @(quarterly_bundle) },
> policy => "overridable";
> }
>
> bundle agent run_test
> {
> reports:
> "run_test";
> }
> }}}
>
>
> > On 20 mei 2016, at 23:39, Dimitrios Apostolou <[email protected]> wrote:
> >
> > Hello list,
> >
> > As part of fixing CFE-2162 [1] I have rewritten the iteration engine of
> > CFEngine, i.e. the backend that makes sure promises are actuated over each
> > element of slists or containers.
> >
> > [1] https://tracker.mender.io/browse/CFE-2162
> >
> > The changes go deep inside the evaluator, and behavioural changes are
> > expected, like "cf_null" no longer being treated specially, and other
> > more subtle things! So I've prepared an Alpha build of my private branch
> > and all testing would be appreciated. You can find the builds at:
> >
> > https://cfengine-package-repos.s3.amazonaws.com/experimental/CFE-2162/cfengine-community-3.10.0-0.a1.0.22.i386.rpm
> > https://cfengine-package-repos.s3.amazonaws.com/experimental/CFE-2162/cfengine-community-3.10.0-0.a1.0.22.x86_64.rpm
> > https://cfengine-package-repos.s3.amazonaws.com/experimental/CFE-2162/cfengine-community_3.10.0~a1~22_amd64.deb
> > https://cfengine-package-repos.s3.amazonaws.com/experimental/CFE-2162/cfengine-community_3.10.0~a1~22_i386.deb
> >
> > Just remember that this is highly experimental code, in preliminary
> > stage, so take precautions and run your tests in a VM. And debug output
> > (-d) is way too dense at this point, you've been warned. :-) The main
> > reason I'm putting this out is to get feedback on compatibility with
> > your existing policy.
> >
> > The big difference of this build should be much better performance in
> > policies with nested expansions of slists/containers.
> >
> > All feedback is appreciated - positive or negative, on all aspects like
> > performance, correctness etc.
> >
> >
> > Thanks!
> > Dimitris
> >
> >
> > P.S. Sorry for hijacking help-cfengine mailing list, the only purpose is to
> > catch as much attention as possible; Please respond only on dev-cfengine
> > which is more relevant to the subject.
> >
> > --
> > You received this message because you are subscribed to the Google Groups
> > "help-cfengine" group.
> > To unsubscribe from this group and stop receiving emails from it, send an
> > email to [email protected].
> > To post to this group, send email to [email protected].
> > Visit this group at https://groups.google.com/group/help-cfengine.
> > For more options, visit https://groups.google.com/d/optout.
>
> ---
> Bas van der Vlies
> | Operations, Support & Development | SURFsara | Science Park 140 | 1098 XG
> Amsterdam
> | T +31 (0) 20 800 1300 | [email protected] | www.surfsara.nl |
>
>
---
Bas van der Vlies
| Operations, Support & Development | SURFsara | Science Park 140 | 1098 XG
Amsterdam
| T +31 (0) 20 800 1300 | [email protected] | www.surfsara.nl |
--
You received this message because you are subscribed to the Google Groups
"dev-cfengine" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/dev-cfengine/691496D2-FFEB-4C48-8A9E-6127F09273A5%40surfsara.nl.
For more options, visit https://groups.google.com/d/optout.