diff options
author | jkeiser <jkeiser@opscode.com> | 2013-01-11 20:00:09 -0800 |
---|---|---|
committer | jkeiser <jkeiser@opscode.com> | 2013-01-11 20:00:09 -0800 |
commit | 79de8bb9f100bbbeacbf04d6328a627a0fbaac12 (patch) | |
tree | dd2b813b40b399a81ac821d5be856ff2393f484c | |
parent | 970e3902ae9ed4ae747d74f89a2f73e059bdabaa (diff) | |
download | chef-zero-79de8bb9f100bbbeacbf04d6328a627a0fbaac12.tar.gz |
Don't modify the data structures passed into load_data;
it screws up serial rspec tests.
-rw-r--r-- | lib/chef_zero/server.rb | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/lib/chef_zero/server.rb b/lib/chef_zero/server.rb index 219238e..3a98e9b 100644 --- a/lib/chef_zero/server.rb +++ b/lib/chef_zero/server.rb @@ -151,15 +151,15 @@ module ChefZero def load_data(contents) %w(clients environments nodes roles users).each do |data_type| if contents[data_type] - dejsonize_children!(contents[data_type]) - data[data_type].merge!(contents[data_type]) + data[data_type].merge!(dejsonize_children(contents[data_type])) end end if contents['data'] - contents['data'].values.each do |data_bag| - dejsonize_children!(data_bag) + new_data = {} + contents['data'].each_pair do |key, data_bag| + new_data[key] = dejsonize_children(data_bag) end - data['data'].merge!(contents['data']) + data['data'].merge!(new_data) end if contents['cookbooks'] contents['cookbooks'].each_pair do |name_version, cookbook| @@ -243,10 +243,12 @@ module ChefZero router end - def dejsonize_children!(hash) + def dejsonize_children(hash) + result = {} hash.each_pair do |key, value| - hash[key] = JSON.pretty_generate(value) if value.is_a?(Hash) + result[key] = value.is_a?(Hash) ? JSON.pretty_generate(value) : value end + result end def get_file(directory, path) |