On Friday, November 23, 2012 9:05:07 AM UTC-6, badbishop wrote:
>
> A quote from http://docs.puppetlabs.com/references/latest/type.html#exec
>
> refreshHow to refresh this command. By default, the exec is just called
>> again when it receives an event from another resource, but this parameter
>> allows you to define a different command for refreshing.
>
>
> A different command... like what?
>
Anything you like, though some things make more sense than others. Here is
a contrived example that I hope will communicate at least the spirit:
exec { 'Puppet Timestamps':
command => 'echo "first run:" > /var/log/puppet_timestamp; date >>
/var/log/puppet_timestamp',
refresh => 'touch /var/log/puppet_timestamp',
creates => '/var/log/puppet_timestamp',
provider => 'sh'
}
That will manage a file /var/log/puppet_timestamp whose text records a
timestamp of the Puppet run in which it was created, and whose file
timestamp is updated to the current time every time Puppet refreshes it.
> What does it add to 'refreshonly' attribute?
>
The 'refreshonly' attribute allows the Exec's refresh action to be executed
without first executing its synchronization action. Normally both the
refresh and the synchronization action are given by the 'command' parameter
(though I don't think that's quite how it should be, and there is a chance
it will change in the future; see
http://projects.puppetlabs.com/issues/5876). If you assign a 'refresh'
parameter then that -- instead of the 'command' parameter -- gives the
refresh action.
>
> Actually, what I'm looking for, is a conditional triggering of one exec by
> another. That is exec1 notifies exec2 only if exec1 command has been
> actually executed.
> 'onlyif' can prevent the execution of exec1 itself, but doesn't prevent,
> say, notify=>Exec['2'] from happening.
>
Then you are looking for the 'creates', 'unless', and/or 'onlyif'
parameters of exec1. Use those to determine whether exec1 needs to run.
If it is synchronized without actually running -- as controlled by those
parameters -- then it will not broadcast events to other resources.
If exec2 should do nothing when it does not receive an event from exec1,
then you want "refreshonly => true" on exec2. The 'refresh' parameter is
inappropriate for that use case.
John
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/puppet-users/-/yl5lLT5M7GUJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/puppet-users?hl=en.