From fbd5b0a2d67b28c3e9ab0f161c1bcfa918ee0b6e Mon Sep 17 00:00:00 2001 From: Luke Kanies Date: Tue, 19 Jan 2010 23:00:49 -0800 Subject: ResourceHarness now doesn't check params with no 'should' I hadn't been skipping parameters that didn't have a 'should' value set. This almost always resulted in the right behaviour, because most properties correctly just short-circuit to being in sync if the 'should' value is nil, but this encodes it at the harness, which is where it should be. Signed-off-by: Luke Kanies --- lib/puppet/transaction/resource_harness.rb | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'lib') diff --git a/lib/puppet/transaction/resource_harness.rb b/lib/puppet/transaction/resource_harness.rb index 669b0ae98..a7784f344 100644 --- a/lib/puppet/transaction/resource_harness.rb +++ b/lib/puppet/transaction/resource_harness.rb @@ -34,8 +34,10 @@ class Puppet::Transaction::ResourceHarness return [] if ensure_should_be_absent?(current, param) end - resource.properties.reject { |p| p.name == :ensure }.find_all do |param| - param_is_not_insync?(current, param) + resource.properties.reject { |p| p.name == :ensure }.reject do |param| + param.should.nil? + end.reject do |param| + param_is_insync?(current, param) end.collect do |param| Puppet::Transaction::Change.new(param, current[param.name]) end @@ -77,7 +79,7 @@ class Puppet::Transaction::ResourceHarness param.should == :absent end - def param_is_not_insync?(current, param) - ! param.insync?(current[param.name] || :absent) + def param_is_insync?(current, param) + param.insync?(current[param.name]) end end -- cgit