- From: Sean OMeara <
>
- To:
- Subject: [chef] Re: Re: Re: notifies on resource not notifying
- Date: Thu, 27 Dec 2012 13:12:11 -0500
Hi Seif.
It turns out that I gave you the wrong advice, since I didn't actually
dig into the teamcity cookbook code (like I am now.)
The gist I sent you was a workaround for when you're using nested Chef
resources in LWRP code. It would help in a situation like this:
# cookbooks/custom/providers/foo.rb
action :download do
directory "/some/dir" do
action :create
owner "fonzi"
remote_file "somefile" do
source "
http://www.example.com/somefile.tgz"
checksum "123456"
end
end
^ In that example, "directory" and "remote_file" are Chef resources.
One of the contracts that a Chef provider has to fulfill is that it
will set the new_resource.updated_by_last_action(true) it they make a
change to the system.
If 'directory[/some/dir]' had to be repaired in any way, the
directory provider setting that flag is what allows notifications to
happen.
if 'remote_file[somefile]' had to be repaired, the same idea applies.
The bug the gist worked around was that the custom_foo resource
defined in the LWRP code could not inherit the updated status of the
nested 'directory' or 'remote_file' resources.
While good to know, this is now the problem you have.
The work you're doing is implemented in two pure-ruby library
functions that ship with the cookbook.
initialize_connection
download_all
Since these are not idempotent Chef resources, the work-around does not apply.
Please feel free to un-cargo-cult your code. My bad.
What you really need to do is setup tests to determine if you need to
"fix" a teamcity_build resource on disk.
If the resource needs to be repaired, THEN do the work:
initialize_connection
download_all
new_resource.updated_by_last_action(true)
That will allow notifications to work in the default run_context
This deck does a really good job at explaining how it all works.
http://www.slideshare.net/geekbri/lwrp-presentation#btnNext
-s
On Thu, Dec 27, 2012 at 12:32 PM, Seif Attar
<
>
wrote:
>
Thanks Sean,
>
>
My ruby skills are limited, and I didn't quite get that gist or what it was
>
doing, but I did manage to get something working:
>
>
https://github.com/seif/teamcity/commit/125633db4ccd62a43f3946feae00ba358b5d75b1
>
>
I am not sure what
>
>
if sub_run_context.resource_collection.any?(&:updated?)
>
>
>
>
Is supposed to do, as it was always returning false for me. What effects
>
will removing it do? does the provider look sane to you now?
>
>
Much appreciated,
>
>
Seif
>
>
>
>
On 27 December 2012 15:52, Sean OMeara
>
<
>
>
wrote:
>
>
>
> Hi Seif!
>
>
>
> This is a bug in the LWRP DSL.
>
>
>
> You can read about it here:
>
> http://tickets.opscode.com/browse/CHEF-3681
>
>
>
> There is a fix coming in Chef 11 which will require a small changes to
>
> the all LWRP code including teamcity and windows cookbooks to make
>
> notifications work.
>
>
>
> In the meantime, you modify the teamcity_build LWRP and cargo-cult the
>
> pattern referenced in the above ticket.
>
>
>
>
>
> https://gist.github.com/d85be145f3ff824ccc07/0e97d44f20ec65411b141cb46cbeb19bb34b44ad
>
>
>
> Good luck and let me know if you have any questions!
>
>
>
> -s
>
>
>
> On Thu, Dec 27, 2012 at 10:43 AM, Seif Attar
>
> <
>
>
> wrote:
>
> > Hello,
>
> >
>
> > I am writing a recipe that calls 3 resources, the first resource has
>
> > conditional execution and a notifies, goal being that the other 2 dont
>
> > run
>
> > unless this one passed the condition.
>
> >
>
> > I can see the first resource being run, but it doesn't seem to be
>
> > notifying,
>
> > can someone help figure out what I am messing up? is there a better way
>
> > to
>
> > go about this?
>
> >
>
> > Here is a gist of the recipe, and the debug output from Chef 10.16.4:
>
> >
>
> > https://gist.github.com/4389024
>
> >
>
> > Any help appreciated.
>
> >
>
> > Thanks
>
>
- [chef] notifies on resource not notifying, Seif Attar, 12/27/2012
- [chef] Re: notifies on resource not notifying, Sean OMeara, 12/27/2012
- [chef] Re: Re: notifies on resource not notifying, Seif Attar, 12/27/2012
- [chef] Re: Re: Re: notifies on resource not notifying, Daniel DeLeo, 12/27/2012
- [chef] Re: Re: Re: notifies on resource not notifying, Sean OMeara, 12/27/2012
- [chef] Re: Re: Re: Re: notifies on resource not notifying, Seif Attar, 12/27/2012
- [chef] Re: Re: Re: Re: notifies on resource not notifying, Seif Attar, 12/28/2012
- [chef] Re: Re: Re: Re: Re: notifies on resource not notifying, Sean OMeara, 12/28/2012
- [chef] Re: Re: Re: Re: Re: Re: notifies on resource not notifying, Seif Attar, 12/28/2012
- [chef] Re: Re: Re: Re: Re: Re: Re: notifies on resource not notifying, Daniel DeLeo, 12/28/2012
- [chef] Re: Re: Re: Re: Re: Re: Re: Re: notifies on resource not notifying, Seif Attar, 12/28/2012
- [chef] Re: Re: Re: Re: Re: Re: Re: Re: Re: notifies on resource not notifying, Daniel DeLeo, 12/28/2012
- [chef] Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: notifies on resource not notifying, Seif Attar, 12/28/2012
- [chef] Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: notifies on resource not notifying, Daniel DeLeo, 12/28/2012
- [chef] Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: notifies on resource not notifying, Seif Attar, 12/28/2012
Archive powered by MHonArc 2.6.16.