On 04/06/2012 09:50, [email protected] wrote:
> If it's that same bug, try the workarounds I listed in the bug
> report: either hardcode the filename, or put an intermediate bundle
> in between. Pass the name as a variable to the interim bundle and let
> the interim bundle call your final bundle. In the final bundle you
> refer to the variable as $(interim.variable), which does work.
Not hardcoding the filename was one of my concerns, so I tried the
interim bundle, and it works (see below), so it's probably the same bug.
Is it in the roadmap for 3.4.0?
Ciao
-- bronto
body common control
{
bundlesequence => { "test" } ;
inputs => { "cfengine_stdlib.cf" } ;
version => "test" ;
}
bundle agent test
{
vars:
"h" string => "/var/cfengine/testfiles/hosts" ;
methods:
"hosts" usebundle => hosts("$(h)","$(sys.ipv4)") ;
}
bundle agent hosts(h,myip)
{
vars:
"filename" string => "$(h)" ;
files:
"$(h)"
edit_line => fix_host_entries("$(myip)") ;
}
bundle edit_line fix_host_entries(myip)
{
vars:
"count" int => readstringarray("records", # array to populate
"$(hosts.filename)", # file to read
"\s*#[^\n]*?", # match comments
"\s+", # match fields
"1000", # max entries
"80000") ; # max bytes
"ip" slist => getindices("records") ;
"ipclass[$(ip)]" string => canonify("$(ip)") ;
reports:
__debug__::
"Read $(count) records from $(h)" ;
"Address matched: $(ip)" ;
}
_______________________________________________
Help-cfengine mailing list
[email protected]
https://cfengine.org/mailman/listinfo/help-cfengine