[chef] Re: RE: Re: Re: Re: Re: How to obtain cookbook dependencies from metadata.rb?


Chronological Thread 
  • From: Torben Knerr < >
  • To: " " < >
  • Subject: [chef] Re: RE: Re: Re: Re: Re: How to obtain cookbook dependencies from metadata.rb?
  • Date: Thu, 10 Jan 2013 22:10:41 +0100

Hi all, thanks, that helped a lot.

@Matt Ray: I was missing the .from_file bit which came from the mixin, thanks!

Torben



On Thu, Jan 10, 2013 at 4:07 PM, Matt Ray < " target="_blank"> > wrote:
Just to back it up a bit, if you really just need the dependencies from the metadata.rb, you can read a file as a Chef::Cookbook::Metadata and call .dependencies() off of it in 3 or 4 lines of code (more with error checking). Here's an example (lines 68-70 and 83)

https://github.com/mattray/spiceweasel/blob/master/lib/spiceweasel/cookbooks.rb#L68

Thanks,
Matt Ray
Senior Technical Evangelist | Opscode Inc.
Twitter, IRC, GitHub: mattray

From: Torben Knerr [ " target="_blank"> ]
Sent: Wednesday, January 09, 2013 5:12 PM
To: " target="_blank">
Subject: [chef] Re: Re: Re: Re: How to obtain cookbook dependencies from metadata.rb?

Hey Mike, Jamie,

Thanks for the replies!

The knockout requirement for librarian in my specific case is http_proxy support.

I would go for Berkshelf just because of 'metadata' otherwise.
Both are great tools, librarian with a focus on simplicity and Berkshelf supporting more workflow-like stuff. I like both equally, but neither fully supports my current case ;-)

Cheers, Torben

Am 09.01.2013 23:47 schrieb "Jamie Winsor" < " target="_blank"> >:
Hey Torben,

If you're familiar with Ruby you should be able to read the Berkshelf source to get an idea of how I implemented the metadata keyword. The Berkshelf code base is pretty friendly and you should feel free to use any of the classes which aren't marked @api private in your own codebase.

Is there a reason you aren't using Berkshelf for this? The use that you are describing is 100% supported and something that I use in my projects everyday. (overriding the locations of the dependencies found in the metadata)

-- 
Jamie Winsor
@resetexistence

On Wednesday, January 9, 2013 at 2:31 PM, Mike wrote:

Has someone done something like this already?
Um, berkshelf. :)

You can probably figure out some of the work from there. But I have no
idea if the Chef cookbook metadata parser will allow for anything
other than a version string following a cookbook name.


-M

On Wed, Jan 9, 2013 at 5:26 PM, Torben Knerr < " target="_blank"> > wrote:
Background:

First, I want to emulate Berkshelfs 'metadata' keyword inside a librarian
Cheffile.

Then I want to override the location for some of the metadata-defined
cookbook dependencies in the Cheffile (e.g. use github branch rather than
community site)

Has someone done something like this already?


Ohai Chefs,

what's the easiest way to obtain the cookbook dependencies defined in
metadata.rb (only direct dependencies are required)?

I'm not too firm with the chef internals yet, thus my first idea was to
evaluate metadata.rb and recording the `depends` calls via `method_missing`
- but this doesn't feels quite right...

Thanks!
Torben





Archive powered by MHonArc 2.6.16.

§