[chef] Re: CHEF-3930: Run apt-get update automagically if apt-get install fails


Chronological Thread 
  • From: Jeffrey Hulten < >
  • To:
  • Subject: [chef] Re: CHEF-3930: Run apt-get update automagically if apt-get install fails
  • Date: Thu, 28 Feb 2013 10:50:15 -0800

Perhaps being able to specify, for any given resource 

on_failure_notifies :action, "resource_type[name]"), :immediately_and_retry

would allow both problems to be solved?
--
Jeffrey Hulten
Principal Consultant at Automated Labs

  206-853-5216
Skype: jeffhulten

On Feb 28, 2013, at 7:10 AM, Andrew Gross 
< >
 wrote:

> The issue here seems to be a conflict between the general Chef philosophy 
> and what a generally sane default.  I noticed similar behavior in
> 
> http://tickets.opscode.com/browse/CHEF-3734
> 
> Where the `git` resource was behaving in a similar way to the `deploy` 
> resource, even though that was not what was explicitly asked for.  In this 
> case it looks like the change is leaning towards making `git` do explicitly 
> what was asked and no more. 
> 
> It feels similar to the conflict when writing an API, you want to have a 
> layer where you have definitions that provide explicit behavior so you can 
> manipulate the system.  At the same time though you want to provide a good 
> interface to the end user and give them a smooth interface that avoids many 
> of the pitfalls associated with inexperience.  Normally this is solved by 
> just writing two libraries and having the user facing library wrap the 
> explicit one, however Chef doesn't seem to quite fit in as either choice 
> (You could also argue that Chef is the wrapper library and the OS is the 
> lower level API). 
> 
> On a side note:
> 
> I like the idea of having a generic system for handling recovery from 
> simple issues. I can see the logic about not having Chef do implicit 
> changes that may be unexpected.  A downside to using an explicit retry hook 
> for something like packages is that you end up having to write it in to 
> every block, making your recipes seem very cluttered. It would be nice if 
> along with a retry system there was a simpler way to modify defaults for a 
> provider without needing to monkey patch the resource definition or 
> wrapping the call with your own LWRP.
> 
> Andrew
> 
> 
> On Thu, Feb 28, 2013 at 12:43 AM, Adam Jacob 
> < >
>  wrote:
> Yeah, I'm not a huge fan, for the same reason – we move from you being 
> explicit, to our making decisions about behavior.
> 
> Adam
> 
> From: Jesse Nelson 
> < >
> Reply-To: 
> " "
>  
> < >
> Date: Wednesday, February 27, 2013 8:07 PM
> To: chef 
> < >
> Subject: [chef] Re: Re: Re: Re: Re: Re: CHEF-3930: Run apt-get update 
> automagically if apt-get install fails
> 
> I also feel like this is crossing the line. Where now we are doing 
> something that we weren't asked to do simply because we think we know what 
> you want. What happens if that is exactly what a user doesn't want. Tho I 
> can't see why an apt-get update would be a bad thing or break anything on 
> the surface. It just smells bad. If it is to be implemented it has to be an 
> optional disable.
> 
> On the Side note I like the idea of error callbacks for providers or retry 
> hooks. Something we could code at a high level for some providers to do 
> when failure happens to try to recover. This was brought up and then 
> dismissed, but I could see there being some interesting uses.  This being 
> one of them. 
> 
> 
> On Wed, Feb 27, 2013 at 4:24 PM, Pete Cheslock 
> < >
>  wrote:
> I would be +1 for this - in a previous life we had to often run apt-get 
> update two or three times in a run just to cover edge cases when a solution 
> like this could have helped us or made things as least less repetitive 
> during a chef run.
> 
> -Pete
> 
> 
> On Wed, Feb 27, 2013 at 7:20 PM, John E. Vincent (lusis) 
> < >
>  wrote:
> On Wed, Feb 27, 2013 at 6:44 PM, Andrea Campi
> < >
>  wrote:
> >
> >
> >
> > On Thu, Feb 28, 2013 at 12:19 AM, Bryan McLellan 
> > < >
> >  wrote:
> >>
> 
> Is anyone opposed to the idea of it simply being a flag, that in the
> case of a missing package, apt-get update or yum update is called and
> a single retry is performed? That would likely solve 95% of the
> problems I have when this happens.
> 
> >> On Wed, Feb 27, 2013 at 6:05 PM, Andrea Campi
> >> < >
> >>  wrote:
> >> > What about making it opt-in / opt-out with an attribute?
> >> > I don't much care which way the default is, but it would sure be nice 
> >> > to
> >> > have the option.
> >>
> >> It would have to be a global attribute and the only established
> >> pattern we have for that is Chef::Config options. These can kind of be
> >> managed by templatizing the client.rb (e.g. chef-client cookbook) but
> >> it's less of a "flag" than would be convenient for this sort of thing.
> >>
> >> The reason it can't be a resource attribute is if you want it the
> >> other way around, you're populating "auto_update true/false" in every
> >> package resource in every cookbook if you want it the other way
> >> around.
> >
> >
> > D'oh, for some reason I was thinking "cookbook".
> >
> >>
> >> But yeah, it feels awesome. Of course the apt package provider should
> >> help me with my apt-cache! We also felt it violates a Chef Law, but
> >> none of us could name it.
> >>
> >
> > Yeah, it feels a bit "do what I mean", but in this case I think that's 
> > quite
> > reasonable.
> >
> > Playing devil's advocate, how will that work with cookbooks that use
> > apt_repository, which runs apt-get update ?
> > Worst case there will be more than one apt-get update in a single run (and
> > that probably only if the package is not there for real).
> > Can you think of other edge cases?
> 
> 
> 




Archive powered by MHonArc 2.6.16.

§