[chef] Re: How to mark a ruby_block as failed?


Chronological Thread 
  • 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.

§