summaryrefslogtreecommitdiffstats
path: root/lib/puppet/server/master.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet/server/master.rb')
-rw-r--r--lib/puppet/server/master.rb22
1 files changed, 21 insertions, 1 deletions
diff --git a/lib/puppet/server/master.rb b/lib/puppet/server/master.rb
index 8d4ddbfde..1b9883ead 100644
--- a/lib/puppet/server/master.rb
+++ b/lib/puppet/server/master.rb
@@ -14,8 +14,26 @@ class Server
@interface = XMLRPC::Service::Interface.new("puppetmaster") { |iface|
iface.add_method("string getconfig(string)")
+ iface.add_method("int freshness()")
}
+ def filetimeout
+ @interpreter.filetimeout
+ end
+
+ def filetimeout=(int)
+ @interpreter.filetimeout = int
+ end
+
+ # Tell a client whether there's a fresh config for it
+ def freshness(client = nil, clientip = nil)
+ if defined? @interpreter
+ return @interpreter.parsedate
+ else
+ return 0
+ end
+ end
+
def initialize(hash = {})
# FIXME this should all be s/:File/:Manifest/g or something
@@ -35,9 +53,11 @@ class Server
@ca = nil
end
+ @parsecheck = hash[:FileTimeout] || 15
+
Puppet.debug("Creating interpreter")
- args = {:Manifest => @file}
+ args = {:Manifest => @file, :ParseCheck => @parsecheck}
if hash.include?(:UseNodes)
args[:UseNodes] = hash[:UseNodes]