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:
action :download do
directory “/some/dir” do
remote_file “somefile” do
^ 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
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.
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:
That will allow notifications to work in the default run_context
This deck does a really good job at explaining how it all works.
On Thu, Dec 27, 2012 at 12:32 PM, Seif Attar email@example.com wrote:
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:
I am not sure what
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?
On 27 December 2012 15:52, Sean OMeara firstname.lastname@example.org wrote:
This is a bug in the LWRP DSL.
You can read about it here:
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
In the meantime, you modify the teamcity_build LWRP and cargo-cult the
pattern referenced in the above ticket.
Good luck and let me know if you have any questions!
On Thu, Dec 27, 2012 at 10:43 AM, Seif Attar email@example.com wrote:
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
unless this one passed the condition.
I can see the first resource being run, but it doesn’t seem to be
can someone help figure out what I am messing up? is there a better way
go about this?
Here is a gist of the recipe, and the debug output from Chef 10.16.4:
Any help appreciated.