[chef] Re: query if the package already installed


Chronological Thread 
  • From: Daniel DeLeo < >
  • To:
  • Cc:
  • Subject: [chef] Re: query if the package already installed
  • Date: Wed, 7 Jul 2010 09:25:01 -0700

Oops, I fail at reply-all :/

On Tue, Jul 6, 2010 at 11:49 PM, Vasiliy G Tolstov 
< >
 wrote:
> В Втр, 06/07/2010 в 09:55 -0700, Daniel DeLeo пишет:
>> Ohai!
>> What are you trying to accomplish here? Chef might already have an
>> easier way to do what you want.
>>
>> That said, the package providers all query for current installed
>> status. The way it works is different for each provider. If you want
>> to reuse this code, you can do that by creating a resource for the
>> package you're interested in, setting the action to :nothing, creating
>> a provider object for it, and then running
>> Provider#load_current_resource. Something like this:
>>
>> pkg = package("foo") do
>>   action :nothing
>> end
>>
>> pkg_provider = Chef::Platform.provider_for_resource(pkg)
>> pkg_provider.load_current_resource
>>
>> You can then access pkg_provider.current_resource to see if the
>> package is installed and which version, etc.
>>
>> Again, if you tell us more about your use case, there might be a much
>> easier way to get the result you want.
>>
>> Daniel DeLeo
>
> Thank You, Daniel. I'm try to use this.
> My use case - i need to autoscale apache, mysql, nginx for current
> system (cpu and memory can be donamicly added or removed). Some recipes
> contains this, but it only applies, when the packages installed, not if
> the package already installed in the system...

It seems like you should be able to get the result you want just by
reworking the way your resources notify/subscribe, or how you write
out the config files? Assuming your autoscaling works by rewriting the
config file for the service, you should be able to simply run the
templates for the config files on every chef run, then use a delayed
notification to trigger a restart when the config file changes. Just
be sure to avoid relying on ordering of Hash#each (which is not
deterministic) so you don't get unneeded updates to the config file.

Or is there something about your use case I'm not understanding?

Daniel DeLeo

>
>
> --
> Vasiliy G Tolstov 
> < >
> Selfip.Ru
>
>



Archive powered by MHonArc 2.6.16.

§