diff options
Diffstat (limited to 'lib/puppet')
-rw-r--r-- | lib/puppet/client.rb | 10 | ||||
-rw-r--r-- | lib/puppet/server.rb | 37 | ||||
-rw-r--r-- | lib/puppet/server/ca.rb (renamed from lib/puppet/ca.rb) | 4 | ||||
-rwxr-xr-x | lib/puppet/server/filebucket.rb (renamed from lib/puppet/filebucket.rb) | 0 | ||||
-rwxr-xr-x | lib/puppet/server/fileserver.rb (renamed from lib/puppet/fileserver.rb) | 4 | ||||
-rw-r--r-- | lib/puppet/server/master.rb (renamed from lib/puppet/master.rb) | 4 | ||||
-rw-r--r-- | lib/puppet/server/servlet.rb (renamed from lib/puppet/servlet.rb) | 2 | ||||
-rw-r--r-- | lib/puppet/type/pfile.rb | 4 | ||||
-rwxr-xr-x | lib/puppet/type/pfilebucket.rb | 2 |
9 files changed, 48 insertions, 19 deletions
diff --git a/lib/puppet/client.rb b/lib/puppet/client.rb index 1282a5900..7998f2ff8 100644 --- a/lib/puppet/client.rb +++ b/lib/puppet/client.rb @@ -5,13 +5,13 @@ require 'puppet' require 'puppet/sslcertificates' require 'puppet/type' -require 'puppet/server' require 'facter' require 'openssl' require 'puppet/transaction' require 'puppet/transportable' require 'puppet/metric' require 'puppet/daemon' +require 'puppet/server' $noclientnetworking = false begin @@ -33,9 +33,9 @@ module Puppet class NetworkClient < XMLRPC::Client #include Puppet::Daemon - @@handlers = [Puppet::FileServer, Puppet::CA, Puppet::Master] + #@@handlers = [Puppet::FileServer, Puppet::CA, Puppet::Server::Master] - @@handlers.each { |handler| + Puppet::Server.eachhandler { |name, handler| interface = handler.interface namespace = interface.prefix @@ -169,12 +169,12 @@ module Puppet @driver = Puppet::NetworkClient.new(args) @local = false - when Puppet::Master: + when Puppet::Server::Master: @driver = hash[:Server] @local = true else raise ClientError.new("Server must be a hostname or a " + - "Puppet::Master object") + "Puppet::Server::Master object") end else raise ClientError.new("Must pass :Server to client") 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' diff --git a/lib/puppet/ca.rb b/lib/puppet/server/ca.rb index 9a6f8aeda..65074c3f6 100644 --- a/lib/puppet/ca.rb +++ b/lib/puppet/server/ca.rb @@ -7,6 +7,7 @@ require 'xmlrpc/server' # http://segment7.net/projects/ruby/QuickCert/ module Puppet +class Server class CAError < Puppet::Error; end class CA attr_reader :ca @@ -17,6 +18,8 @@ module Puppet } end + Puppet::Server.addhandler(:CA, self) + def autosign?(hostname) # simple values are easy asign = Puppet[:autosign] @@ -153,3 +156,4 @@ module Puppet end end end +end diff --git a/lib/puppet/filebucket.rb b/lib/puppet/server/filebucket.rb index f0e717146..f0e717146 100755 --- a/lib/puppet/filebucket.rb +++ b/lib/puppet/server/filebucket.rb diff --git a/lib/puppet/fileserver.rb b/lib/puppet/server/fileserver.rb index f04c337af..43e08655f 100755 --- a/lib/puppet/fileserver.rb +++ b/lib/puppet/server/fileserver.rb @@ -2,6 +2,7 @@ require 'puppet' require 'cgi' module Puppet +class Server class FileServerError < Puppet::Error; end class FileServer attr_accessor :local @@ -17,6 +18,8 @@ module Puppet } end + Puppet::Server.addhandler(:FileServer, self) + def check(dir) unless FileTest.exists?(dir) Puppet.notice "File source %s does not exist" % dir @@ -256,5 +259,6 @@ module Puppet end end end +end # $Id$ diff --git a/lib/puppet/master.rb b/lib/puppet/server/master.rb index bbfeaf557..f3f0411e9 100644 --- a/lib/puppet/master.rb +++ b/lib/puppet/server/master.rb @@ -5,6 +5,7 @@ require 'puppet/sslcertificates' require 'xmlrpc/server' module Puppet +class Server class MasterError < Puppet::Error; end class Master attr_accessor :ast, :local @@ -16,6 +17,8 @@ module Puppet } end + Puppet::Server.addhandler(:Master, self) + def initialize(hash = {}) # build our AST @@ -86,3 +89,4 @@ module Puppet end end end +end diff --git a/lib/puppet/servlet.rb b/lib/puppet/server/servlet.rb index 3fa965fa3..4db9f6c0e 100644 --- a/lib/puppet/servlet.rb +++ b/lib/puppet/server/servlet.rb @@ -1,6 +1,7 @@ require 'xmlrpc/server' module Puppet +class Server class ServletError < RuntimeError; end class Servlet < XMLRPC::WEBrickServlet attr_accessor :request @@ -108,3 +109,4 @@ module Puppet end end end +end diff --git a/lib/puppet/type/pfile.rb b/lib/puppet/type/pfile.rb index 4eab8ca5b..ddfb2aae3 100644 --- a/lib/puppet/type/pfile.rb +++ b/lib/puppet/type/pfile.rb @@ -7,7 +7,7 @@ require 'etc' require 'uri' require 'fileutils' require 'puppet/type/state' -require 'puppet/fileserver' +require 'puppet/server/fileserver' module Puppet # we first define all of the state that our file will use @@ -1577,7 +1577,7 @@ module Puppet case uri.scheme when "file": - sourceobj.server = Puppet::FileServer.new( + sourceobj.server = Puppet::Server::FileServer.new( :Local => true ) sourceobj.server.mount("/", "localhost") diff --git a/lib/puppet/type/pfilebucket.rb b/lib/puppet/type/pfilebucket.rb index 7fa059979..da931244c 100755 --- a/lib/puppet/type/pfilebucket.rb +++ b/lib/puppet/type/pfilebucket.rb @@ -2,7 +2,7 @@ # $Id$ -require 'puppet/filebucket' +require 'puppet/server/filebucket' module Puppet class Type |