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