summaryrefslogtreecommitdiffstats
path: root/lib/puppet
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet')
-rw-r--r--lib/puppet/client.rb10
-rw-r--r--lib/puppet/server.rb37
-rw-r--r--lib/puppet/server/ca.rb (renamed from lib/puppet/ca.rb)4
-rwxr-xr-xlib/puppet/server/filebucket.rb (renamed from lib/puppet/filebucket.rb)0
-rwxr-xr-xlib/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.rb4
-rwxr-xr-xlib/puppet/type/pfilebucket.rb2
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