[chef] Re: Re: Re: Re: Re: Re: The Application Cookbook Pattern vs. String / Node Attribute Interpolation in Attributes files


Chronological Thread 
  • From: Torben Knerr < >
  • To:
  • Subject: [chef] Re: Re: Re: Re: Re: Re: The Application Cookbook Pattern vs. String / Node Attribute Interpolation in Attributes files
  • Date: Tue, 6 Aug 2013 20:17:30 +0200

Thanks!


On Tue, Aug 6, 2013 at 8:09 PM, Noah Kantrowitz < " target="_blank"> > wrote:
http://tickets.opscode.com/browse/CHEF-4234

--Noah

On Aug 6, 2013, at 11:08 AM, Torben Knerr wrote:

> Thanks, that works!
>
> I'm using a slightly modified variant now which I find a bit more readable: `node.from_file(run_context.resolve_attribute("java", "default"))`
>
> Found the hint here:
> http://docs.opscode.com/chef/essentials_cookbook_recipes.html#reload-attributes
>
> Btw: mind posting the link to the Jira issue?
>
> Cheers, Torben
>
>
>
> On Tue, Aug 6, 2013 at 7:46 PM, Noah Kantrowitz < "> > wrote:
> Now that Jira is back, just add this to the bottom of your attributes file: node.from_file(run_context.resolve_attribute(*parse_attribute_file_spec("java")))
>
> --Noah
>
> On Aug 6, 2013, at 7:30 AM, Torben Knerr wrote:
>
> > I also played around with `include_attribute` in the recipe, in the attributes file etc. but couldn't make it work. I also tried renaming my application cookbook and attribute files so that they come alphabetically before "java", but that didn't make any difference too (surely because of the `include_recipe "java"`).
> >
> > I'm looking forward to the workaround mentioned by Noah, couldn't find it via Google so far.
> >
> > Btw: have you considered forking and "fixing" the Java cookbook rather than duplicating the attributes logic?
> >
> >
> > On Mon, Aug 5, 2013 at 7:48 PM, Joseph Holsten < "> > wrote:
> > I just copy-pasta'd the java.java_home and java.openjdk_packages logic for a pr to the nexus cookbook: https://github.com/RiotGames/nexus-cookbook/pull/43
> >
> > I attempted a well timed `include_attribute 'java'`, but couldn't make it work.
> >
> > If there is a less terrible way, I'd love to know.
> > --
> > ~j
> >
> > On 2013-08-05, at 09:56, Torben Knerr < "> > wrote:
> >
> > >
> > > Ohai Chefs,
> > >
> > > given an application cookbook trying to installing Java 7:
> > >
> > > ```sample-app/recipes/default.rb
> > > node.set['java']['jdk_version'] = "7"
> > > include_recipe "java"
> > > ```
> > >
> > > It will always install Java version 6 because the node attributes from the Java cookbook have already been interpolated when the sample-app recipe is evaluated:
> > >
> > > ```java/attributes/default.rb
> > > ...
> > > default['java']['jdk_version'] = '6'
> > > ...
> > > when "debian"
> > >   ...
> > >   default['java']['openjdk_packages'] = ["openjdk-#{node['java']['jdk_version']}-jdk", "default-jre-headless"]
> > > ...
> > > ```
> > >
> > > The only way to "correctly" pass in the java/jdk_version attribute is from external, e.g. via environment files or dna.json etc... That works, but actually I consider the JDK version an implementation detail of the application cookbook and don't want to expose it via the above files.
> > >
> > > How can you deal with that?
> > >
> > > Is there a possibility to re-evaluate the attributes file before you `include_recipe` it? And would this be a good idea at all?!?
> > >
> > > Any ideas or workarounds?
> > >
> > > Cheers,
> > > Torben
> >
> >
>
>





Archive powered by MHonArc 2.6.16.

§