On Thu, May 19, 2011 at 08:43:52AM -0400, [email protected] wrote:
>Forum: Cfengine Help
>Subject: Re: this.promiser not interpolating in copy_from?
>Author: neilhwatson
>Link to topic: https://cfengine.com/forum/read.php?3,22059,22064#msg-22064
>
>Sjoerd Oostdijck Wrote:
>> Example:
>>
>> body common control {
>> bundlesequence => { "wiggle" };
>> inputs => {"policies/cfengine_stdlib.cf"};
>> }
>>
>> bundle agent wiggle {
>> files:
>> "/tmp/snarf.txt"
>> classes =>
>> if_repaired("snarf_copied"),
>> perms => mog("0700","root","root"),
>> copy_from =>
>> local_cp("$(this.promiser).template");
>
>The local_cp body is expecting the master source for /tmp/snarf.txt. That is
>what nees to go there. Don't bother using this.promiser in this instance.
>I've only seen it needed when performing group changes like -exec in find.
But there are cases where it is useful. For example, a minor change to
the copy action above will also fail:
bundle agent wiggle {
files:
"/tmp/snarf.txt"
classes => if_repaired("snarf_copied"),
perms => mog("0700","root","root"),
copy_from => local_cp("/nfs/cf_repo/$(this.promiser).template");
}
I've wanted to use ${this.promiser} in a copy_form body, as I have lots
of instances where I'm copying a list of files from a repository to a
final location and there are "no filename changes." Then I could do
something like this (which doesn't work):
body copy_from update_this {
any::
servers => { "$(g.policy_server)" };
source => "${g.data_files}/${this.promiser}";
copy_backup => "timestamp";
}
bundle agent updater {
files:
"/tmp/snarf.txt"
classes => if_repaired("snarf_copied"),
perms => mog("0700","root","root"),
copy_from => update_this;
}
As it stands, the places where ${this} is valid seem to be inconsistant.
It's been a while since I looked into it, so I'll try and spend some
cycles staring at it today.
--
Jesse Becker
NHGRI Linux support (Digicon Contractor)
_______________________________________________
Help-cfengine mailing list
[email protected]
https://cfengine.org/mailman/listinfo/help-cfengine