This has to do with lists, not arrays. There are technical reasons why lists
cannot be
referenced from remote contexts, and I am ambivalent about the solution.
Passing the list
as a parameter is a good way of solving the problem *and* making visible the
fact that the
variable is remote.
Justin Lloyd wrote:
> Looks like my problem was basic Cfengine array scoping. I need to assign the
> global array to a local slist in each scope where I want to access it.
>
> bundle common dg {
> vars:
> "c" => readstringarray("config", ...);
> }
>
> bundle agent dgtest {
> vars:
> "config" slist => { @(dg.config) };
>
> Reports:
> "Parameter is $(config[RUNTIME])";
> }
>
> It's kinda frustrating if I want to use that global array throughout my
> policy, which was the idea for having it in the first place.
>
> Unless I missing something else...
>
> Justin
>
> -----Original Message-----
> From: [email protected] [mailto:[email protected]]
> Sent: Wednesday, February 03, 2010 12:34 PM
> To: Justin Lloyd
> Cc: [email protected]; [email protected]
> Subject: RE: Defining classes using array values
>
> Still wfm
>
> [r...@unxxhd01 inputs]# cf-agent -If ./foo.cf
> Validation: Scalar item in built-in FnCall isvariable-arg => {
> config[RUNTIME] } in rvalue is out of bounds (value should match pattern
> [a-zA-Z0-9_$.]+)
> R: config[RUNTIME] is a variable with value CONFIG!!
> Validation: Scalar item in built-in FnCall isvariable-arg => {
> config[RUNTIME] } in rvalue is out of bounds (value should match pattern
> [a-zA-Z0-9_$.]+)
> Validation: Scalar item in built-in FnCall isvariable-arg => {
> config[RUNTIME] } in rvalue is out of bounds (value should match pattern
> [a-zA-Z0-9_$.]+)
>
> [r...@unxxhd01 inputs]# cat foo.cf
> ######################
> body common control {
> bundlesequence => { "neil" };
> }
>
> bundle agent neil {
>
> vars:
>
> "config[RUNTIME]" string => "CONFIG!!";
>
> classes:
>
> "runtime_${config[RUNTIME]}" expression =>
> isvariable("config[RUNTIME]");
>
> reports:
>
> redhat::
> "config[RUNTIME] is a variable with value ${config[RUNTIME]}",
> ifvarclass => "runtime_${config[RUNTIME]}";
> }
>
> Sincerely,
> --
> Neil Watson
> 416-673-3465
>
> This electronic communication and any attachments may contain confidential
> and proprietary
> information of DigitalGlobe, Inc. If you are not the intended recipient, or
> an agent or employee
> responsible for delivering this communication to the intended recipient, or
> if you have received
> this communication in error, please do not print, copy, retransmit,
> disseminate or
> otherwise use the information. Please indicate to the sender that you have
> received this
> communication in error, and delete the copy you received. DigitalGlobe
> reserves the
> right to monitor any electronic communication sent or received by its
> employees, agents
> or representatives.
>
> _______________________________________________
> Help-cfengine mailing list
> [email protected]
> https://cfengine.org/mailman/listinfo/help-cfengine
--
Mark Burgess
-------------------------------------------------
Professor of Network and System Administration
Oslo University College, Norway
Personal Web: http://www.iu.hio.no/~mark
Office Telf : +47 22453272
-------------------------------------------------
_______________________________________________
Help-cfengine mailing list
[email protected]
https://cfengine.org/mailman/listinfo/help-cfengine