diff --git a/lib/puppet/transaction/resource_harness.rb b/lib/puppet/transaction/resource_harness.rb index 3d770b5dad0..134d33e2519 100644 --- a/lib/puppet/transaction/resource_harness.rb +++ b/lib/puppet/transaction/resource_harness.rb @@ -235,9 +235,13 @@ def audit_message(param, do_audit, historical_value, current_value) end def noop(event, param, current_value, audit_message) - event.message = param.format(_("current_value %s, should be %s (noop)"), - param.is_to_s(current_value), - param.should_to_s(param.should)) + audit_message.to_s + if param.sensitive + event.message = param.format(_("current_value %s, should be %s (noop)"), + param.is_to_s(current_value), + param.should_to_s(param.should)) + audit_message.to_s + else + event.message = "#{param.change_to_s(current_value, param.should)} (noop)#{audit_message}" + end event.status = "noop" end diff --git a/spec/unit/transaction/resource_harness_spec.rb b/spec/unit/transaction/resource_harness_spec.rb index ae35044a3fd..4285b3e377a 100644 --- a/spec/unit/transaction/resource_harness_spec.rb +++ b/spec/unit/transaction/resource_harness_spec.rb @@ -176,6 +176,10 @@ def insync?(value) def should_to_s(value) (@resource.behaviors[:on_should_to_s] || proc { "'#{value}'" }).call end + + def change_to_s(value, should) + "some custom insync message" + end end newparam(:name) do @@ -249,6 +253,7 @@ def self.name expect(status.events[0].property).to eq('ensure') expect(status.events[0].name.to_s).to eq('Testing_created') expect(status.events[0].status).to eq('success') + expect(status.events[0].message).to eq 'some custom insync message' end it "ensure is in sync means that the rest *does* happen" do @@ -283,6 +288,14 @@ def self.name expect(testing_errors[0].message).not_to be_nil expect(resource_errors[0].message).not_to eq("Puppet::Util::Log requires a message") end + + it "displays custom insync message in noop" do + resource = an_ensurable_resource_reacting_as(:present? => true) + resource[:noop] = true + status = @harness.evaluate(resource) + sync_event = status.events[0] + expect(sync_event.message).to eq 'some custom insync message (noop)' + end end describe "when a caught error occurs" do