summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xlib/puppet/server/report.rb24
-rwxr-xr-xtest/server/report.rb16
2 files changed, 28 insertions, 12 deletions
diff --git a/lib/puppet/server/report.rb b/lib/puppet/server/report.rb
index e584fb61b..8aa4449b2 100755
--- a/lib/puppet/server/report.rb
+++ b/lib/puppet/server/report.rb
@@ -86,18 +86,6 @@ class Server
end
end
- def mkclientdir(client, dir)
- Puppet.config.setdefaults("reportclient-#{client}",
- :clientdir => { :default => dir,
- :mode => 0750,
- :owner => "$user",
- :group => "$group"
- }
- )
-
- Puppet.config.use("reportclient-#{client}")
- end
-
# Accept a report from a client.
def report(report, client = nil, clientip = nil)
# We need the client name for storing files.
@@ -148,6 +136,18 @@ class Server
private
+ def mkclientdir(client, dir)
+ Puppet.config.setdefaults("reportclient-#{client}",
+ "clientdir-#{client}" => { :default => dir,
+ :mode => 0750,
+ :owner => "$user",
+ :group => "$group"
+ }
+ )
+
+ Puppet.config.use("reportclient-#{client}")
+ end
+
# Process the report using all of the existing hooks.
def process(report)
return if Puppet[:reports] == "none"
diff --git a/test/server/report.rb b/test/server/report.rb
index 5ab84f919..9b4a62bd6 100755
--- a/test/server/report.rb
+++ b/test/server/report.rb
@@ -71,6 +71,22 @@ class TestReportServer < Test::Unit::TestCase
end
end
end
+
+ # Make sure we don't have problems with calling mkclientdir multiple
+ # times.
+ def test_multiple_clients
+ server ||= mkserver()
+
+ %w{hostA hostB hostC}.each do |host|
+ dir = tempfile()
+ assert_nothing_raised("Could not create multiple host report dirs") {
+ server.send(:mkclientdir, host, dir)
+ }
+
+ assert(FileTest.directory?(dir),
+ "Directory was not created")
+ end
+ end
end
# $Id$