I think I got this. My main issue was the 'true' logic with an 'onlyif',
because that's always only going to either run (= and therefore meet the
requirement) or not run at all (= which also meets the requirement since
it's not a failure).
I feel the choice of words here leaves room for confusion. Like "unless"...
unless succeeds? unless fails? "requires" also leaves some amgiuity as
well, since it considers the requirement met as long as the required
resource did not explicitly return a failure. So "notrun" is just as good
as success, which to me doesn't really intuitively match what I think
"require" means.
Here's a set of tests that illustrate all this more clearly, in case it
helps someone else that stumbles on this post:
exec { "test1": command => "/bin/false", unless => "/bin/true" } #
unless = only if this fails
notify { "false, unless true fails, which it wont: this should not fail
(notrun) and i should see this": require => Exec["test1"] }
exec { "test2": command => "/bin/false", onlyif => "/bin/true" } #
onlyif = only if this returns true
notify { "false, but only if true: this should fail and i should not see
this": require => Exec["test2"] }
exec { "test3": command => "/bin/true", unless => "/bin/true" } # unless
= only if this fails
notify { "true, unless true fails, which it wont: this should not run
true (notrun) and i should see this": require => Exec["test3"] }
exec { "test4": command => "/bin/true", onlyif => "/bin/false" } # onlyif
= only if this returns true
notify { "true, but only if false returns true, which it wont: true will
be run and i should see this": require => Exec["test4"] }
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/puppet-users/e9c2a7a4-148b-4337-aba7-acf308e7cbe0%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.