Forum: CFEngine Help
Subject: Re: CFEngine Help: Re: Var in var : limitation ?
Author: loopx
Link to topic: https://cfengine.com/forum/read.php?3,26688,26758#msg-26758
Here is a reproductible example. 2 files (located under input/) :
test_global.cf :
###########################################################
# Description : global configuration for Cfengine/XXX #
###########################################################
bundle common g {
vars:
my_server::
"service_detected" string => "management";
classes:
any::
"my_server" expression => "";
}
test_subversion.cf :
###########################################################
# Description : configuration file for Subversion servers #
###########################################################
body common control {
bundlesequence => { "subversion" };
inputs => { "test_global.cf" };
}
bundle agent subversion {
vars:
my_server::
"service" string => "$(g.service_detected)";
"path_repository_default" string =>
"/mnt/data1/subversion";
my_server::
"repositories_$(service)"
slist => {
"$(path_repository_default)/cfengine3"
};
reports:
my_server::
"Defined repositories (var 'service'='$(service)') =
'$(repositories_$(service))'";
"Defined repositories (var
'g.service_detected'='$(g.service_detected)') =
'$(repositories_$(g.service_detected))'";
}
Run the example :
[0]$ pwd
/var/cfengine/inputs
[0]$ cf-agent -If test_subversion.cf
R: Defined repositories (var 'service'='management') =
'/mnt/data1/subversion/cfengine3'
R: Defined repositories (var 'g.service_detected'='management') =
'$(repositories_management)'
Fill in these 2 files and change the "" value with the name of your machine, ip
or anything you want. Run and you should get the same behavior : var wan't to
be expended as expected. The workaround is to do with var "service" (get local
copy of global var).
Version on RHEL6 : cfengine-3.3.0-1.el6.x86_64
_______________________________________________
Help-cfengine mailing list
[email protected]
https://cfengine.org/mailman/listinfo/help-cfengine