summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/puppet/network/client/master.rb5
-rwxr-xr-xtest/network/client/master.rb20
2 files changed, 25 insertions, 0 deletions
diff --git a/lib/puppet/network/client/master.rb b/lib/puppet/network/client/master.rb
index dd8a883bd..b244478c2 100644
--- a/lib/puppet/network/client/master.rb
+++ b/lib/puppet/network/client/master.rb
@@ -356,6 +356,9 @@ class Puppet::Network::Client::Master < Puppet::Network::Client
Puppet.info "Retrieving #{args[:name]}s"
+ noop = Puppet[:noop]
+ Puppet[:noop] = false
+
begin
trans = objects.evaluate
trans.ignoretags = true
@@ -381,6 +384,8 @@ class Puppet::Network::Client::Master < Puppet::Network::Client
# Now clean up after ourselves
objects.remove
files
+ ensure
+ Puppet[:noop] = noop
end
# Retrieve facts from the central server.
diff --git a/test/network/client/master.rb b/test/network/client/master.rb
index ec6c8d5cf..270c3e08c 100755
--- a/test/network/client/master.rb
+++ b/test/network/client/master.rb
@@ -39,6 +39,11 @@ class TestMasterClient < Test::Unit::TestCase
end
end
+ def setup
+ super
+ @master = Puppet::Network::Client.master
+ end
+
def mkmaster(file = nil)
master = nil
@@ -525,6 +530,21 @@ end
assert(Puppet::Type.type(:schedule)["hourly"], "Could not retrieve hourly schedule")
assert(Puppet::Type.type(:filebucket)["puppet"], "Could not retrieve default bucket")
end
+
+ # #540 - make sure downloads aren't affected by noop
+ def test_download_in_noop
+ source = tempfile
+ File.open(source, "w") { |f| f.puts "something" }
+ dest = tempfile
+ Puppet[:noop] = true
+ assert_nothing_raised("Could not download in noop") do
+ @master.download(:dest => dest, :source => source, :tag => "yay")
+ end
+
+ assert(FileTest.exists?(dest), "did not download in noop mode")
+
+ assert(Puppet[:noop], "noop got disabled in run")
+ end
end
# $Id$