summaryrefslogtreecommitdiffstats
path: root/lib/puppet/server.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet/server.rb')
-rw-r--r--lib/puppet/server.rb37
1 files changed, 26 insertions, 11 deletions
diff --git a/lib/puppet/server.rb b/lib/puppet/server.rb
index 28bb1bd46..5707e6f0d 100644
--- a/lib/puppet/server.rb
+++ b/lib/puppet/server.rb
@@ -8,9 +8,6 @@
require 'puppet'
require 'puppet/daemon'
-require 'puppet/servlet'
-require 'puppet/master'
-require 'puppet/ca'
$noservernetworking = false
@@ -51,13 +48,25 @@ module Puppet
class Server < WEBrick::HTTPServer
include Puppet::Daemon
- # a bit of a hack for now, but eh, wadda ya gonna do?
- @@handlers = {
- :Master => Puppet::Master,
- :CA => Puppet::CA,
- :Status => Puppet::ServerStatus
- }
+ @@handlers = {}
+# # a bit of a hack for now, but eh, wadda ya gonna do?
+# @@handlers = {
+# :Master => Puppet::Server::Master,
+# :CA => Puppet::Server::CA,
+# :Status => Puppet::ServerStatus
+# }
+ def self.addhandler(name, handler)
+ @@handlers[name] = handler
+ end
+
+ Puppet::Server.addhandler(:Status, Puppet::ServerStatus)
+
+ def self.eachhandler
+ @@handlers.each { |name, klass|
+ yield(name, klass)
+ }
+ end
def self.inithandler(handler,args)
unless @@handlers.include?(handler)
raise ServerError, "Invalid handler %s" % handler
@@ -91,7 +100,7 @@ module Puppet
# okay, i need to retrieve my cert and set it up, somehow
# the default case will be that i'm also the ca
- if ca = @handlers.find { |handler| handler.is_a?(Puppet::CA) }
+ if ca = @handlers.find { |handler| handler.is_a?(Puppet::Server::CA) }
@driver = ca
@secureinit = true
self.fqdn
@@ -120,10 +129,16 @@ module Puppet
# have a global state
# mount has to be called after the server is initialized
- self.mount("/RPC2", Puppet::Servlet, @handlers)
+ self.mount("/RPC2", Puppet::Server::Servlet, @handlers)
end
end
end
#---------------------------------------------------------------
end
+
+require 'puppet/server/servlet'
+require 'puppet/server/master'
+require 'puppet/server/ca'
+require 'puppet/server/fileserver'
+require 'puppet/server/filebucket'