On Fri, May 14, 2010 at 4:58 PM, Сева Глущенко <[email protected]>wrote:
> The following promise
>
> "myarray[$(mykeys)]" string => execresult("/usr/bin/ps -f | grep
> $(mylist[$(mykeys)])","useshell");
>
> will expand not the way you expecting it. It doesn't mean
>
> "myarray[a]" string => execresult("/usr/bin/ps -f | grep
> $(mylist[a])","useshell");
> "myarray[b]" string => execresult("/usr/bin/ps -f | grep
> $(mylist[b])","useshell");
> "myarray[c]" string => execresult("/usr/bin/ps -f | grep
> $(mylist[c])","useshell");
>
> Instead, it means
>
> "myarray[a]" string => execresult("/usr/bin/ps -f | grep
> $(mylist[a])","useshell");
> "myarray[a]" string => execresult("/usr/bin/ps -f | grep
> $(mylist[b])","useshell");
> "myarray[a]" string => execresult("/usr/bin/ps -f | grep
> $(mylist[c])","useshell");
>
> and so forth.
>
I am not sure this is correct. For example, this bundle...
bundle agent atest {
vars:
"mylist[a]" string => "1";
"mylist[b]" string => "2";
"mylist[c]" string => "3";
"mykeys" slist => getindices("mylist");
"myarray[$(mykeys)]" string => execresult("/bin/echo
say_$(mylist[$(mykeys)]) | grep $(mylist[$(mykeys)])","useshell");
reports:
Yr2010::
">>$(myarray[$(mykeys)])";
}
...will print out reports as I expect, and without the error messages
before. So clearly, I can iterate over a list as part of an lvar in an
expression.
$ cf-agent -KI -f ./testbundle.cf
R: >>say_1
R: >>say_2
R: >>say_3
There seems to be something particular output the output of 'ps' that is
somehow causing it to trip up...that being said I can always run without -I
(which is what I do anyway), and the errors are not displayed but the result
is OK.
> If you really need to operate processes, I'd rather suggest you using
> process_select. If your task lays somewhere else, describe it more
> clearly.
>
> 2010/5/14 <[email protected]>:
> > For me, the following bundle:
> >
> > bundle agent atest {
> >
> > vars:
> >
> > "mylist[a]" string => "1";
> > "mylist[b]" string => "2";
> > "mylist[c]" string => "3";
> >
> > "mykeys" slist => getindices("mylist");
> >
> > "myarray[$(mykeys)]" string => execresult("/usr/bin/ps -f | grep
> > $(mylist[$(mykeys)])","useshell");
> > }
> >
> > Produces the following errors:
> >
> > $ cf-agent -KI -f ./testbundle.cf
> > Truncating long file /opt/atws/files/BUILT4 in readfile to max limit 4
> > !! Duplicate selection of value for variable "myarray[a]" in scope atest
> > Rule from ./roles/vnc.cf at/before line 27
> > !! Duplicate selection of value for variable "myarray[b]" in scope atest
> > Rule from ./roles/vnc.cf at/before line 27
> > !! Duplicate selection of value for variable "myarray[c]" in scope atest
> > Rule from ./roles/vnc.cf at/before line 27
> >
> > Can anyone else replicate this? And/or tell me what the issue is?
> >
> > I am using stock 3.04 on Solaris10/SPARC.
> >
> > Cheers
> > _______________________________________________
> > Help-cfengine mailing list
> > [email protected]
> > https://cfengine.org/mailman/listinfo/help-cfengine
> >
> >
>
>
>
> --
> SY, Seva Gluschenko.
>
_______________________________________________
Help-cfengine mailing list
[email protected]
https://cfengine.org/mailman/listinfo/help-cfengine