[chef] Re: Re: Re: HWRP Array attribute not reset


Chronological Thread 
  • From: "Stewart, Curtis" < >
  • To: " " < >
  • Subject: [chef] Re: Re: Re: HWRP Array attribute not reset
  • Date: Tue, 11 Mar 2014 23:14:45 +0000
  • Accept-language: en-US

Thanks for the article!

I attempted to add a helper method to convert the options before passing, still no luck.  I’d really like to stay away from setting these values to hashes.

def mutable_arrray(attribute)
attribute.map { |value| value }
end

I’m surprised this behavior doesn’t come up more often when using built in resources (i.e. path attribute for execute resource).

Curtis

On Mar 11, 2014, at 5:39 PM, Noah Kantrowitz < "> > wrote:

You are probably running in to the merge behavior of arrays in node attributes. Check out https://coderanger.net/2013/06/arrays-and-chef/ for more info.

--Noah

On Mar 11, 2014, at 3:35 PM, "Stewart, Curtis" < "> > wrote:

Attribute Sample:

node[‘servers’][‘main’][‘external_addresses’] = %w { 33.33.33.33 }

Recipe Context:

node[’servers'].each do |name, options|
   server name do
     external_addresses options['external_addresses']
   end
end

Then, if I update that attribute value to, say %w{ 33.33.33.30 }, the resource loads with both addresses.

Curtis

On Mar 11, 2014, at 5:20 PM, Noah Kantrowitz < "> > wrote:

Can you give an example of how you are using it?

--Noah

On Mar 11, 2014, at 3:19 PM, "Stewart, Curtis" < "> > wrote:

I’m working with a custom HWRP, and I have an attribute of type Array.

The definition is below, and the issue I’m trying to trouble shoot is that if I update the value of my array, instead of resetting the array, they new values are appended to the array.


  def external_addresses(arg = nil)
    set_or_return(:external_addresses, arg, :kind_of => Array)
  end


Thanks for any feedback,
Curtis







Archive powered by MHonArc 2.6.16.

§