Hehe things have come full circle now. The recipe[apt] solution isn't bad,
but it doesn't cover all cases (for more info check out the JIRA ticket).
I created this pull request with a solution to try to silence the issue by
just automatically retrying, but I was not thinking about the broader
picture. All in all, I just want my Chef runs to stop failing when they
need to run apt-get update.
Why not add recipe[apt]
to your base role? This keeps things cache up
to date.
--
John Dewey
Sent with Sparrow http://www.sparrowmailapp.com/?sig
On Monday, March 4, 2013 at 12:44 PM, Andrew Gross wrote:
That works pretty well, I think the previous idea sprouted from the
constraint that we didnt want to have to add this block to every single
package block. Unsure how to resolve that with this syntax unless we could
specify global defaults for some of these things.
On Mon, Mar 4, 2013 at 3:22 PM, Jesse Campbell hikeit@gmail.com wrote:
cassiano, i think you nailed it.
make on_failure function just like an only_if/not_if/notify thing:
package "totally-sucks-devel" do
on_failure "apt-get update", :retry_once
end
make on_failure accept either a string or a block, and an optional set of
arguments telling whether to retry and how many times
or alternatively, make it a block like thing:
package "totally-sucks-devel" do
on_failure do
notifies :run, "execute[apt-get-update]"
retry true
end
end
On Mon, Mar 4, 2013 at 2:44 PM, Cassiano Leal cassianoleal@gmail.comwrote:
I agree, but this would be easily fixed by making on_failure a resource
property that takes a block as an argument instead of being a resource
itself.
On Monday, March 4, 2013 at 16:33, Kevin Keane Subscription wrote:
I didn't follow this discussion from the start, just saw this. Forgive me
if I'm way off base here, but at first glance, this seems very wrong to me,
the "it just feels strange" type of wrong.
Isn't the philosophy of Chef that resources should describe the final,
desired, state of the system? This resource just feels "procedural" rather
than "declarative".
Or am I way off on this?
-----Original Message-----
From: Adam Jacob [mailto:adam@opscode.com adam@opscode.com]
Sent: Monday, March 4, 2013 9:13 AM
To: chef@lists.opscode.com
Subject: [chef] Re: Re: Re: Re: Re: CHEF-3930: Run apt-get update
automagically if apt-get install fails
Why don't we make this a resource?
package "totally-sucks-devel"
on_failure "run apt-get update" do
match /^package/
notifies :run, "execute[apt-get-update]"
end
Where match is a regular expression that looks for names of resources.
Adam
On 3/4/13 9:06 AM, "Bryan McLellan" btm@loftninjas.org wrote:
On Fri, Mar 1, 2013 at 11:21 PM, Jesse Campbell hikeit@gmail.com wrote:
What about extending the current handler approach? Add the ability to
catch a failed resource (by name) and retry it, just like you can
with a begin/rescue.
I like the concept of having an exception handler be tied to a resource
or provider, or at least be able to determine what resource or provider
caused the exception, do some bits and retry.
Bryan