[chef] Re: Re: Re: ruby_block documentation wrong; how to set up a RunContext?


Chronological Thread 
  • From: Ranjib Dey < >
  • To:
  • Subject: [chef] Re: Re: Re: ruby_block documentation wrong; how to set up a RunContext?
  • Date: Wed, 25 Sep 2013 11:59:16 -0700

event dispatchers provides a generic event handler framework, formatters for example uses this. Depending upon what you are trying to do (or what api you are exposing via your modules) you can either reuse the existing handler or just pass nil. If you are exposing a single resource with all idempotency implementation inside your provider, you might create a run context from scratch , with no event dispatcher and use appropriate chef helpers (like converge_by, updated_by_last_action etc) to expose state change, and chef can take care of the rest. Other wise you can take the use_inline_resource like route where your sub-context will be constructed from current run context, this is a proxy abstractions, as in your abstraction will be broken down into  individual resources (that your abstractions define) transparently, and the full blown run_context.resource_collection will show all those resources.

i cant find the link,  but there was a superb post by yfeldbum on similar lines?


On Wed, Sep 25, 2013 at 11:48 AM, Brian Hatfield < " target="_blank"> > wrote:
Thank you for you response!

Is it reasonable to just nil the events dispatcher out? I'm struggling to understand what it does in a concrete manner - I'd be delighted to RTFM if there's some overview documentation about how I interact with it somewhere that I cannot find.

If I wanted to just use an existing events dispatcher during a run, how would I access it? Is that even a reasonable question, or should I be making a new one if I am making a new run context?

Thanks again,
Brian


On Wed, Sep 25, 2013 at 2:41 PM, Ranjib Dey < " target="_blank"> > wrote:
a run context object expects a node object at leas (rc= Chef::RunContext.new(node, nil, nil)) , check the setup_run_context method inside lib/chef/client.rb


On Wed, Sep 25, 2013 at 11:23 AM, Brian Hatfield < " target="_blank"> > wrote:
I have a library that needs to set up a raw ruby resource, similar to how it's documented here: http://docs.opscode.com/chef/resources.html#ruby-block. Unfortunately, part of that is setting up the RunContext, which I cannot find properly documented anywhere.

The code snippet `run_context = Chef::RunContext.new(node, {})` fails with an ArgumentError `wrong number of arguments (2 for 3)`, which after looking at the raw RunContext code, is correct - it wants a third, undocumented argument called "events".

How do I instantiate such an object to pass to the RunContext so I can get my resource to work correctly? Can someone point me at some documentation or an example for this?

Thank you!
Brian






Archive powered by MHonArc 2.6.16.

§