Currently there is no map() function, but you can get a similar result
using iteration.

body common control {
    bundlesequence  => { 'example' };
}

bundle agent example {
vars:
    any::
        'nameserver' slist => { '192.168.1.1', '192.168.1.2' };
        'search' string => 'example.com';
        'resolv' string => '/tmp/resolv.conf';
files:
    any::
        "${resolv}"
            create => 'true',
            edit_line => AppendIfNoSuchLine("search ${search}");
        "${resolv}"
            edit_line => AppendIfNoSuchLine("nameserver ${nameserver}");
}

bundle edit_line AppendIfNoSuchLine(line) {
classes:
    'line_absent' not => regline("^${line}$","${edit.filename}");
insert_lines:
    line_absent::
        "${line}";
}

On Mon, Nov 30, 2009 at 6:53 AM, Matthias Teege <matthias-...@mteege.de> wrote:
> Moin,
>
> I have a question about list substition. I want to create a resolv.conf
> from variables.
>
> "dom" string => "example.com";
> "dns" slist => { "192.168.1.1", "192.168.1.2" };
>
> It would be nice if i can use a generic add_line macro like this one:
>
> bundle edit_line add_line(value) {
> insert_lines:
>  "${value}";
> }
>
> I can create a new list and use add_line:
>
> "resolv" slist => { "search $(dom)", @(dns) };
>
> "resolv.conf"
>
>  edit_line => add_line (@(resolv));
>
> But this does not give me a usefull resolv.conf because I missing
> "nameserver". Something like
>
> "resolv" slist => { "search $(dom)", "nameserver $(dns)" };
>
> does not work.
>
> Is it possible to "simulate" some kind of map function or list
> comprehension in cfe3? In python I can write:
>
> [ "nameserver %s" % h for h in ('192.168.1.1', '192.168.1.2') ]
>
> which gives me a new list.
>
> ['nameserver 192.168.1.1', 'nameserver 192.168.1.2']
>
> Is there something simular in cfe?
>
> Many thanks
> Matthias
>
> _______________________________________________
> 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