diff options
-rw-r--r-- | CHANGELOG | 5 | ||||
-rw-r--r-- | lib/puppet/metatype/evaluation.rb | 6 | ||||
-rw-r--r-- | lib/puppet/network/client/master.rb | 14 | ||||
-rw-r--r-- | lib/puppet/type.rb | 2 | ||||
-rwxr-xr-x | spec/unit/ral/type/noop_metaparam.rb | 38 | ||||
-rwxr-xr-x | test/ral/manager/type.rb | 16 |
6 files changed, 50 insertions, 31 deletions
@@ -1,3 +1,8 @@ + Fixing #1118 -- downloading plugins and facts now ignores noop. + Note that this changes the behaviour a bit -- the resource's + noop setting always beats the global setting (previously, + whichever was true would win). + The change in checksums from 'timestamp' to 'mtime' no longer result in updates on every run (#1116). diff --git a/lib/puppet/metatype/evaluation.rb b/lib/puppet/metatype/evaluation.rb index 08756e988..36328c537 100644 --- a/lib/puppet/metatype/evaluation.rb +++ b/lib/puppet/metatype/evaluation.rb @@ -108,7 +108,11 @@ class Puppet::Type # Are we running in noop mode? def noop? - @noop || Puppet[:noop] + if defined?(@noop) + @noop + else + Puppet[:noop] + end end def noop diff --git a/lib/puppet/network/client/master.rb b/lib/puppet/network/client/master.rb index 913c51b3d..e914d5c69 100644 --- a/lib/puppet/network/client/master.rb +++ b/lib/puppet/network/client/master.rb @@ -320,7 +320,8 @@ class Puppet::Network::Client::Master < Puppet::Network::Client :group => Process.gid, :purge => true, :force => true, - :backup => false + :backup => false, + :noop => false } if args[:ignore] @@ -331,9 +332,6 @@ class Puppet::Network::Client::Master < Puppet::Network::Client Puppet.info "Retrieving #{args[:name]}s" - noop = Puppet[:noop] - Puppet[:noop] = false - files = [] begin Timeout::timeout(self.timeout) do @@ -355,14 +353,6 @@ class Puppet::Network::Client::Master < Puppet::Network::Client downconfig.clear return files - ensure - # I can't imagine why this is necessary, but apparently at last one person has had problems with noop - # being nil here. - if noop.nil? - Puppet[:noop] = false - else - Puppet[:noop] = noop - end end # Retrieve facts from the central server. diff --git a/lib/puppet/type.rb b/lib/puppet/type.rb index 09003e8f5..f8949ec90 100644 --- a/lib/puppet/type.rb +++ b/lib/puppet/type.rb @@ -155,8 +155,6 @@ class Type @parameters = {} end - # set defalts - @noop = false # keeping stats for the total number of changes, and how many were # completely sync'ed # this isn't really sufficient either, because it adds lots of special diff --git a/spec/unit/ral/type/noop_metaparam.rb b/spec/unit/ral/type/noop_metaparam.rb new file mode 100755 index 000000000..0cbed3714 --- /dev/null +++ b/spec/unit/ral/type/noop_metaparam.rb @@ -0,0 +1,38 @@ +#!/usr/bin/env ruby + +require File.dirname(__FILE__) + '/../../../spec_helper' + +require 'puppet/metatype/metaparams' + +describe Puppet::Type.type(:file).attrclass(:noop) do + before do + @file = Puppet::Type.newfile :path => "/what/ever" + end + + after { Puppet::Type::File.clear } + + it "should accept true as a value" do + lambda { @file[:noop] = true }.should_not raise_error + end + + it "should accept false as a value" do + lambda { @file[:noop] = false }.should_not raise_error + end + + describe "when set on a resource" do + it "should default to the :noop setting" do + Puppet.settings.expects(:value).with(:noop).returns "myval" + @file.noop.should == "myval" + end + + it "should prefer true values from the attribute" do + @file[:noop] = true + @file.noop.should be_true + end + + it "should prefer false values from the attribute" do + @file[:noop] = false + @file.noop.should be_false + end + end +end diff --git a/test/ral/manager/type.rb b/test/ral/manager/type.rb index 324550acb..c6efe4f00 100755 --- a/test/ral/manager/type.rb +++ b/test/ral/manager/type.rb @@ -678,22 +678,6 @@ class TestType < Test::Unit::TestCase assert_equal("Exec[yay]", exec.ref) end - def test_noop_metaparam - file = Puppet::Type.newfile :path => tempfile - assert(!file.noop, "file incorrectly in noop") - - assert_nothing_raised do - file[:noop] = true - end - assert(file.noop, "file should be in noop") - - # Now set the main one - Puppet[:noop] = true - assert(file.noop, "file should be in noop") - file[:noop] = false - assert(file.noop, "file should be in noop") - end - def test_path config = mk_catalog |