diff options
author | Serdar Sutay <serdar@opscode.com> | 2014-11-17 08:34:19 -0800 |
---|---|---|
committer | Serdar Sutay <serdar@opscode.com> | 2014-11-17 08:34:19 -0800 |
commit | 47618dad386fa26d897a7d13ace80f6511564550 (patch) | |
tree | f8a50fae476dc22d6f08d9a3c1c936f31dc2f50d | |
parent | 32bf6ef6d329aae0e4c8ea841e26124316186ef7 (diff) | |
download | chef-sersut/attr-opt.tar.gz |
Safe dup attributes before deep merge for optimizing merge path.sersut/attr-opt
-rw-r--r-- | lib/chef/node/attribute.rb | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/lib/chef/node/attribute.rb b/lib/chef/node/attribute.rb index 1d564a57e4..cccb16cbf9 100644 --- a/lib/chef/node/attribute.rb +++ b/lib/chef/node/attribute.rb @@ -474,8 +474,17 @@ class Chef merge_overrides(path), apply_path(@automatic, path) ] + + components.map! do |c| + begin + c.dup + rescue TypeError + c + end + end + components.inject(nil) do |merged, component| - Chef::Mixin::DeepMerge.hash_only_merge(merged, component) + Chef::Mixin::DeepMerge.hash_only_merge!(merged, component) end end |