[chef] Re:: Using the wrapper cookbook development method to remove the pager duty contact from the Nagios Cookbook


Chronological Thread 
  • From: Joseph Hammerman < >
  • To: " " < >
  • Subject: [chef] Re:: Using the wrapper cookbook development method to remove the pager duty contact from the Nagios Cookbook
  • Date: Tue, 19 May 2015 14:44:21 +0000
  • Accept-language: en-US

Hi Drew,

I have reached out to the Nagios cookbook development team - they were
quite helpful, and there is actually a pending patch to rectify (at least
in part) the behavior that I was attempting to remedy with my logic. In
terms of a reliable, fast, and flexible development method though reaching
out to the developers leaves something to be desired.

Can you elaborate on the architectural features of the Nagios cookbook
that lead to me being unable to recompile the ERB?

My thinking is this: if the behavior is undefined and I can’t reliably
determine when I am encountering a cloned resource that cannot be
recompiled, that is a formula for wasting days of development time.

My instinct is to fork the repos I will be working with in the future, and
maintain a topic branch for business logic that I will not be upstreaming.
That way I can upstream and contribute any useful code that I write - I
guess another criticism that strikes me regarding the wrapper cookbook
development method is that it encourages people to gloss over bad logic
rather than fix it and upstream their fix.

I am not a developer by trade, so I imagine there are elements to this
discussion that I haven’t fully weighed. At any rate, thanks for your time
and for sharing your thoughts.

Joe
On 5/18/15, 10:44 PM, 
" "
 
< >
 wrote:

>
>Joe,
>
>The wrapper cookbook pattern is well worth it, IMO. Your problem seems
>related to architecture of the community cookbook and your internal
>needs. Maybe it would be helpful to open an issue in the nagios cookbook
>issue tracker to see if they can change/add something to help.
>
>Drew
>
>
>> On May 18, 2015, at 9:22 PM, Joseph Hammerman
>>< >
>> wrote:
>>
>> Thank you for clarifying that Daniel.
>>
>> This information is definitely making me reconsider the viability of the
>> wrapper cookbook development method.
>>
>> Would you happen to know if there is any more up to date information on
>> this issue than the final comment in CHEF-3694?
>>
>> Would you (or anyone else on the thread with us) be able to tell me if
>> there a way to identify which version of the object you are referencing?
>> It might save me some debug time if I ever encounter a similar issue.
>>
>> Thanks,
>> Joe
>>
>>> On 5/18/15, 1:29 PM, "Daniel DeLeo" 
>>> < >
>>>  wrote:
>>>
>>>
>>>
>>>> On Monday, May 18, 2015 at 9:25 AM, Joseph Hammerman wrote:
>>>>
>>>> Hi Chef users email distribution list,
>>>>
>>>> An update on this item: if I set load\_default\_config to false my
>>>> template renders correctly. Therefore, I conclude that the observed
>>>> behavior is a consequence of Chef¹s resource cloning.
>>>>
>>>> The only change from the pastebin below is that I tried defining and
>>>> explicitly passing in the variable that I have manipulated in my
>>>>wrapper
>>>> logic:
>>>>
>>>> nagios_contactgroups = Nagios.instance.contactgroups
>>>>
>>>> begin
>>>> t = resources(:template =>
>>>> "#{node['nagios']['config_dir']}/contacts.cfg")
>>>> t.source "contacts.cfg.erb"
>>>> t.cookbook "sm-nagios"
>>>> t.variables(:nagios_contactgroups => Nagios.instance.contactgroups)
>>>> #rescue Chef::Exceptions::ResourceNotFound
>>>> # Chef::Log.warn "could not find template
>>>> #{node['nagios']['config_dir']/contacts.cfg to modify"
>>>> End
>>>>
>>>>
>>>> Can anyone shed light on why the cloned resource is superseding my
>>>> attempt to open back up the object and re-render it?
>>> The problem with the clone behavior (well, one of them) is that you end
>>> up with two resources of the same type+name, but Chef elsewhere treats
>>> type+name as a unique id for a resource in the collection. Therefore,
>>> anything that looks up a resource by name+type (like the `resources`
>>> method) is going to have undefined behavior when resources have been
>>> cloned.
>>>
>>> --
>>> Daniel DeLeo
>>
>>
>>-------------------------------------------------------------------------
>>--
>>
>> This message is intended only for the addressee. Please notify sender
>>by e-mail if you are not the intended recipient. If you are not the
>>intended recipient, you may not copy, disclose, or distribute this
>>message or its contents to any other person and any such actions may be
>>unlawful.
>> SecondMarket, Inc. (Member FINRA/SIPC, MSRB Registered)
>>("SecondMarket") does
>> not accept time sensitive, action-oriented messages or transaction
>>orders, including orders to purchase or sell securities, via e-mail.
>> SecondMarket reserves the right to monitor and review the content of
>>all messages sent to or from this e-mail address. Messages sent to or
>>from this e-mail address may be stored on the SecondMarket e-mail system
>>and archived in accordance with FINRA and SEC regulations.
>> This message is intended for those with an in-depth understanding of
>>the high risk and illiquid nature of alternative assets and these assets
>>may not be suitable for you. This message is not a solicitation for an
>>order, and there is not enough information contained in this message in
>>which to make an investment decision and any information contained
>>herein should not be used as a basis for this purpose. SecondMarket does
>>not produce in-house research, make recommendations to purchase or sell
>>specific securities, provide investment advisory services, or conduct a
>>general retail business.

---------------------------------------------------------------------------

This message is intended only for the addressee. Please notify sender by 
e-mail if you are not the intended recipient. If you are not the intended 
recipient, you may not copy, disclose, or distribute this message or its 
contents to any other person and any such actions may be unlawful.
SecondMarket, Inc. (Member FINRA/SIPC, MSRB Registered) ("SecondMarket") does
not accept time sensitive, action-oriented messages or transaction orders, 
including orders to purchase or sell securities, via e-mail.
SecondMarket reserves the right to monitor and review the content of all 
messages sent to or from this e-mail address. Messages sent to or from this 
e-mail address may be stored on the SecondMarket e-mail system and archived 
in accordance with FINRA and SEC regulations.
This message is intended for those with an in-depth understanding of the high 
risk and illiquid nature of alternative assets and these assets may not be 
suitable for you. This message is not a solicitation for an order, and there 
is not enough information contained in this message in which to make an 
investment decision and any information contained herein should not be used 
as a basis for this purpose. SecondMarket does not produce in-house research, 
make recommendations to purchase or sell specific securities, provide 
investment advisory services, or conduct a general retail business.


  • [chef] Re:: Using the wrapper cookbook development method to remove the pager duty contact from the Nagios Cookbook, Joseph Hammerman, 05/19/2015

Archive powered by MHonArc 2.6.16.

§