summaryrefslogtreecommitdiffstats
path: root/lib/puppet
diff options
context:
space:
mode:
authorluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2005-08-30 01:33:36 +0000
committerluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2005-08-30 01:33:36 +0000
commitcff3a5b6cf3867287e1d1d76100f5f7744faa383 (patch)
tree6d7db4e78b14077cd464c0e5f3ee0d23f9426db0 /lib/puppet
parent998b4155dfc7a783b6dba5beafa272b579e98381 (diff)
downloadpuppet-cff3a5b6cf3867287e1d1d76100f5f7744faa383.tar.gz
puppet-cff3a5b6cf3867287e1d1d76100f5f7744faa383.tar.xz
puppet-cff3a5b6cf3867287e1d1d76100f5f7744faa383.zip
fileserver config file now reloads when it is more than 60 seconds out of date
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@610 980ebf18-57e1-0310-9a29-db15c13687c0
Diffstat (limited to 'lib/puppet')
-rwxr-xr-xlib/puppet/server/fileserver.rb19
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/puppet/server/fileserver.rb b/lib/puppet/server/fileserver.rb
index aa513d68c..f7a15e6b9 100755
--- a/lib/puppet/server/fileserver.rb
+++ b/lib/puppet/server/fileserver.rb
@@ -42,6 +42,7 @@ class Server
end
def describe(file, client = nil, clientip = nil)
+ readconfig
mount, path = splitpath(file)
unless @mounts[mount].allowed?(client, clientip)
@@ -97,7 +98,9 @@ class Server
@noreadconfig = false
end
+ @configtimeout = hash[:ConfigTimeout] || 60
@configstamp = nil
+ @congigstatted = nil
if hash.include?(:Mount)
@passedconfig = true
@@ -118,6 +121,7 @@ class Server
end
def list(dir, recurse = false, client = nil, clientip = nil)
+ readconfig
mount, path = splitpath(dir)
unless @mounts[mount].allowed?(client, clientip)
@@ -177,6 +181,17 @@ class Server
def readconfig
return if @noreadconfig
+ if @configstamp and FileTest.exists?(@config)
+ if @configtimeout and @configstatted and
+ (Time.now - @configstatted > @configtimeout)
+ tmp = File.stat(@config).ctime
+
+ if tmp == @configstamp
+ return
+ end
+ end
+ end
+
@mounts.clear
begin
@@ -245,9 +260,13 @@ class Server
rescue Errno::ENOENT => detail
raise Puppet::Error, "%s does not exit" % @config
end
+
+ @configstamp = File.stat(@config).ctime
+ @configstatted = Time.now
end
def retrieve(file, client = nil, clientip = nil)
+ readconfig
mount, path = splitpath(file)
unless (@mounts.include?(mount))