diff options
Diffstat (limited to 'lib/puppet/server/master.rb')
-rw-r--r-- | lib/puppet/server/master.rb | 76 |
1 files changed, 16 insertions, 60 deletions
diff --git a/lib/puppet/server/master.rb b/lib/puppet/server/master.rb index 099fe25c8..bf6998bac 100644 --- a/lib/puppet/server/master.rb +++ b/lib/puppet/server/master.rb @@ -22,11 +22,6 @@ class Server @file = hash[:File] || Puppet[:manifest] hash.delete(:File) - @filestamp = nil - @filestatted = nil - @filetimeout = hash[:FileTimeout] || 60 - parsefile - if hash[:Local] @local = hash[:Local] else @@ -38,13 +33,24 @@ class Server else @ca = nil end + + Puppet.debug("Creating interpreter") + + args = {:Manifest => @file} + + if @local + args[:UseNodes] = false + end + + begin + @interpreter = Puppet::Parser::Interpreter.new(args) + rescue => detail + Puppet.err detail + raise + end end def getconfig(facts, client = nil, clientip = nil) - parsefile() - if client - #Puppet.warning request.inspect - end if @local # we don't need to do anything, since we should already # have raw objects @@ -62,20 +68,9 @@ class Server end end - Puppet.debug("Creating interpreter") - - begin - interpreter = Puppet::Parser::Interpreter.new( - :ast => @ast, - :facts => facts - ) - rescue => detail - return detail.to_s - end - Puppet.debug("Running interpreter") begin - retobjects = interpreter.run() + retobjects = @interpreter.run(client, facts) rescue => detail Puppet.err detail.to_s return "" @@ -87,45 +82,6 @@ class Server return CGI.escape(Marshal::dump(retobjects)) end end - - private - - def parsefile - if @filestamp and FileTest.exists?(@file) - if @filetimeout and @filestatted - if Time.now - @filestatted > @filetimeout - tmp = File.stat(@file).ctime - - @filestatted = Time.now - if tmp == @filestamp - return - else - Puppet.notice "Reloading file" - end - else - return - end - else - @filestatted = Time.now - end - end - @filestatted = Time.now - - unless FileTest.exists?(@file) - if @ast - Puppet.warning "Manifest %s has disappeared" % @file - return - else - raise Puppet::Error, "Manifest %s must exist" % @file - end - end - # should i be creating a new parser each time...? - @parser = Puppet::Parser::Parser.new() - @parser.file = @file - @ast = @parser.parse - - @filestamp = File.stat(@file).ctime - end end end end |