diff options
author | Adam Leff <adam@leff.co> | 2016-06-10 14:44:27 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-06-10 14:44:27 -0400 |
commit | aa69c960e980f52bb0240fc4880134f58c427584 (patch) | |
tree | 24cd410f21bcc087e6506b76e65d850579305070 | |
parent | 7c6e7712dceb0426786a14ea81246b6932d75256 (diff) | |
parent | 54ced0da2bd835e3753cbe51e588cf3e8040a6c9 (diff) | |
download | chef-aa69c960e980f52bb0240fc4880134f58c427584.tar.gz |
Merge pull request #5019 from chef/adamleff/node-uuid-fix
bug fix: correctly write out data collector metadata file
-rw-r--r-- | lib/chef/data_collector/messages/helpers.rb | 4 | ||||
-rw-r--r-- | spec/unit/data_collector/messages/helpers_spec.rb | 10 |
2 files changed, 5 insertions, 9 deletions
diff --git a/lib/chef/data_collector/messages/helpers.rb b/lib/chef/data_collector/messages/helpers.rb index 3e52f80047..c0c700f847 100644 --- a/lib/chef/data_collector/messages/helpers.rb +++ b/lib/chef/data_collector/messages/helpers.rb @@ -148,8 +148,8 @@ class Chef end def update_metadata(key, value) - metadata[key] = value - Chef::FileCache.store(metadata_filename, metadata.to_json, 0644) + updated_metadata = metadata.tap { |x| x[key] = value } + Chef::FileCache.store(metadata_filename, updated_metadata.to_json, 0644) end def metadata_filename diff --git a/spec/unit/data_collector/messages/helpers_spec.rb b/spec/unit/data_collector/messages/helpers_spec.rb index 0ed0f6c921..26f7dbacfa 100644 --- a/spec/unit/data_collector/messages/helpers_spec.rb +++ b/spec/unit/data_collector/messages/helpers_spec.rb @@ -171,20 +171,16 @@ describe Chef::DataCollector::Messages::Helpers do end describe '#update_metadata' do - let(:metadata) { double("metadata") } - it "updates the file" do allow(TestMessage).to receive(:metadata_filename).and_return("fake_metadata_file.json") - allow(TestMessage).to receive(:metadata).and_return(metadata) - expect(metadata).to receive(:[]=).with("new_key", "new_value") - expect(metadata).to receive(:to_json).and_return("metadata_json") + allow(TestMessage).to receive(:metadata).and_return({ "key" => "current_value" }) expect(Chef::FileCache).to receive(:store).with( "fake_metadata_file.json", - "metadata_json", + '{"key":"updated_value"}', 0644 ) - TestMessage.update_metadata("new_key", "new_value") + TestMessage.update_metadata("key", "updated_value") end end end |