diff options
Diffstat (limited to 'lib/puppet/server/master.rb')
-rw-r--r-- | lib/puppet/server/master.rb | 22 |
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] |