[chef] Re: Using the value from an XML file in a template variable


Chronological Thread 
  • From: Mrigesh Priyadarshi < >
  • To:
  • Subject: [chef] Re: Using the value from an XML file in a template variable
  • Date: Sun, 28 Sep 2014 18:22:22 +0530

Use LWRP to create the template, as the variables being assigned using template resource would be evaluated at compile time. And as you are getting that value from run time generated file, it would fail.

Moreover, if you will try using lazy attribute evaluation that will also not work as it would put lazy object in place of variable in XML template.

On Sep 28, 2014 4:46 PM, "Greg Barker" < "> > wrote:
I've got an xml file that is generated during a chef run by a third party utility, and I want to retrieve a value from this xml file and use it in a template variable. How should I go about doing that?

I was thinking maybe something like this, but it didn't work. other_thing ends up being a blank value:

template "/some/file.xml" do
    source "source_file.xml.erb
    variables(
        :some_thing = node["some"]["thing"],
        :other_thing = lazy {
            require "rexml/document"
            REXML::XPath.first(REXML::Document.new(File.new("#{node[:some][:dir]}/config.xml")), '//id').text
        }
    )
end



Archive powered by MHonArc 2.6.16.

§