- From: Joshua Timberman <
>
- To:
- Subject: [chef] Re: How to mark a ruby_block as failed?
- Date: Wed, 22 Dec 2010 10:11:48 -0700
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Here's an example of using an execute resource in a ruby_block. I'm not aware
of an easier semantic.
ruby_block "A complex operation" do
block do
run_context = Chef::RunContext.new(node, {})
e = Chef::Resource::Execute.new("Something with mdadm", run_context)
e.command("put the command/commands here. multi-line with ruby here
document")
e.run_action(:run)
end
end
The key here is the run_context and the Chef::Resource syntax.
On Dec 22, 2010, at 8:27 AM, Joshua Timberman wrote:
>
Hi there!
>
>
You can use execute and other resources in ruby_block. It requires setting
>
the runcontext. I'll paste some code when I get back to my desk.
>
>
On Dec 21, 2010, at 1:20 PM, Jonathan Weiss
>
<
>
>
wrote:
>
>
> Cheers,
>
>
>
>
>
> I'm using a ruby_block to handle complex operations with mdadm in
>
> Chef. My question is, how do I tell Chef that my block failed and
>
> execution should halt with an error? In pseudo code:
>
>
>
> ruby_block "A complex operation" do
>
> block "using mdadm" do
>
> output = `do something`
>
> if $?.success?
>
> Chef::Log.info output
>
> else
>
> Chef::Log.error output
>
> # tell chef we failed
>
> end
>
> end
>
> end
>
>
>
> This would of course be easier if I could just use the execute
>
> resource in the ruby_block...
>
>
>
> Thanks,
>
> Jonathan
>
>
>
> --
>
> Jonathan Weiss
>
> http://blog.innerewut.de
>
> http://twitter.com/jweiss
- --
Opscode, Inc
Joshua Timberman, Technical Evangelist
IRC, Skype, Twitter, Github: jtimberman
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (Darwin)
iEYEARECAAYFAk0SMVQACgkQO97WSdVpzT13LQCeKdVmnEiGBNIRtDSLzHuRnzCh
CWwAnjYk70z9XpfDU6Ffo864mT5GUOM1
=GDzj
-----END PGP SIGNATURE-----
Archive powered by MHonArc 2.6.16.