There is a bug that has been reported in the latest release involving slists 
with a single element.  I am sure that a patch is on the way soon...

-Dan

On Nov 16, 2010, at 12:11 PM, Gusto wrote:

> Hi Folks,
> 
> I am seeing this behavior on the the 3.1.0 release, where if I define
> in a bundle some variables I can not use them later on in the same
> bundle. The normal order should be vars then later the files right?
> This might have been discussed on another thread that I missed --
> tried to follow as many as possible. Has anyone seen this issue, or a
> solution?
> 
> Any pointer are greatly appreciated
> Best regards,
> Gusto
> 
> 
> Details:
>  OS: Centos 5.5 x86_64
>  Cfengine: gnu build in RPM version 3.1.0 final tar file.
>  Use Case: I define in a agent bundle under vars the paths and server
> strings/string lists for the paths and servers. This could be
> something like your update.cf or just your failsafe.cf. When I run the
> bundle does not see them. I had used this for my 3.0.5p1 configs (rpms
> built on same server just release changed). During the beta I thought
> this might have been the issue Neil spotted (
> https://cfengine.com/bugtracker/view.php?id=334 ).
> 
> I took a copy of the unit_server_copy_remote.cf and added the vars to
> show what I see.
> 
> NOTE: tester.server.com is defined as my network cf3 server. To
> simplify this host is also acting as the server so there is no key
> exchange complications.
> ##### ---------------------- Sample from the unit_test modified to
> show issue ---------------------------
> body common control
>   {
>      bundlesequence  => {
>                         "testbundle"
>                         };
>   }
> 
> ############################################
> bundle agent testbundle
> {
> 
> vars:
>   linux::
>    "master_test" string => "/var/cfmasterfiles/cf310dev/test/";
>    "master_server" slist => { "tester.server.com" };
> 
> classes:
>    "testdir" expression => isdir("/tmp/testcf310");
> 
> files:
>  testdir::
>    "/tmp/testcf310/somesample.txt"
>       perms => system,
>       copy_from =>
> mycopy("$(master_server)/somesample.txt","$(master_server)"), #Does
> not show all vars expanded.
>       #copy_from =>
> mycopy("$(master_server)/somesample.txt","tester.server.com"), #Does
> not show all vars expanded.
>       #copy_from =>
> mycopy("/var/cfmasterfiles/cf310dev/test/somesample.txt","tester.server.com"),
> #only way to get a copy moving.
>       depth_search => recurse("inf"),
>       classes  => repaired("got_somesample");
> 
> reports:
>   testdir::
>    "The test dir is there and we have that class";
> 
>   got_somesample::
>    "Got the sample file";
> }
> 
> ############################################
> body perms system
> {
> mode  => "0444";
> }
> #########################################################
> body depth_search recurse(d)
> {
> depth => "$(d)";
> }
> 
> #########################################################
> body classes repaired(class)
> {
>  promise_repaired => { "$(class)" };
> }
> 
> #########################################################
> body copy_from mycopy(from,server)
> {
> source      => "$(from)";
> #portnumber => "6789";
> servers     => { "$(server)" , "failover1" };
> copy_backup => "true";                   #/false/timestamp
> stealth     => "true";                   #/on/false/off
> preserve    => "true";
> linkcopy_patterns => { ".*fish.*" };
> copylink_patterns => { "non-local.*"};
> xdev        => "true";                   # /on/false/off
> compare     => "mtime";                  #
> ctime/mtime/checksum/sum/byte/binary/any
> link_type    => "absolute";              # /symbolic/relative/hard etc
> type_check   => "true";
> force_update => "false";
> force_ipv4   => "false";
> copy_size        => irange("0","50000");
> trustkey    => "true";
> encrypt     => "true";
> verify      => "true";
> #purge       => "false";
> purge       => "true";
> #findertype  => "MacOSX";
> }
> ##### --------------------- Sample End ---------------------------
> 
> Running in debug 1 I see this:
> 
> Matched syntatically correct bundle (lval,rval) item = (perms) to its rval
> Constraint syntax ok, but definition of body is elsewhere perms=s
> Prepending scalar to rval-list [system]
> CopyRvalItem(s)
>   Appending Constraint: perms => system
> Recorded LVAL copy_from
> Found function identifier mycopy
> Start FnCall mycopy args level 1
> Appending scalar to rval-list [ $(master_server)/somesample.txt]
> CopyRvalItem(s)
> Appending scalar to rval-list [$(master_server)]
> CopyRvalItem(s)
> End args level 1
> Installing Function Call mycopy
> Installed mycopy( $(master_server)/somesample.txt,$(master_server),)
> om,)
> 
> Running the server binary manually in foreground and with verbose I
> also only see this connection when I don't use variables.
> _______________________________________________
> Help-cfengine mailing list
> Help-cfengine@cfengine.org
> https://cfengine.org/mailman/listinfo/help-cfengine

_______________________________________________
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine

Reply via email to