First you need to pass the list to the edit bundle with @(list)
rather than iterating too high up -- otherwise you will edit the file once for
each line,
instead of editing the file once with all lines.
see tests/units/unit_edit_insert_lines_silly.cf
(attached)
nwat...@symcor.com wrote:
> Greetings,
>
> I need some help with a editing promise that uses list iteration.
>
> body common control {
> bundlesequence => { "test" };
> }
>
> bundle common g {
> classes:
>
> "all" expression => "any";
> }
>
> bundle agent test {
>
> vars:
>
> any::
> "x" slist => { "one", "two", "three" };
>
> files:
>
> any::
> "/tmp/foo"
> edit_line => AppendIfNoLine("${x}");
> }
>
> bundle edit_line AppendIfNoLine(line) {
> insert_lines:
> "${line}" location => "append";
> }
>
> body location append {
> before_after => "after";
> }
>
> Expected results
> [r...@unxxhd01 inputs]# cat /tmp/foo
> one
> two
> three
>
> Actual results
> [r...@unxxhd01 inputs]# cf-agent -f ./bar.cf
> [r...@unxxhd01 inputs]# !cat
> cat /tmp/foo
> one
>
> What have I missed?
>
>
> Sincerely,
> --
> Neil Watson
> 416-673-3465
>
>
> ------------------------------------------------------------------------
>
>
>
> CONFIDENTIALITY WARNING
> This communication, including any attachments, is for the exclusive use of
> addressee and may contain proprietary and/or confidential information. If you
> are not the intended recipient, any use, copying, disclosure, dissemination
> or distribution is strictly prohibited. If you are not the intended
> recipient, please notify the sender immediately by return e-mail, delete this
> communication and destroy all copies.
>
> AVERTISSEMENT RELATIF À LA CONFIDENTIALITÉ
> Ce message, ainsi que les pièces qui y sont jointes, est destiné à l’usage
> exclusif de la personne à laquelle il s’adresse et peut contenir de
> l’information personnelle ou confidentielle. Si le lecteur de ce message n’en
> est pas le destinataire, nous l’avisons par la présente que toute diffusion,
> distribution, reproduction ou utilisation de son contenu est strictement
> interdite. Veuillez avertir sur-le-champ l’expéditeur par retour de courrier
> électronique et supprimez ce message ainsi que toutes les pièces jointes.
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Help-cfengine mailing list
> Help-cfengine@cfengine.org
> 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
-------------------------------------------------
#######################################################
#
# Insert a number of lines
#
#######################################################
body common control
{
any::
bundlesequence => { "insert" };
}
#######################################################
bundle agent insert
{
vars:
"v" slist => {
"One potato",
"Two potato",
"Three potatoe",
"Four"
};
files:
"/tmp/test_insert"
create => "true",
edit_line => Insert("@(insert.v)");
# edit_defaults => empty;
}
#######################################################
# For the library
#######################################################
bundle edit_line Insert(name)
{
insert_lines:
"$(name)";
}
#######################################################
body edit_defaults empty
{
empty_file_before_editing => "true";
}
_______________________________________________
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine