Thanks, I tried ‘return’ in shef, which failed, so I assumed it would fail in chef-client too. Apparently that’s not the case.
chef:recipe > return
ThreadError: return can’t jump across threads
From: AJ Christensen [mailto:firstname.lastname@example.org]
Sent: Wednesday, October 17, 2012 11:41 AM
Subject: [chef] Re: stopping recipe execution early
To expand; apologies: occasionally we’d skip the entire execution of a recipe depending solely upon the results from our Discovery  library cookbook.
A common (gated) execution pattern is:
return unless discovery_search(“a_servers_role_that_ineed”,
:empty_ok => false,
:environment_aware => true)
On 17 October 2012 23:38, AJ Christensen email@example.com wrote:
you can ‘return’ from the recipe DSL mid-compilation.
On 17 October 2012 23:11, Pitucha, Stanislaw Izaak
Is there some official (or at least working) way to stop execution of
a recipe early? (without affecting the rest of the run list) For
example if I have the whole recipe depending on a single switch, I
could just put it inside of:
but that would be spanning a couple of screens of code - not the
cleanest solution. Is there a good way to stop execution without
throwing an exception, so that I can do:
some_stop_function unless node[:switch]