On Mar 14, 4:40 pm, Peter Bukowinski <[email protected]> wrote:
> On Mar 14, 2012, at 5:20 PM, Peter Bukowinski wrote:
>
>
>
>
>
> > On Mar 14, 2012, at 5:00 PM, Eugene Vilensky wrote:
>
> >>>> On Monday, March 12, 2012 5:52:53 PM UTC-5, ed209 wrote:
>
> >>>>> Checkout the 'creates' property, it seems like a cleaner way of doing
> >>>>> this:
>
> >>>>>http://docs.puppetlabs.com/references/2.6.8/type.html#exec
>
> >>>> Pardon the newbie question, but does work on or de-reference symlinks?
>
> >> On Tue, Mar 13, 2012 at 3:51 PM, Mohamed Lrhazi <[email protected]> wrote:
> >>> You might want to rephrase your question, as it is not obvious, at
> >>> least not to me.
>
> >>> Mohamed.
>
> >> If the "creates" property of a Exec points to a symlink, what is the
> >> effect if the target of the symlink is missing?
>
> > The exec will not run in this case. The 'creates' attribute looks for 
> > something to exist at the specified path. A symlink, even if broken, is 
> > still a file.
>
> > These hypotheticals are simple to test out on your own. To test this case 
> > on any puppet client, first create a class:
>
> > #test.pp:
> > class test {
> >     exec { 'touch /opt/test.did.run': creates => '/opt/test.link' }
> > }
>
> > Then create a symlink to a non-existent file:
>
> >     ln -s /opt/nada /opt/test.link
>
> > Finally:
>
> >     puppet apply test.pp
>
> > /opt/test.did.run won't be created.
>
> Apologies, I was completely wrong. Must be something amiss with the above 
> manifest. Even when the target is missing it wasn't running the exec. The 
> following code will run the exec if the target is a broken symlink but will 
> not run it if the target it a valid symlink:
>
> puppet apply -e 'exec { "/bin/touch /opt/exec.did.run": creates => 
> "/opt/test.link" }'
>
> So, again, my former conclusion was incorrect. 'creates' appears to be smart 
> enough to recognize a broken symlink as a missing file.


I don't call that "smart", I call it "buggy".  The target of a symlink
is not the symlink itself.  Even a broken symlink named in an Exec's
'creates' should be sufficient to prevent that Exec from running.  At
best, the documentation is inadequate.  I encourage you to file an
issue report.


John

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
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.

Reply via email to