diff options
-rwxr-xr-x | lib/puppet/server/report.rb | 24 | ||||
-rwxr-xr-x | test/server/report.rb | 16 |
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$ |