diff options
author | Noah Kantrowitz <noah@coderanger.net> | 2017-08-13 16:34:53 -0700 |
---|---|---|
committer | Noah Kantrowitz <noah@coderanger.net> | 2017-08-13 16:34:53 -0700 |
commit | f4d2315665aaadc367ab007495828a433328c618 (patch) | |
tree | 2bcaf12cdd43e1e149fd1424617f5efa9dc7e1d6 | |
parent | 3435382c886f95c022ebcced8fa48c478c6269ec (diff) | |
download | chef-f4d2315665aaadc367ab007495828a433328c618.tar.gz |
Ignore validation errors in Resource#to_text.
Signed-off-by: Noah Kantrowitz <noah@coderanger.net>
-rw-r--r-- | lib/chef/resource.rb | 6 | ||||
-rw-r--r-- | spec/unit/resource_spec.rb | 8 |
2 files changed, 13 insertions, 1 deletions
diff --git a/lib/chef/resource.rb b/lib/chef/resource.rb index ca6603c06a..5436e3ceb3 100644 --- a/lib/chef/resource.rb +++ b/lib/chef/resource.rb @@ -641,7 +641,11 @@ class Chef all_props = {} self.class.state_properties.map do |p| - all_props[p.name.to_s] = p.sensitive? ? '"*sensitive value suppressed*"' : value_to_text(p.get(self)) + begin + all_props[p.name.to_s] = p.sensitive? ? '"*sensitive value suppressed*"' : value_to_text(p.get(self)) + rescue Chef::Exceptions::ValidationFailed + # This space left intentionally blank, the property was probably required or had an invalid default. + end end ivars = instance_variables.map { |ivar| ivar.to_sym } - HIDDEN_IVARS diff --git a/spec/unit/resource_spec.rb b/spec/unit/resource_spec.rb index 6285bad50a..fe41486cf0 100644 --- a/spec/unit/resource_spec.rb +++ b/spec/unit/resource_spec.rb @@ -377,6 +377,14 @@ describe Chef::Resource do expect(resource.to_text).to match(/foo "\*sensitive value suppressed\*"/) end end + + context "when property is required" do + it "supresses that properties value" do + resource_class = Class.new(Chef::Resource) { property :foo, String, required: true } + resource = resource_class.new("sensitive_property_tests") + expect { resource.to_text }.to_not raise_error Chef::Exceptions::ValidationFailed + end + end end describe "self.resource_name" do |