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.rb76
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