diff options
| author | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2007-02-08 01:39:39 +0000 |
|---|---|---|
| committer | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2007-02-08 01:39:39 +0000 |
| commit | 7e07e3dc843798bdbc7a03428ca054adaff2fb72 (patch) | |
| tree | 34d0f9f8c2ee11bdc281e6e4d18cad444253fe36 | |
| parent | 6d8068eddd0d29ec53f62557eb53f6ebb8e40591 (diff) | |
| download | puppet-7e07e3dc843798bdbc7a03428ca054adaff2fb72.tar.gz puppet-7e07e3dc843798bdbc7a03428ca054adaff2fb72.tar.xz puppet-7e07e3dc843798bdbc7a03428ca054adaff2fb72.zip | |
Moving all of the client and server code into a single network/ directory. In other words, more code structure cleanup.
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2179 980ebf18-57e1-0310-9a29-db15c13687c0
83 files changed, 1025 insertions, 1109 deletions
diff --git a/bin/puppet b/bin/puppet index 609a6e2e4..492c7f88b 100755 --- a/bin/puppet +++ b/bin/puppet @@ -60,8 +60,8 @@ # Licensed under the GNU Public License require 'puppet' -require 'puppet/server' -require 'puppet/client' +require 'puppet/network/server' +require 'puppet/network/client' require 'getoptlong' options = [ @@ -179,8 +179,8 @@ if loadclasses end begin - server = Puppet::Server::Master.new(master) - client = Puppet::Client::MasterClient.new( + server = Puppet::Network::Server::Master.new(master) + client = Puppet::Network::Client::MasterClient.new( :Master => server, :Cache => false ) diff --git a/bin/puppetd b/bin/puppetd index 62973260b..afb30b55b 100755 --- a/bin/puppetd +++ b/bin/puppetd @@ -155,8 +155,8 @@ trap(:INT) do end require 'puppet' -require 'puppet/server' -require 'puppet/client' +require 'puppet/network/server' +require 'puppet/network/client' require 'getoptlong' options = [ @@ -205,7 +205,7 @@ begin when "--disable" options[:disable] = true when "--serve" - if klass = Puppet::Server::Handler.handler(arg) + if klass = Puppet::Network::Server::Handler.handler(arg) options[:serve][klass.name] = klass end when "--enable" @@ -305,7 +305,7 @@ end # We need tomake the client either way, we just don't start it # if --no-client is set. -client = Puppet::Client::MasterClient.new(args) +client = Puppet::Network::Client::MasterClient.new(args) if options[:enable] client.enable elsif options[:disable] @@ -327,7 +327,7 @@ end unless client.readcert # If we don't already have the certificate, then create a client to # request one. - caclient = Puppet::Client::CA.new(args) + caclient = Puppet::Network::Client::CA.new(args) if options[:waitforcert] > 0 begin while ! caclient.requestcert do @@ -387,7 +387,7 @@ if Puppet[:listen] and ! options[:onetime] args[:Port] = Puppet[:puppetport] begin - server = Puppet::Server.new(args) + server = Puppet::Network::Server.new(args) rescue => detail $stderr.puts detail puts detail.backtrace diff --git a/bin/puppetdoc b/bin/puppetdoc index c248b25f0..8da37b35f 100755 --- a/bin/puppetdoc +++ b/bin/puppetdoc @@ -265,7 +265,7 @@ path. end def self.reports - puts Puppet::Server::Report.reportdocs + puts Puppet::Network::Server::Report.reportdocs end def self.functions diff --git a/bin/puppetmasterd b/bin/puppetmasterd index ecacf480a..83e2b08ed 100755 --- a/bin/puppetmasterd +++ b/bin/puppetmasterd @@ -83,7 +83,7 @@ end require 'getoptlong' require 'puppet' -require 'puppet/server' +require 'puppet/network/server' options = [ [ "--daemonize", "-D", GetoptLong::NO_ARGUMENT ], @@ -230,7 +230,7 @@ end if Puppet[:parseonly] begin - Puppet::Server::Master.new(master) + Puppet::Network::Server::Master.new(master) rescue => detail if Puppet[:trace] puts detail.backtrace @@ -256,8 +256,8 @@ args[:Handlers] = handlers begin # use the default, um, everything - #server = Puppet::Server.new(:CA => ca) - server = Puppet::Server.new(args) + #server = Puppet::Network::Server.new(:CA => ca) + server = Puppet::Network::Server.new(args) rescue => detail if Puppet[:trace] puts detail.backtrace diff --git a/bin/puppetrun b/bin/puppetrun index 8df673eea..a432fe01d 100755 --- a/bin/puppetrun +++ b/bin/puppetrun @@ -137,8 +137,8 @@ rescue LoadError $stderr.puts "Failed to load ruby LDAP library. LDAP functionality will not be available" end require 'puppet' -require 'puppet/server' -require 'puppet/client' +require 'puppet/network/server' +require 'puppet/network/client' require 'getoptlong' @@ -340,7 +340,7 @@ while go $stderr.print "Could not contact %s\n" % host next end - client = Puppet::Client::Runner.new( + client = Puppet::Network::Client::Runner.new( :Server => host, :Port => Puppet[:puppetport] ) diff --git a/lib/puppet.rb b/lib/puppet.rb index f12645357..d6d9840bb 100644 --- a/lib/puppet.rb +++ b/lib/puppet.rb @@ -210,7 +210,7 @@ module Puppet # Handle restarting. trap(:HUP) do - if client = @services.find { |s| s.is_a? Puppet::Client::MasterClient } and client.running? + if client = @services.find { |s| s.is_a? Puppet::Network::Client::MasterClient } and client.running? client.restart else Puppet.restart @@ -221,7 +221,7 @@ module Puppet trap(:USR1) do done = 0 Puppet.notice "Caught USR1; triggering client run" - @services.find_all { |s| s.is_a? Puppet::Client }.each do |client| + @services.find_all { |s| s.is_a? Puppet::Network::Client }.each do |client| if client.respond_to? :running? if client.running? Puppet.info "Ignoring running %s" % client.class @@ -387,7 +387,7 @@ module Puppet end end -require 'puppet/server' +require 'puppet/network/server' require 'puppet/type' require 'puppet/util/storage' if Puppet[:storeconfigs] diff --git a/lib/puppet/client.rb b/lib/puppet/client.rb deleted file mode 100644 index e668aa27a..000000000 --- a/lib/puppet/client.rb +++ /dev/null @@ -1,194 +0,0 @@ -# the available clients - -require 'puppet' -require 'puppet/networkclient' - -module Puppet - # FIXME this still isn't a good design, because none of the handlers overlap - # so i could just as easily include them all in the main module - # but at least it's better organized for now - class Client - include Puppet - include Puppet::Daemon - - include Puppet::Util - - # FIXME The cert stuff should only come up with networking, so it - # should be in the network client, not the normal client. But if i do - # that, it's hard to tell whether the certs have been initialized. - include Puppet::Daemon - attr_reader :secureinit - attr_accessor :schedule, :lastrun, :local, :stopping - - class << self - attr_reader :drivername, :handler - attr_accessor :netclient - end - - def initcerts - unless self.readcert - #if self.is_a? Puppet::Client::CA - unless self.requestcert - return nil - end - #else - # return nil - #end - #unless self.requestcert - #end - end - - # unless we have a driver, we're a local client and we can't add - # certs anyway, so it doesn't matter - unless @driver - return true - end - - self.setcerts - end - - def initialize(hash) - # to whom do we connect? - @server = nil - @nil = nil - @secureinit = hash[:NoSecureInit] || true - - if hash.include?(:FQDN) - @fqdn = hash[:FQDN] - else - self.fqdn - end - - if hash.include?(:Cache) - @cache = hash[:Cache] - else - @cache = true - end - - driverparam = self.class.drivername - if hash.include?(:Server) - if $noclientnetworking - raise NetworkClientError.new("Networking not available: %s" % - $nonetworking) - end - - args = {:Server => hash[:Server]} - args[:Port] = hash[:Port] || Puppet[:masterport] - - if self.readcert - args[:Certificate] = @cert - args[:Key] = @key - args[:CAFile] = @cacertfile - end - - netclient = nil - unless netclient = self.class.netclient - unless handler = self.class.handler - raise Puppet::DevError, - "Class %s has no handler defined" % self.class - end - namespace = self.class.handler.interface.prefix - netclient = Puppet::NetworkClient.netclient(namespace) - self.class.netclient = netclient - end - @driver = netclient.new(args) - @local = false - elsif hash.include?(driverparam) - @driver = hash[driverparam] - @local = true - else - raise ClientError, "%s must be passed a Server or %s" % - [self.class, driverparam] - end - end - - # Are we a local client? - def local? - if defined? @local and @local - true - else - false - end - end - - # A wrapper method to run and then store the last run time - def runnow - if self.stopping - Puppet.notice "In shutdown progress; skipping run" - return - end - begin - self.run - self.lastrun = Time.now.to_i - rescue => detail - if Puppet[:trace] - puts detail.backtrace - end - Puppet.err "Could not run %s: %s" % [self.class, detail] - end - end - - def run - raise Puppet::DevError, "Client type %s did not override run" % - self.class - end - - def scheduled? - if sched = self.schedule - return sched.match?(self.lastrun) - else - return true - end - end - - def setcerts - @driver.cert = @cert - @driver.key = @key - @driver.ca_file = @cacertfile - end - - def shutdown - if self.stopping - Puppet.notice "Already in shutdown" - else - self.stopping = true - if self.respond_to? :running? and self.running? - Puppet::Util::Storage.store - end - rmpidfile() - end - end - - # Start listening for events. We're pretty much just listening for - # timer events here. - def start - setpidfile() - # Create our timer. Puppet will handle observing it and such. - timer = Puppet.newtimer( - :interval => Puppet[:runinterval], - :tolerance => 1, - :start? => true - ) do - if self.scheduled? - self.runnow - end - end - - # Run once before we start following the timer - self.runnow - end - - require 'puppet/client/proxy' - require 'puppet/client/ca' - require 'puppet/client/dipper' - require 'puppet/client/file' - require 'puppet/client/log' - require 'puppet/client/master' - require 'puppet/client/runner' - require 'puppet/client/status' - require 'puppet/client/reporter' - require 'puppet/client/resource' - end -end - -# $Id$ diff --git a/lib/puppet/client/ca.rb b/lib/puppet/client/ca.rb deleted file mode 100644 index 8904c4a13..000000000 --- a/lib/puppet/client/ca.rb +++ /dev/null @@ -1,21 +0,0 @@ -class Puppet::Client::CA < Puppet::Client::ProxyClient - @drivername = :CA - - # set up the appropriate interface methods - @handler = Puppet::Server::CA - self.mkmethods - - def initialize(hash = {}) - if hash.include?(:CA) - if hash[:CA].is_a? Hash - hash[:CA] = Puppet::Server::CA.new(hash[:CA]) - else - hash[:CA] = Puppet::Server::CA.new() - end - end - - super(hash) - end -end - -# $Id$ diff --git a/lib/puppet/client/dipper.rb b/lib/puppet/client/dipper.rb deleted file mode 100644 index 1422c24f2..000000000 --- a/lib/puppet/client/dipper.rb +++ /dev/null @@ -1,80 +0,0 @@ -module Puppet - class Client - # The client class for filebuckets. - class Dipper < Puppet::Client - @drivername = :Bucket - - @handler = Puppet::Server::FileBucket - - attr_accessor :name - - # Create our bucket client - def initialize(hash = {}) - if hash.include?(:Path) - bucket = Puppet::Server::FileBucket.new( - :Path => hash[:Path] - ) - hash.delete(:Path) - hash[:Bucket] = bucket - end - - super(hash) - end - - # Back up a file to our bucket - def backup(file) - unless FileTest.exists?(file) - raise(BucketError, "File %s does not exist" % file) - end - contents = File.read(file) - unless local? - contents = Base64.encode64(contents) - end - return @driver.addfile(contents,file) - end - - # Restore the file - def restore(file,sum) - restore = true - if FileTest.exists?(file) - cursum = Digest::MD5.hexdigest(File.read(file)) - - # if the checksum has changed... - # this might be extra effort - if cursum == sum - restore = false - end - end - - if restore - if newcontents = @driver.getfile(sum) - unless local? - newcontents = Base64.decode64(newcontents) - end - tmp = "" - newsum = Digest::MD5.hexdigest(newcontents) - changed = nil - unless FileTest.writable?(file) - changed = File.stat(file).mode - File.chmod(changed | 0200, file) - end - File.open(file,File::WRONLY|File::TRUNC) { |of| - of.print(newcontents) - } - if changed - File.chmod(changed, file) - end - else - Puppet.err "Could not find file with checksum %s" % sum - return nil - end - return newsum - else - return nil - end - end - end - end -end - -# $Id$ diff --git a/lib/puppet/client/status.rb b/lib/puppet/client/status.rb deleted file mode 100644 index ed1445e04..000000000 --- a/lib/puppet/client/status.rb +++ /dev/null @@ -1,7 +0,0 @@ -class Puppet::Client::StatusClient < Puppet::Client::ProxyClient - # set up the appropriate interface methods - @handler = Puppet::Server::ServerStatus - self.mkmethods -end - -# $Id$ diff --git a/lib/puppet/daemon.rb b/lib/puppet/daemon.rb index 9fdb33bcf..91661e9e7 100755 --- a/lib/puppet/daemon.rb +++ b/lib/puppet/daemon.rb @@ -189,7 +189,7 @@ module Puppet # to create one if we don't already have one (or if we're not a CA # server). caclient = nil - if @driver.is_a? Puppet::Client::CA or @driver.is_a? Puppet::Server::CA + if @driver.is_a? Puppet::Network::Client::CA or @driver.is_a? Puppet::Network::Server::CA caclient = @driver else # Create a CA client with which to request the cert. @@ -197,7 +197,7 @@ module Puppet raise Puppet::DevError, "Incorrect setup for a local CA request" end - caclient = Puppet::Client::CA.new( + caclient = Puppet::Network::Client::CA.new( :Port => @driver.puppet_port, :Server => @driver.puppet_server ) diff --git a/lib/puppet/dsl.rb b/lib/puppet/dsl.rb index 44c03e8a9..09a4e2b61 100644 --- a/lib/puppet/dsl.rb +++ b/lib/puppet/dsl.rb @@ -68,7 +68,7 @@ module Puppet def apply bucket = export() objects = bucket.to_type - master = Puppet::Client::MasterClient.new :Master => "whatever" + master = Puppet::Network::Client::MasterClient.new :Master => "whatever" master.objects = objects master.apply diff --git a/lib/puppet/network/client.rb b/lib/puppet/network/client.rb new file mode 100644 index 000000000..604912025 --- /dev/null +++ b/lib/puppet/network/client.rb @@ -0,0 +1,190 @@ +# the available clients + +require 'puppet' +require 'puppet/network/networkclient' + +# FIXME this still isn't a good design, because none of the handlers overlap +# so i could just as easily include them all in the main module +# but at least it's better organized for now +class Puppet::Network::Client + include Puppet::Daemon + include Puppet::Util + + # FIXME The cert stuff should only come up with networking, so it + # should be in the network client, not the normal client. But if i do + # that, it's hard to tell whether the certs have been initialized. + include Puppet::Daemon + attr_reader :secureinit + attr_accessor :schedule, :lastrun, :local, :stopping + + class << self + attr_reader :drivername, :handler + attr_accessor :netclient + end + + def initcerts + unless self.readcert + #if self.is_a? Puppet::Network::Client::CA + unless self.requestcert + return nil + end + #else + # return nil + #end + #unless self.requestcert + #end + end + + # unless we have a driver, we're a local client and we can't add + # certs anyway, so it doesn't matter + unless @driver + return true + end + + self.setcerts + end + + def initialize(hash) + # to whom do we connect? + @server = nil + @nil = nil + @secureinit = hash[:NoSecureInit] || true + + if hash.include?(:FQDN) + @fqdn = hash[:FQDN] + else + self.fqdn + end + + if hash.include?(:Cache) + @cache = hash[:Cache] + else + @cache = true + end + + driverparam = self.class.drivername + if hash.include?(:Server) + if $noclientnetworking + raise NetworkClientError.new("Networking not available: %s" % + $nonetworking) + end + + args = {:Server => hash[:Server]} + args[:Port] = hash[:Port] || Puppet[:masterport] + + if self.readcert + args[:Certificate] = @cert + args[:Key] = @key + args[:CAFile] = @cacertfile + end + + netclient = nil + unless netclient = self.class.netclient + unless handler = self.class.handler + raise Puppet::DevError, + "Class %s has no handler defined" % self.class + end + namespace = self.class.handler.interface.prefix + netclient = Puppet::Network::NetworkClient.netclient(namespace) + self.class.netclient = netclient + end + @driver = netclient.new(args) + @local = false + elsif hash.include?(driverparam) + @driver = hash[driverparam] + @local = true + else + raise ClientError, "%s must be passed a Server or %s" % + [self.class, driverparam] + end + end + + # Are we a local client? + def local? + if defined? @local and @local + true + else + false + end + end + + # A wrapper method to run and then store the last run time + def runnow + if self.stopping + Puppet.notice "In shutdown progress; skipping run" + return + end + begin + self.run + self.lastrun = Time.now.to_i + rescue => detail + if Puppet[:trace] + puts detail.backtrace + end + Puppet.err "Could not run %s: %s" % [self.class, detail] + end + end + + def run + raise Puppet::DevError, "Client type %s did not override run" % + self.class + end + + def scheduled? + if sched = self.schedule + return sched.match?(self.lastrun) + else + return true + end + end + + def setcerts + @driver.cert = @cert + @driver.key = @key + @driver.ca_file = @cacertfile + end + + def shutdown + if self.stopping + Puppet.notice "Already in shutdown" + else + self.stopping = true + if self.respond_to? :running? and self.running? + Puppet::Util::Storage.store + end + rmpidfile() + end + end + + # Start listening for events. We're pretty much just listening for + # timer events here. + def start + setpidfile() + # Create our timer. Puppet will handle observing it and such. + timer = Puppet.newtimer( + :interval => Puppet[:runinterval], + :tolerance => 1, + :start? => true + ) do + if self.scheduled? + self.runnow + end + end + + # Run once before we start following the timer + self.runnow + end + + require 'puppet/network/client/proxy' + require 'puppet/network/client/ca' + require 'puppet/network/client/dipper' + require 'puppet/network/client/file' + require 'puppet/network/client/log' + require 'puppet/network/client/master' + require 'puppet/network/client/runner' + require 'puppet/network/client/status' + require 'puppet/network/client/reporter' + require 'puppet/network/client/resource' +end + +# $Id$ diff --git a/lib/puppet/network/client/ca.rb b/lib/puppet/network/client/ca.rb new file mode 100644 index 000000000..9a99c1145 --- /dev/null +++ b/lib/puppet/network/client/ca.rb @@ -0,0 +1,23 @@ +require 'puppet/network/client/proxy' + +class Puppet::Network::Client::CA < Puppet::Network::Client::ProxyClient + @drivername = :CA + + # set up the appropriate interface methods + @handler = Puppet::Network::Server::CA + self.mkmethods + + def initialize(hash = {}) + if hash.include?(:CA) + if hash[:CA].is_a? Hash + hash[:CA] = Puppet::Network::Server::CA.new(hash[:CA]) + else + hash[:CA] = Puppet::Network::Server::CA.new() + end + end + + super(hash) + end +end + +# $Id$ diff --git a/lib/puppet/network/client/dipper.rb b/lib/puppet/network/client/dipper.rb new file mode 100644 index 000000000..8eaffc1a0 --- /dev/null +++ b/lib/puppet/network/client/dipper.rb @@ -0,0 +1,76 @@ +# The client class for filebuckets. +class Puppet::Network::Client::Dipper < Puppet::Network::Client + @drivername = :Bucket + + @handler = Puppet::Network::Server::FileBucket + + attr_accessor :name + + # Create our bucket client + def initialize(hash = {}) + if hash.include?(:Path) + bucket = Puppet::Network::Server::FileBucket.new( + :Path => hash[:Path] + ) + hash.delete(:Path) + hash[:Bucket] = bucket + end + + super(hash) + end + + # Back up a file to our bucket + def backup(file) + unless FileTest.exists?(file) + raise(BucketError, "File %s does not exist" % file) + end + contents = File.read(file) + unless local? + contents = Base64.encode64(contents) + end + return @driver.addfile(contents,file) + end + + # Restore the file + def restore(file,sum) + restore = true + if FileTest.exists?(file) + cursum = Digest::MD5.hexdigest(File.read(file)) + + # if the checksum has changed... + # this might be extra effort + if cursum == sum + restore = false + end + end + + if restore + if newcontents = @driver.getfile(sum) + unless local? + newcontents = Base64.decode64(newcontents) + end + tmp = "" + newsum = Digest::MD5.hexdigest(newcontents) + changed = nil + unless FileTest.writable?(file) + changed = File.stat(file).mode + File.chmod(changed | 0200, file) + end + File.open(file,File::WRONLY|File::TRUNC) { |of| + of.print(newcontents) + } + if changed + File.chmod(changed, file) + end + else + Puppet.err "Could not find file with checksum %s" % sum + return nil + end + return newsum + else + return nil + end + end +end + +# $Id$ diff --git a/lib/puppet/client/file.rb b/lib/puppet/network/client/file.rb index 116624003..7596aec1f 100644 --- a/lib/puppet/client/file.rb +++ b/lib/puppet/network/client/file.rb @@ -1,14 +1,14 @@ -class Puppet::Client::FileClient < Puppet::Client::ProxyClient +class Puppet::Network::Client::FileClient < Puppet::Network::Client::ProxyClient @drivername = :FileServer # set up the appropriate interface methods - @handler = Puppet::Server::FileServer + @handler = Puppet::Network::Server::FileServer self.mkmethods def initialize(hash = {}) if hash.include?(:FileServer) - unless hash[:FileServer].is_a?(Puppet::Server::FileServer) + unless hash[:FileServer].is_a?(Puppet::Network::Server::FileServer) raise Puppet::DevError, "Must pass an actual FS object" end end diff --git a/lib/puppet/client/log.rb b/lib/puppet/network/client/log.rb index e20c0532c..eddb8e0ca 100644 --- a/lib/puppet/client/log.rb +++ b/lib/puppet/network/client/log.rb @@ -1,13 +1,13 @@ -class Puppet::Client::LogClient < Puppet::Client::ProxyClient +class Puppet::Network::Client::LogClient < Puppet::Network::Client::ProxyClient @drivername = :Logger # set up the appropriate interface methods - @handler = Puppet::Server::Logger + @handler = Puppet::Network::Server::Logger self.mkmethods def initialize(hash = {}) if hash.include?(:Logger) - hash[:Logger] = Puppet::Server::Logger.new() + hash[:Logger] = Puppet::Network::Server::Logger.new() end super(hash) diff --git a/lib/puppet/client/master.rb b/lib/puppet/network/client/master.rb index 046e0c5aa..9f07f48ef 100644 --- a/lib/puppet/client/master.rb +++ b/lib/puppet/network/client/master.rb @@ -2,12 +2,12 @@ require 'sync' require 'timeout' -class Puppet::Client::MasterClient < Puppet::Client +class Puppet::Network::Client::MasterClient < Puppet::Network::Client unless defined? @@sync @@sync = Sync.new end - @handler = Puppet::Server::Master + @handler = Puppet::Network::Server::Master Puppet.setdefaults("puppetd", :puppetdlockfile => [ "$statedir/puppetdlock", @@ -244,7 +244,7 @@ class Puppet::Client::MasterClient < Puppet::Client facts = self.class.facts unless facts.length > 0 - raise Puppet::ClientError.new( + raise Puppet::Network::ClientError.new( "Could not retrieve any facts" ) end @@ -551,7 +551,7 @@ class Puppet::Client::MasterClient < Puppet::Client def reportclient unless defined? @reportclient - @reportclient = Puppet::Client::Reporter.new( + @reportclient = Puppet::Network::Client::Reporter.new( :Server => Puppet[:reportserver] ) end diff --git a/lib/puppet/client/proxy.rb b/lib/puppet/network/client/proxy.rb index 6aff635f4..e1295a96f 100644 --- a/lib/puppet/client/proxy.rb +++ b/lib/puppet/network/client/proxy.rb @@ -1,7 +1,7 @@ # unlike the other client classes (again, this design sucks) this class # is basically just a proxy class -- it calls its methods on the driver # and that's about it -class Puppet::Client::ProxyClient < Puppet::Client +class Puppet::Network::Client::ProxyClient < Puppet::Network::Client def self.mkmethods interface = @handler.interface namespace = interface.prefix diff --git a/lib/puppet/client/reporter.rb b/lib/puppet/network/client/reporter.rb index a92842e7c..dd340da02 100644 --- a/lib/puppet/client/reporter.rb +++ b/lib/puppet/network/client/reporter.rb @@ -1,12 +1,12 @@ -class Puppet::Client::Reporter < Puppet::Client +class Puppet::Network::Client::Reporter < Puppet::Network::Client @drivername = :Report # set up the appropriate interface methods - @handler = Puppet::Server::Report + @handler = Puppet::Network::Server::Report def initialize(hash = {}) if hash.include?(:Report) - hash[:Report] = Puppet::Server::Report.new() + hash[:Report] = Puppet::Network::Server::Report.new() end super(hash) diff --git a/lib/puppet/client/resource.rb b/lib/puppet/network/client/resource.rb index 6081b2b66..71a19bf91 100644 --- a/lib/puppet/client/resource.rb +++ b/lib/puppet/network/client/resource.rb @@ -1,7 +1,7 @@ -class Puppet::Client::Resource < Puppet::Client +class Puppet::Network::Client::Resource < Puppet::Network::Client @drivername = :ResourceServer - @handler = Puppet::Server::Resource + @handler = Puppet::Network::Server::Resource def apply(bucket) @@ -43,7 +43,7 @@ class Puppet::Client::Resource < Puppet::Client def initialize(hash = {}) if hash.include?(:ResourceServer) - unless hash[:ResourceServer].is_a?(Puppet::Server::Resource) + unless hash[:ResourceServer].is_a?(Puppet::Network::Server::Resource) raise Puppet::DevError, "Must pass an actual PElement server object" end end diff --git a/lib/puppet/client/runner.rb b/lib/puppet/network/client/runner.rb index 9bedf2374..40d13ac86 100644 --- a/lib/puppet/client/runner.rb +++ b/lib/puppet/network/client/runner.rb @@ -1,13 +1,13 @@ -class Puppet::Client::Runner < Puppet::Client::ProxyClient +class Puppet::Network::Client::Runner < Puppet::Network::Client::ProxyClient @drivername = :Runner # set up the appropriate interface methods - @handler = Puppet::Server::Runner + @handler = Puppet::Network::Server::Runner self.mkmethods def initialize(hash = {}) if hash.include?(:Runner) - hash[:Runner] = Puppet::Server::Runner.new() + hash[:Runner] = Puppet::Network::Server::Runner.new() end super(hash) diff --git a/lib/puppet/network/client/status.rb b/lib/puppet/network/client/status.rb new file mode 100644 index 000000000..6c1a96e85 --- /dev/null +++ b/lib/puppet/network/client/status.rb @@ -0,0 +1,7 @@ +class Puppet::Network::Client::StatusClient < Puppet::Network::Client::ProxyClient + # set up the appropriate interface methods + @handler = Puppet::Network::Server::ServerStatus + self.mkmethods +end + +# $Id$ diff --git a/lib/puppet/networkclient.rb b/lib/puppet/network/networkclient.rb index f082665c0..62d8906e0 100644 --- a/lib/puppet/networkclient.rb +++ b/lib/puppet/network/networkclient.rb @@ -1,33 +1,19 @@ -require 'puppet' require 'puppet/sslcertificates' -require 'puppet/type' -require 'facter' require 'openssl' -require 'puppet/transaction' -require 'puppet/transportable' require 'puppet/daemon' -require 'puppet/server' +require 'puppet/network/server' require 'puppet/external/base64' -$noclientnetworking = false -begin - require 'webrick' - require 'cgi' - require 'xmlrpc/client' - require 'xmlrpc/server' - require 'yaml' -rescue LoadError => detail - $noclientnetworking = detail - raise Puppet::Error, "You must have the Ruby XMLRPC, CGI, and Webrick libraries installed" -end +require 'webrick' +require 'cgi' +require 'xmlrpc/client' +require 'xmlrpc/server' +require 'yaml' module Puppet - class NetworkClientError < Puppet::Error; end - class ClientError < Puppet::Error; end - #--------------------------------------------------------------- - if $noclientnetworking - Puppet.err "Could not load client network libs: %s" % $noclientnetworking - else + module Network + class ClientError < Puppet::Error; end + class NetworkClientError < Puppet::Error; end class NetworkClient < XMLRPC::Client attr_accessor :puppet_server, :puppet_port @clients = {} @@ -40,7 +26,7 @@ module Puppet # Create a netclient for each handler def self.mkclients # add the methods associated with each namespace - Puppet::Server::Handler.each { |handler| + Puppet::Network::Server::Handler.each { |handler| interface = handler.interface namespace = interface.prefix diff --git a/lib/puppet/server.rb b/lib/puppet/network/server.rb index aabc87b50..e9205d48b 100644 --- a/lib/puppet/server.rb +++ b/lib/puppet/network/server.rb @@ -4,26 +4,15 @@ require 'puppet' require 'puppet/daemon' - -$noservernetworking = false - -begin - require 'webrick' - require 'webrick/https' - require 'cgi' - require 'xmlrpc/server' - require 'xmlrpc/client' -rescue LoadError => detail - $noservernetworking = detail -end +require 'webrick' +require 'webrick/https' +require 'cgi' +require 'xmlrpc/server' +require 'xmlrpc/client' module Puppet class ServerError < RuntimeError; end - #--------------------------------------------------------------- - if $noservernetworking - Puppet.err "Could not create server: %s" % $noservernetworking - class Server; end - else + module Network class Server < WEBrick::HTTPServer include Puppet::Daemon @@ -39,7 +28,7 @@ module Puppet # there's no configuration file. def authconfig unless defined? @authconfig - @authconfig = Puppet::Server::AuthConfig.new() + @authconfig = Puppet::Network::AuthConfig.new() end @authconfig @@ -99,7 +88,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::Server::CA) } + if ca = @handlers.find { |handler| handler.is_a?(Puppet::Network::Server::CA) } @driver = ca @secureinit = true self.fqdn @@ -137,7 +126,7 @@ module Puppet # have a global state # mount has to be called after the server is initialized - self.mount("/RPC2", Puppet::Server::Servlet, @handlers) + self.mount("/RPC2", Puppet::Network::Server::Servlet, @handlers) end # the base class for the different handlers @@ -198,24 +187,21 @@ module Puppet return 1 end end - end end - - #--------------------------------------------------------------- end -require 'puppet/server/authstore' -require 'puppet/server/authconfig' -require 'puppet/server/servlet' -require 'puppet/server/master' -require 'puppet/server/ca' -require 'puppet/server/fileserver' -require 'puppet/server/filebucket' -require 'puppet/server/resource' -require 'puppet/server/runner' -require 'puppet/server/logger' -require 'puppet/server/report' -require 'puppet/client' +require 'puppet/network/server/authstore' +require 'puppet/network/server/authconfig' +require 'puppet/network/server/servlet' +require 'puppet/network/server/master' +require 'puppet/network/server/ca' +require 'puppet/network/server/fileserver' +require 'puppet/network/server/filebucket' +require 'puppet/network/server/resource' +require 'puppet/network/server/runner' +require 'puppet/network/server/logger' +require 'puppet/network/server/report' +require 'puppet/network/client' # $Id$ diff --git a/lib/puppet/network/server/authconfig.rb b/lib/puppet/network/server/authconfig.rb new file mode 100644 index 000000000..e4d31d8d8 --- /dev/null +++ b/lib/puppet/network/server/authconfig.rb @@ -0,0 +1,173 @@ +require 'puppet/util/loadedfile' +require 'puppet/network/server/rights' + +module Puppet + class ConfigurationError < Puppet::Error; end + class Network::AuthConfig < Puppet::Util::LoadedFile + Puppet.config.setdefaults(:puppet, + :authconfig => [ "$confdir/namespaceauth.conf", + "The configuration file that defines the rights to the different + namespaces and methods. This can be used as a coarse-grained + authorization system for both ``puppetd`` and ``puppetmasterd``." + ] + ) + + # Just proxy the setting methods to our rights stuff + [:allow, :deny].each do |method| + define_method(method) do |*args| + @rights.send(method, *args) + end + end + + # Here we add a little bit of semantics. They can set auth on a whole namespace + # or on just a single method in the namespace. + def allowed?(name, host, ip) + namespace, method = name.to_s.split(".") + unless namespace and method + raise ArgumentError, "Invalid method name %s" % name + end + + name = name.intern if name.is_a? String + namespace = namespace.intern + method = method.intern + + read() + + if @rights.include?(name) + return @rights[name].allowed?(host, ip) + elsif @rights.include?(namespace) + return @rights[namespace].allowed?(host, ip) + else + return false + end + end + + # Does the file exist? Puppetmasterd does not require it, but + # puppetd does. + def exists? + FileTest.exists?(@file) + end + + def initialize(file = nil, parsenow = true) + @file ||= Puppet[:authconfig] + + unless @file + raise Puppet::DevError, "No authconfig file defined" + end + return unless self.exists? + super(@file) + @rights = Puppet::Network::Rights.new + @configstamp = @configstatted = nil + @configtimeout = 60 + + if parsenow + read() + end + end + + # Read the configuration file. + def read + return unless FileTest.exists?(@file) + + if @configstamp + if @configtimeout and @configstatted + if Time.now - @configstatted > @configtimeout + @configstatted = Time.now + tmp = File.stat(@file).ctime + + if tmp == @configstamp + return + else + Puppet.notice "%s vs %s" % [tmp, @configstamp] + end + else + return + end + else + Puppet.notice "%s and %s" % [@configtimeout, @configstatted] + end + end + + parse() + + @configstamp = File.stat(@file).ctime + @configstatted = Time.now + end + + private + + def parse + newrights = Puppet::Network::Rights.new + begin + File.open(@file) { |f| + right = nil + count = 1 + f.each { |line| + case line + when /^\s*#/: next # skip comments + when /^\s*$/: next # skip blank lines + when /\[([\w.]+)\]/: # "namespace" or "namespace.method" + name = $1 + if newrights.include?(name) + raise FileServerError, "%s is already set at %s" % + [newrights[name], name] + end + newrights.newright(name) + right = newrights[name] + when /^\s*(\w+)\s+(.+)$/: + var = $1 + value = $2 + case var + when "allow": + value.split(/\s*,\s*/).each { |val| + begin + right.info "allowing %s access" % val + right.allow(val) + rescue AuthStoreError => detail + raise ConfigurationError, "%s at line %s of %s" % + [detail.to_s, count, @config] + end + } + when "deny": + value.split(/\s*,\s*/).each { |val| + begin + right.info "denying %s access" % val + right.deny(val) + rescue AuthStoreError => detail + raise ConfigurationError, "%s at line %s of %s" % + [detail.to_s, count, @config] + end + } + else + raise ConfigurationError, + "Invalid argument '%s' at line %s" % [var, count] + end + else + raise ConfigurationError, "Invalid line %s: %s" % [count, line] + end + count += 1 + } + } + rescue Errno::EACCES => detail + Puppet.err "Configuration error: Cannot read %s; cannot serve" % @file + #raise Puppet::Error, "Cannot read %s" % @config + rescue Errno::ENOENT => detail + Puppet.err "Configuration error: '%s' does not exit; cannot serve" % + @file + #raise Puppet::Error, "%s does not exit" % @config + #rescue FileServerError => detail + # Puppet.err "FileServer error: %s" % detail + end + + # Verify each of the rights are valid. + # We let the check raise an error, so that it can raise an error + # pointing to the specific problem. + newrights.each { |name, right| + right.valid? + } + @rights = newrights + end + end +end + +# $Id$ diff --git a/lib/puppet/server/authstore.rb b/lib/puppet/network/server/authstore.rb index b0f63b68a..51ce93d46 100755 --- a/lib/puppet/server/authstore.rb +++ b/lib/puppet/network/server/authstore.rb @@ -4,11 +4,10 @@ require 'ipaddr' module Puppet -class Server class AuthStoreError < Puppet::Error; end class AuthorizationError < Puppet::Error; end - class AuthStore + class Network::AuthStore # This has to be an array, not a hash, else it loses its ordering. ORDER = [ [:ip, [:ip]], @@ -224,6 +223,5 @@ class Server end end end -end -# + # $Id$ diff --git a/lib/puppet/server/ca.rb b/lib/puppet/network/server/ca.rb index 10fafc940..8a61399ba 100644 --- a/lib/puppet/server/ca.rb +++ b/lib/puppet/network/server/ca.rb @@ -6,9 +6,7 @@ require 'xmlrpc/server' # Much of this was taken from QuickCert: # http://segment7.net/projects/ruby/QuickCert/ -module Puppet -class Server - class CAError < Puppet::Error; end +class Puppet::Network::Server class CA < Handler attr_reader :ca @@ -44,7 +42,7 @@ class Server end return false end - auth = Puppet::Server::AuthStore.new + auth = Puppet::Network::AuthStore.new File.open(autosign) { |f| f.each { |line| next if line =~ /^\s*#/ @@ -150,6 +148,5 @@ class Server end end end -end # $Id$ diff --git a/lib/puppet/server/filebucket.rb b/lib/puppet/network/server/filebucket.rb index 56d994366..77dbbde5e 100755 --- a/lib/puppet/server/filebucket.rb +++ b/lib/puppet/network/server/filebucket.rb @@ -9,8 +9,7 @@ require 'facter' require 'digest/md5' require 'puppet/external/base64' -module Puppet -class Server +class Puppet::Network::Server class BucketError < RuntimeError; end class FileBucket < Handler Puppet.config.setdefaults("puppetmasterd", @@ -164,6 +163,5 @@ class Server end end end -end -# + # $Id$ diff --git a/lib/puppet/server/fileserver.rb b/lib/puppet/network/server/fileserver.rb index 3ea44d785..904d497ca 100755 --- a/lib/puppet/server/fileserver.rb +++ b/lib/puppet/network/server/fileserver.rb @@ -3,9 +3,8 @@ require 'webrick/httpstatus' require 'cgi' require 'delegate' -module Puppet -class FileServerError < Puppet::Error; end -class Server +class Puppet::Network::Server + class FileServerError < Puppet::Error; end class FileServer < Handler attr_accessor :local @@ -27,7 +26,7 @@ class Server links = links.intern if links.is_a? String if links == :manage - raise Puppet::FileServerError, "Cannot currently copy links" + raise Puppet::Network::Server::FileServerError, "Cannot currently copy links" end mount, path = convert(url, client, clientip) @@ -200,7 +199,7 @@ class Server unless mount.allowed?(client, clientip) mount.warning "%s cannot access %s" % [client, file] - raise Puppet::Server::AuthorizationError, "Cannot access %s" % mount + raise Puppet::AuthorizationError, "Cannot access %s" % mount end end @@ -399,7 +398,7 @@ class Server # A simple class for wrapping mount points. Instances of this class # don't know about the enclosing object; they're mainly just used for # authorization. - class Mount < AuthStore + class Mount < Puppet::Network::AuthStore attr_reader :name Puppet::Util.logmethods(self, true) @@ -586,6 +585,5 @@ class Server end end end -end # $Id$ diff --git a/lib/puppet/server/logger.rb b/lib/puppet/network/server/logger.rb index aa3521573..f6bf9ba88 100755 --- a/lib/puppet/server/logger.rb +++ b/lib/puppet/network/server/logger.rb @@ -1,7 +1,6 @@ require 'yaml' -module Puppet -class Server +class Puppet::Network::Server class LoggerError < RuntimeError; end # Receive logs from remote hosts. @@ -49,6 +48,5 @@ class Server end end end -end # $Id$ diff --git a/lib/puppet/server/master.rb b/lib/puppet/network/server/master.rb index cda6027d0..b7096cd6d 100644 --- a/lib/puppet/server/master.rb +++ b/lib/puppet/network/server/master.rb @@ -5,8 +5,7 @@ require 'puppet/sslcertificates' require 'xmlrpc/server' require 'yaml' -module Puppet -class Server +class Puppet::Network::Server class MasterError < Puppet::Error; end class Master < Handler include Puppet::Util @@ -209,6 +208,5 @@ class Server end end end -end # $Id$ diff --git a/lib/puppet/server/report.rb b/lib/puppet/network/server/report.rb index 4298f8ee6..cd0214e30 100755 --- a/lib/puppet/server/report.rb +++ b/lib/puppet/network/server/report.rb @@ -1,6 +1,5 @@ -module Puppet -class Server - # A simple server for triggering a new run on a Puppet client. +# A simple server for triggering a new run on a Puppet client. +class Puppet::Network::Server class Report < Handler class << self include Puppet::Util::ClassGen @@ -171,6 +170,5 @@ class Server end end end -end # $Id$ diff --git a/lib/puppet/network/server/resource.rb b/lib/puppet/network/server/resource.rb new file mode 100755 index 000000000..37e331a13 --- /dev/null +++ b/lib/puppet/network/server/resource.rb @@ -0,0 +1,190 @@ +require 'puppet' +require 'puppet/network/server' + +# Serve Puppet elements. Useful for querying, copying, and, um, other stuff. +class Puppet::Network::Server + class Resource < Handler + attr_accessor :local + + @interface = XMLRPC::Service::Interface.new("resource") { |iface| + iface.add_method("string apply(string, string)") + iface.add_method("string describe(string, string, array, array)") + iface.add_method("string list(string, array, string)") + } + + # Apply a TransBucket as a transaction. + def apply(bucket, format = "yaml", client = nil, clientip = nil) + unless @local + begin + case format + when "yaml": + bucket = YAML::load(Base64.decode64(bucket)) + else + raise Puppet::Error, "Unsupported format '%s'" % format + end + rescue => detail + raise Puppet::Error, "Could not load YAML TransBucket: %s" % detail + end + end + + component = bucket.to_type + + # Create a client, but specify the remote machine as the server + # because the class requires it, even though it's unused + client = Puppet::Network::Client::MasterClient.new(:Server => client||"localhost") + + # Set the objects + client.objects = component + + # And then apply the configuration. This way we're reusing all + # the code in there. It should probably just be separated out, though. + transaction = client.apply + + # And then clean up + component.remove + + # It'd be nice to return some kind of report, but... at this point + # we have no such facility. + return "success" + end + + # Describe a given object. This returns the 'is' values for every property + # available on the object type. + def describe(type, name, retrieve = nil, ignore = [], format = "yaml", client = nil, clientip = nil) + Puppet.info "Describing %s[%s]" % [type.to_s.capitalize, name] + @local = true unless client + typeklass = nil + unless typeklass = Puppet.type(type) + raise Puppet::Error, "Puppet type %s is unsupported" % type + end + + obj = nil + + retrieve ||= :all + ignore ||= [] + + if obj = typeklass[name] + obj[:check] = retrieve + else + begin + obj = typeklass.create(:name => name, :check => retrieve) + rescue Puppet::Error => detail + raise Puppet::Error, "%s[%s] could not be created: %s" % + [type, name, detail] + end + end + + unless obj + raise XMLRPC::FaultException.new( + 1, "Could not create %s[%s]" % [type, name] + ) + end + + trans = obj.to_trans + + # Now get rid of any attributes they specifically don't want + ignore.each do |st| + if trans.include? st + trans.delete(st) + end + end + + # And get rid of any attributes that are nil + trans.each do |attr, value| + if value.nil? + trans.delete(attr) + end + end + + unless @local + case format + when "yaml": + trans = Base64.encode64(YAML::dump(trans)) + else + raise XMLRPC::FaultException.new( + 1, "Unavailable config format %s" % format + ) + end + end + + return trans + end + + # Create a new fileserving module. + def initialize(hash = {}) + if hash[:Local] + @local = hash[:Local] + else + @local = false + end + end + + # List all of the elements of a given type. + def list(type, ignore = [], base = nil, format = "yaml", client = nil, clientip = nil) + @local = true unless client + typeklass = nil + unless typeklass = Puppet.type(type) + raise Puppet::Error, "Puppet type %s is unsupported" % type + end + + # They can pass in false + ignore ||= [] + ignore = [ignore] unless ignore.is_a? Array + bucket = Puppet::TransBucket.new + bucket.type = typeklass.name + + typeklass.list.each do |obj| + next if ignore.include? obj.name + + object = Puppet::TransObject.new(obj.name, typeklass.name) + bucket << object + end + + unless @local + case format + when "yaml": + begin + bucket = Base64.encode64(YAML::dump(bucket)) + rescue => detail + Puppet.err detail + raise XMLRPC::FaultException.new( + 1, detail.to_s + ) + end + else + raise XMLRPC::FaultException.new( + 1, "Unavailable config format %s" % format + ) + end + end + + return bucket + end + + private + + def authcheck(file, mount, client, clientip) + unless mount.allowed?(client, clientip) + mount.warning "%s cannot access %s" % + [client, file] + raise Puppet::AuthorizationError, "Cannot access %s" % mount + end + end + + # Deal with ignore parameters. + def handleignore(children, path, ignore) + ignore.each { |ignore| + Dir.glob(File.join(path,ignore), File::FNM_DOTMATCH) { |match| + children.delete(File.basename(match)) + } + } + return children + end + + def to_s + "resource" + end + end +end + +# $Id$ diff --git a/lib/puppet/network/server/rights.rb b/lib/puppet/network/server/rights.rb new file mode 100755 index 000000000..11da3b705 --- /dev/null +++ b/lib/puppet/network/server/rights.rb @@ -0,0 +1,74 @@ +require 'ipaddr' +require 'puppet/network/server/authstore' + +# Define a set of rights and who has access to them. +class Puppet::Network::Rights < Hash + # We basically just proxy directly to our rights. Each Right stores + # its own auth abilities. + [:allow, :allowed?, :deny].each do |method| + define_method(method) do |name, *args| + name = name.intern if name.is_a? String + + if obj = right(name) + obj.send(method, *args) + else + raise ArgumentError, "Unknown right '%s'" % name + end + end + end + + def [](name) + name = name.intern if name.is_a? String + super(name) + end + + # Define a new right to which access can be provided. + def newright(name) + name = name.intern if name.is_a? String + shortname = Right.shortname(name) + if self.include? name + raise ArgumentError, "Right '%s' is already defined" % name + else + self[name] = Right.new(name, shortname) + end + end + + private + + # Retrieve a right by name. + def right(name) + name = name.intern if name.is_a? String + self[name] + end + + # A right. + class Right < Puppet::Network::AuthStore + attr_accessor :name, :shortname + + Puppet::Util.logmethods(self, true) + + def self.shortname(name) + name.to_s[0..0] + end + + def initialize(name, shortname = nil) + @name = name + @shortname = shortname + unless @shortname + @shortname = Right.shortname(name) + end + super() + end + + def to_s + "access[%s]" % @name + end + + # There's no real check to do at this point + def valid? + true + end + end +end + +# $Id$ diff --git a/lib/puppet/server/runner.rb b/lib/puppet/network/server/runner.rb index 46fd7a7ae..c0ec8fb9d 100755 --- a/lib/puppet/server/runner.rb +++ b/lib/puppet/network/server/runner.rb @@ -1,7 +1,5 @@ -module Puppet -class Server - class MissingMasterError < RuntimeError # Cannot find the master client - end +class Puppet::Network::Server + class MissingMasterError < RuntimeError; end # Cannot find the master client # A simple server for triggering a new run on a Puppet client. class Runner < Handler @interface = XMLRPC::Service::Interface.new("puppetrunner") { |iface| @@ -12,7 +10,7 @@ class Server # tags and whether to ignore schedules def run(tags = nil, ignoreschedules = false, fg = true, client = nil, clientip = nil) # We need to retrieve the client - master = Puppet::Client::MasterClient.instance + master = Puppet::Network::Client::MasterClient.instance unless master raise MissingMasterError, "Could not find the master client" @@ -59,6 +57,5 @@ class Server end end end -end # $Id$ diff --git a/lib/puppet/server/servlet.rb b/lib/puppet/network/server/servlet.rb index 81219ef44..0a7253eff 100644 --- a/lib/puppet/server/servlet.rb +++ b/lib/puppet/network/server/servlet.rb @@ -1,7 +1,6 @@ require 'xmlrpc/server' -module Puppet -class Server +class Puppet::Network::Server class ServletError < RuntimeError; end class Servlet < XMLRPC::WEBrickServlet ERR_UNAUTHORIZED = 30 @@ -127,7 +126,7 @@ class Server obj.call(*args) rescue XMLRPC::FaultException raise - rescue Puppet::Server::AuthorizationError => detail + rescue Puppet::AuthorizationError => detail #Puppet.warning obj.inspect #Puppet.warning args.inspect Puppet.err "Permission denied: %s" % detail.to_s @@ -274,4 +273,5 @@ class Server end end end -end + +# $Id$ diff --git a/lib/puppet/reports/log.rb b/lib/puppet/reports/log.rb index 614a07c7a..c33bf0a67 100644 --- a/lib/puppet/reports/log.rb +++ b/lib/puppet/reports/log.rb @@ -1,6 +1,6 @@ require 'puppet' -Puppet::Server::Report.newreport(:log) do +Puppet::Network::Server::Report.newreport(:log) do desc "Send all received logs to the local log destinations." def process diff --git a/lib/puppet/reports/rrdgraph.rb b/lib/puppet/reports/rrdgraph.rb index ef353a1b9..0fbe6e5ca 100644 --- a/lib/puppet/reports/rrdgraph.rb +++ b/lib/puppet/reports/rrdgraph.rb @@ -1,6 +1,6 @@ require 'puppet' -Puppet::Server::Report.newreport(:rrdgraph) do +Puppet::Network::Server::Report.newreport(:rrdgraph) do desc "Graph all available data about hosts using the RRD library. You must have the RRD binary library installed to use this report, which you can get from [Tobias Oetiker's site](http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/pub/contrib/). diff --git a/lib/puppet/reports/store.rb b/lib/puppet/reports/store.rb index 23bbc037e..ed4f08a9e 100644 --- a/lib/puppet/reports/store.rb +++ b/lib/puppet/reports/store.rb @@ -1,6 +1,6 @@ require 'puppet' -Puppet::Server::Report.newreport(:store, :useyaml => true) do +Puppet::Network::Server::Report.newreport(:store, :useyaml => true) do Puppet.config.use(:reporting) desc "Store the yaml report on disk. Each host sends its report as a YAML dump diff --git a/lib/puppet/reports/tagmail.rb b/lib/puppet/reports/tagmail.rb index fef01bb39..238de4538 100644 --- a/lib/puppet/reports/tagmail.rb +++ b/lib/puppet/reports/tagmail.rb @@ -14,7 +14,7 @@ Puppet.config.setdefaults(:reporting, require 'net/smtp' -Puppet::Server::Report.newreport(:tagmail) do +Puppet::Network::Server::Report.newreport(:tagmail) do desc "This report sends specific log messages to specific email addresses based on the tags in the log messages. See the [tag documentation](/trac/puppet/wiki/UsingTags) for more information diff --git a/lib/puppet/server/authconfig.rb b/lib/puppet/server/authconfig.rb deleted file mode 100644 index d43371a77..000000000 --- a/lib/puppet/server/authconfig.rb +++ /dev/null @@ -1,177 +0,0 @@ -require 'puppet/util/loadedfile' -require 'puppet/server/rights' - -module Puppet -class Server - -class ConfigurationError < Puppet::Error; end - -class AuthConfig < Puppet::Util::LoadedFile - Puppet.config.setdefaults(:puppet, - :authconfig => [ "$confdir/namespaceauth.conf", - "The configuration file that defines the rights to the different - namespaces and methods. This can be used as a coarse-grained - authorization system for both ``puppetd`` and ``puppetmasterd``." - ] - ) - - # Just proxy the setting methods to our rights stuff - [:allow, :deny].each do |method| - define_method(method) do |*args| - @rights.send(method, *args) - end - end - - # Here we add a little bit of semantics. They can set auth on a whole namespace - # or on just a single method in the namespace. - def allowed?(name, host, ip) - namespace, method = name.to_s.split(".") - unless namespace and method - raise ArgumentError, "Invalid method name %s" % name - end - - name = name.intern if name.is_a? String - namespace = namespace.intern - method = method.intern - - read() - - if @rights.include?(name) - return @rights[name].allowed?(host, ip) - elsif @rights.include?(namespace) - return @rights[namespace].allowed?(host, ip) - else - return false - end - end - - # Does the file exist? Puppetmasterd does not require it, but - # puppetd does. - def exists? - FileTest.exists?(@file) - end - - def initialize(file = nil, parsenow = true) - @file ||= Puppet[:authconfig] - - unless @file - raise Puppet::DevError, "No authconfig file defined" - end - return unless self.exists? - super(@file) - @rights = Rights.new - @configstamp = @configstatted = nil - @configtimeout = 60 - - if parsenow - read() - end - end - - # Read the configuration file. - def read - return unless FileTest.exists?(@file) - - if @configstamp - if @configtimeout and @configstatted - if Time.now - @configstatted > @configtimeout - @configstatted = Time.now - tmp = File.stat(@file).ctime - - if tmp == @configstamp - return - else - Puppet.notice "%s vs %s" % [tmp, @configstamp] - end - else - return - end - else - Puppet.notice "%s and %s" % [@configtimeout, @configstatted] - end - end - - parse() - - @configstamp = File.stat(@file).ctime - @configstatted = Time.now - end - - private - - def parse - newrights = Puppet::Server::Rights.new - begin - File.open(@file) { |f| - right = nil - count = 1 - f.each { |line| - case line - when /^\s*#/: next # skip comments - when /^\s*$/: next # skip blank lines - when /\[([\w.]+)\]/: # "namespace" or "namespace.method" - name = $1 - if newrights.include?(name) - raise FileServerError, "%s is already set at %s" % - [newrights[name], name] - end - newrights.newright(name) - right = newrights[name] - when /^\s*(\w+)\s+(.+)$/: - var = $1 - value = $2 - case var - when "allow": - value.split(/\s*,\s*/).each { |val| - begin - right.info "allowing %s access" % val - right.allow(val) - rescue AuthStoreError => detail - raise ConfigurationError, "%s at line %s of %s" % - [detail.to_s, count, @config] - end - } - when "deny": - value.split(/\s*,\s*/).each { |val| - begin - right.info "denying %s access" % val - right.deny(val) - rescue AuthStoreError => detail - raise ConfigurationError, "%s at line %s of %s" % - [detail.to_s, count, @config] - end - } - else - raise ConfigurationError, - "Invalid argument '%s' at line %s" % [var, count] - end - else - raise ConfigurationError, "Invalid line %s: %s" % [count, line] - end - count += 1 - } - } - rescue Errno::EACCES => detail - Puppet.err "Configuration error: Cannot read %s; cannot serve" % @file - #raise Puppet::Error, "Cannot read %s" % @config - rescue Errno::ENOENT => detail - Puppet.err "Configuration error: '%s' does not exit; cannot serve" % - @file - #raise Puppet::Error, "%s does not exit" % @config - #rescue FileServerError => detail - # Puppet.err "FileServer error: %s" % detail - end - - # Verify each of the rights are valid. - # We let the check raise an error, so that it can raise an error - # pointing to the specific problem. - newrights.each { |name, right| - right.valid? - } - @rights = newrights - end -end -end -end - -# $Id$ diff --git a/lib/puppet/server/resource.rb b/lib/puppet/server/resource.rb deleted file mode 100755 index d2bad52f3..000000000 --- a/lib/puppet/server/resource.rb +++ /dev/null @@ -1,191 +0,0 @@ -require 'puppet' -require 'puppet/server' - -module Puppet - -# Serve Puppet elements. Useful for querying, copying, and, um, other stuff. -class Server::Resource < Server::Handler - attr_accessor :local - - @interface = XMLRPC::Service::Interface.new("resource") { |iface| - iface.add_method("string apply(string, string)") - iface.add_method("string describe(string, string, array, array)") - iface.add_method("string list(string, array, string)") - } - - # Apply a TransBucket as a transaction. - def apply(bucket, format = "yaml", client = nil, clientip = nil) - unless @local - begin - case format - when "yaml": - bucket = YAML::load(Base64.decode64(bucket)) - else - raise Puppet::Error, "Unsupported format '%s'" % format - end - rescue => detail - raise Puppet::Error, "Could not load YAML TransBucket: %s" % detail - end - end - - component = bucket.to_type - - # Create a client, but specify the remote machine as the server - # because the class requires it, even though it's unused - client = Puppet::Client::MasterClient.new(:Server => client||"localhost") - - # Set the objects - client.objects = component - - # And then apply the configuration. This way we're reusing all - # the code in there. It should probably just be separated out, though. - transaction = client.apply - - # And then clean up - component.remove - - # It'd be nice to return some kind of report, but... at this point - # we have no such facility. - return "success" - end - - # Describe a given object. This returns the 'is' values for every property - # available on the object type. - def describe(type, name, retrieve = nil, ignore = [], format = "yaml", client = nil, clientip = nil) - Puppet.info "Describing %s[%s]" % [type.to_s.capitalize, name] - @local = true unless client - typeklass = nil - unless typeklass = Puppet.type(type) - raise Puppet::Error, "Puppet type %s is unsupported" % type - end - - obj = nil - - retrieve ||= :all - ignore ||= [] - - if obj = typeklass[name] - obj[:check] = retrieve - else - begin - obj = typeklass.create(:name => name, :check => retrieve) - rescue Puppet::Error => detail - raise Puppet::Error, "%s[%s] could not be created: %s" % - [type, name, detail] - end - end - - unless obj - raise XMLRPC::FaultException.new( - 1, "Could not create %s[%s]" % [type, name] - ) - end - - trans = obj.to_trans - - # Now get rid of any attributes they specifically don't want - ignore.each do |st| - if trans.include? st - trans.delete(st) - end - end - - # And get rid of any attributes that are nil - trans.each do |attr, value| - if value.nil? - trans.delete(attr) - end - end - - unless @local - case format - when "yaml": - trans = Base64.encode64(YAML::dump(trans)) - else - raise XMLRPC::FaultException.new( - 1, "Unavailable config format %s" % format - ) - end - end - - return trans - end - - # Create a new fileserving module. - def initialize(hash = {}) - if hash[:Local] - @local = hash[:Local] - else - @local = false - end - end - - # List all of the elements of a given type. - def list(type, ignore = [], base = nil, format = "yaml", client = nil, clientip = nil) - @local = true unless client - typeklass = nil - unless typeklass = Puppet.type(type) - raise Puppet::Error, "Puppet type %s is unsupported" % type - end - - # They can pass in false - ignore ||= [] - ignore = [ignore] unless ignore.is_a? Array - bucket = TransBucket.new - bucket.type = typeklass.name - - typeklass.list.each do |obj| - next if ignore.include? obj.name - - object = TransObject.new(obj.name, typeklass.name) - bucket << object - end - - unless @local - case format - when "yaml": - begin - bucket = Base64.encode64(YAML::dump(bucket)) - rescue => detail - Puppet.err detail - raise XMLRPC::FaultException.new( - 1, detail.to_s - ) - end - else - raise XMLRPC::FaultException.new( - 1, "Unavailable config format %s" % format - ) - end - end - - return bucket - end - - private - - def authcheck(file, mount, client, clientip) - unless mount.allowed?(client, clientip) - mount.warning "%s cannot access %s" % - [client, file] - raise Puppet::Server::AuthorizationError, "Cannot access %s" % mount - end - end - - # Deal with ignore parameters. - def handleignore(children, path, ignore) - ignore.each { |ignore| - Dir.glob(File.join(path,ignore), File::FNM_DOTMATCH) { |match| - children.delete(File.basename(match)) - } - } - return children - end - - def to_s - "resource" - end -end -end - -# $Id$ diff --git a/lib/puppet/server/rights.rb b/lib/puppet/server/rights.rb deleted file mode 100755 index 0ed12a122..000000000 --- a/lib/puppet/server/rights.rb +++ /dev/null @@ -1,78 +0,0 @@ -require 'ipaddr' -require 'puppet/server/authstore' - -module Puppet -class Server - # Define a set of rights and who has access to them. - class Rights < Hash - # We basically just proxy directly to our rights. Each Right stores - # its own auth abilities. - [:allow, :allowed?, :deny].each do |method| - define_method(method) do |name, *args| - name = name.intern if name.is_a? String - - if obj = right(name) - obj.send(method, *args) - else - raise ArgumentError, "Unknown right '%s'" % name - end - end - end - - def [](name) - name = name.intern if name.is_a? String - super(name) - end - - # Define a new right to which access can be provided. - def newright(name) - name = name.intern if name.is_a? String - shortname = Right.shortname(name) - if self.include? name - raise ArgumentError, "Right '%s' is already defined" % name - else - self[name] = Right.new(name, shortname) - end - end - - private - - # Retrieve a right by name. - def right(name) - name = name.intern if name.is_a? String - self[name] - end - - # A right. - class Right < AuthStore - attr_accessor :name, :shortname - - Puppet::Util.logmethods(self, true) - - def self.shortname(name) - name.to_s[0..0] - end - - def initialize(name, shortname = nil) - @name = name - @shortname = shortname - unless @shortname - @shortname = Right.shortname(name) - end - super() - end - - def to_s - "access[%s]" % @name - end - - # There's no real check to do at this point - def valid? - true - end - end - end -end -end -# -# $Id$ diff --git a/lib/puppet/type/pfile.rb b/lib/puppet/type/pfile.rb index 89e94d140..ad21c5c55 100644 --- a/lib/puppet/type/pfile.rb +++ b/lib/puppet/type/pfile.rb @@ -4,7 +4,7 @@ require 'etc' require 'uri' require 'fileutils' require 'puppet/type/property' -require 'puppet/server/fileserver' +require 'puppet/network/server/fileserver' module Puppet newtype(:file) do @@ -101,7 +101,7 @@ module Puppet @parent.bucket = value value end - when Puppet::Client::Dipper: value.name + when Puppet::Network::Client::Dipper: value.name else self.fail "Invalid backup type %s" % value.inspect @@ -300,7 +300,7 @@ module Puppet # This sets the @value on :backup, too self.bucket = obj elsif bucket == "puppet" - obj = Puppet::Client::Dipper.new( + obj = Puppet::Network::Client::Dipper.new( :Path => Puppet[:clientbucketdir] ) self.bucket = obj @@ -311,7 +311,7 @@ module Puppet else self.fail "Could not find filebucket %s" % bucket end - when Puppet::Client::Dipper: # things are hunky-dorey + when Puppet::Network::Client::Dipper: # things are hunky-dorey else self.fail "Invalid bucket type %s" % bucket.class end @@ -346,7 +346,7 @@ module Puppet else backup = self.bucket || self[:backup] case backup - when Puppet::Client::Dipper: + when Puppet::Network::Client::Dipper: notice "Recursively backing up to filebucket" require 'find' Find.find(self[:path]) do |f| @@ -385,7 +385,7 @@ module Puppet when "file": backup = self.bucket || self[:backup] case backup - when Puppet::Client::Dipper: + when Puppet::Network::Client::Dipper: sum = backup.backup(file) self.info "Filebucketed to %s with sum %s" % [backup.name, sum] @@ -957,7 +957,7 @@ module Puppet case uri.scheme when "file": unless defined? @@localfileserver - @@localfileserver = Puppet::Server::FileServer.new( + @@localfileserver = Puppet::Network::Server::FileServer.new( :Local => true, :Mount => { "/" => "localhost" }, :Config => false @@ -972,9 +972,9 @@ module Puppet args[:Port] = uri.port end # FIXME We should cache a copy of this server - #sourceobj.server = Puppet::NetworkClient.new(args) + #sourceobj.server = Puppet::Network::NetworkClient.new(args) unless @clients.include?(source) - @clients[source] = Puppet::Client::FileClient.new(args) + @clients[source] = Puppet::Network::Client::FileClient.new(args) end sourceobj.server = @clients[source] diff --git a/lib/puppet/type/pfile/source.rb b/lib/puppet/type/pfile/source.rb index d06366a79..8416107a2 100755 --- a/lib/puppet/type/pfile/source.rb +++ b/lib/puppet/type/pfile/source.rb @@ -1,4 +1,4 @@ -require 'puppet/server/fileserver' +require 'puppet/network/server/fileserver' module Puppet # Copy files from a local or remote source. This state *only* does any work @@ -7,7 +7,7 @@ module Puppet # this state, during retrieval, modifies the appropriate other states # so that things get taken care of appropriately. Puppet.type(:file).newproperty(:source) do - PINPARAMS = Puppet::Server::FileServer::CHECKPARAMS + PINPARAMS = Puppet::Network::Server::FileServer::CHECKPARAMS attr_accessor :source, :local desc "Copy a file over the current file. Uses ``checksum`` to @@ -86,7 +86,7 @@ module Puppet begin desc = server.describe(path, @parent[:links]) - rescue NetworkClientError => detail + rescue Puppet::Network::NetworkClientError => detail self.err "Could not describe %s: %s" % [path, detail] return nil @@ -231,7 +231,7 @@ module Puppet begin contents = sourceobj.server.retrieve(path, @parent[:links]) - rescue NetworkClientError => detail + rescue Puppet::Network::NetworkClientError => detail self.err "Could not retrieve %s: %s" % [path, detail] return nil diff --git a/lib/puppet/type/pfilebucket.rb b/lib/puppet/type/pfilebucket.rb index 6f9da3112..5ec7e790f 100755 --- a/lib/puppet/type/pfilebucket.rb +++ b/lib/puppet/type/pfilebucket.rb @@ -1,4 +1,4 @@ -require 'puppet/server/filebucket' +require 'puppet/network/server/filebucket' module Puppet newtype(:filebucket) do @@ -86,7 +86,7 @@ module Puppet def mkbucket if self[:server] begin - @bucket = Puppet::Client::Dipper.new( + @bucket = Puppet::Network::Client::Dipper.new( :Server => self[:server], :Port => self[:port] ) @@ -97,7 +97,7 @@ module Puppet end else begin - @bucket = Puppet::Client::Dipper.new( + @bucket = Puppet::Network::Client::Dipper.new( :Path => self[:path] ) rescue => detail diff --git a/lib/puppet/type/tidy.rb b/lib/puppet/type/tidy.rb index bc622f682..2827c1be3 100755 --- a/lib/puppet/type/tidy.rb +++ b/lib/puppet/type/tidy.rb @@ -270,7 +270,7 @@ module Puppet end # only allow backing up into filebuckets - unless self[:backup].is_a? Puppet::Client::Dipper + unless self[:backup].is_a? Puppet::Network::Client::Dipper self[:backup] = false end end diff --git a/lib/puppet/util/log.rb b/lib/puppet/util/log.rb index dd7544dae..5ee60b959 100644 --- a/lib/puppet/util/log.rb +++ b/lib/puppet/util/log.rb @@ -306,7 +306,7 @@ class Puppet::Util::Log @name = host - @driver = Puppet::Client::LogClient.new(args) + @driver = Puppet::Network::Client::LogClient.new(args) end def handle(msg) diff --git a/test/client/client.rb b/test/client/client.rb index f390c8d67..f9964f096 100755 --- a/test/client/client.rb +++ b/test/client/client.rb @@ -2,10 +2,8 @@ $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/ -require 'puppet' -require 'puppet/client' -require 'puppet/server' require 'puppettest' +require 'puppet/network/client' class TestClient < Test::Unit::TestCase include PuppetTest::ServerTest @@ -20,7 +18,7 @@ class TestClient < Test::Unit::TestCase # create our client client = nil assert_nothing_raised { - client = Puppet::Client::MasterClient.new( + client = Puppet::Network::Client::MasterClient.new( :Server => "localhost", :Port => @@port ) @@ -63,7 +61,7 @@ class TestClient < Test::Unit::TestCase # create a pair of clients with no certs nonemaster = nil assert_nothing_raised { - nonemaster = Puppet::Client::MasterClient.new( + nonemaster = Puppet::Network::Client::MasterClient.new( :Server => "localhost", :Port => @@port ) @@ -71,7 +69,7 @@ class TestClient < Test::Unit::TestCase nonebucket = nil assert_nothing_raised { - nonebucket = Puppet::Client::Dipper.new( + nonebucket = Puppet::Network::Client::Dipper.new( :Server => "localhost", :Port => @@port ) @@ -81,7 +79,7 @@ class TestClient < Test::Unit::TestCase # make a new ssldir for it ca = nil assert_nothing_raised { - ca = Puppet::Client::CA.new( + ca = Puppet::Network::Client::CA.new( :CA => true, :Local => true ) ca.requestcert @@ -90,7 +88,7 @@ class TestClient < Test::Unit::TestCase # initialize our clients with this set of certs certmaster = nil assert_nothing_raised { - certmaster = Puppet::Client::MasterClient.new( + certmaster = Puppet::Network::Client::MasterClient.new( :Server => "localhost", :Port => @@port ) @@ -98,7 +96,7 @@ class TestClient < Test::Unit::TestCase certbucket = nil assert_nothing_raised { - certbucket = Puppet::Client::Dipper.new( + certbucket = Puppet::Network::Client::Dipper.new( :Server => "localhost", :Port => @@port ) @@ -124,11 +122,11 @@ class TestClient < Test::Unit::TestCase certmaster.getconfig } - assert_raise(Puppet::NetworkClientError, + assert_raise(Puppet::Network::NetworkClientError, "Client was allowed to call backup with no certs") { nonebucket.backup("/etc/passwd") } - assert_raise(Puppet::NetworkClientError, + assert_raise(Puppet::Network::NetworkClientError, "Client was allowed to call backup with untrusted certs") { certbucket.backup("/etc/passwd") } @@ -143,14 +141,14 @@ class TestClient < Test::Unit::TestCase master = client = nil assert_nothing_raised() { - master = Puppet::Server::Master.new( + master = Puppet::Network::Server::Master.new( :Manifest => manifest, :UseNodes => false, :Local => false ) } assert_nothing_raised() { - client = Puppet::Client::MasterClient.new( + client = Puppet::Network::Client::MasterClient.new( :Master => master ) } @@ -172,7 +170,7 @@ class TestClient < Test::Unit::TestCase def test_setpidfile FileUtils.mkdir_p(Puppet[:rundir]) $clientrun = false - newclass = Class.new(Puppet::Client) do + newclass = Class.new(Puppet::Network::Client) do def run $clientrun = true end diff --git a/test/client/master.rb b/test/client/master.rb index ccd808bbd..b03a3ffd0 100755 --- a/test/client/master.rb +++ b/test/client/master.rb @@ -2,9 +2,6 @@ $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/ -require 'puppet' -require 'puppet/client' -require 'puppet/server' require 'puppettest' class TestMasterClient < Test::Unit::TestCase @@ -49,7 +46,7 @@ class TestMasterClient < Test::Unit::TestCase # create our master assert_nothing_raised() { # this is the default server setup - master = Puppet::Server::Master.new( + master = Puppet::Network::Server::Master.new( :Manifest => file, :UseNodes => false, :Local => true @@ -62,7 +59,7 @@ class TestMasterClient < Test::Unit::TestCase master ||= mkmaster() client = nil assert_nothing_raised() { - client = Puppet::Client::MasterClient.new( + client = Puppet::Network::Client::MasterClient.new( :Master => master ) } @@ -71,8 +68,8 @@ class TestMasterClient < Test::Unit::TestCase end def mk_fake_client - server = Puppet::Server::Master.new :Code => "" - master = Puppet::Client::MasterClient.new :Server => server, :Local => true + server = Puppet::Network::Server::Master.new :Code => "" + master = Puppet::Network::Client::MasterClient.new :Server => server, :Local => true # Now create some objects objects = FakeComponent.new @@ -211,7 +208,7 @@ class TestMasterClient < Test::Unit::TestCase def test_clientversionfact facts = nil assert_nothing_raised { - facts = Puppet::Client::MasterClient.facts + facts = Puppet::Network::Client::MasterClient.facts } assert_equal(Puppet.version.to_s, facts["clientversion"]) @@ -248,7 +245,7 @@ class TestMasterClient < Test::Unit::TestCase files = [] assert_nothing_raised do - files = Puppet::Client::MasterClient.download(:dest => dest, :source => source, :name => "testing") + files = Puppet::Network::Client::MasterClient.download(:dest => dest, :source => source, :name => "testing") end assert(FileTest.directory?(dest), "dest dir was not created") @@ -272,7 +269,7 @@ end end assert_nothing_raised { - Puppet::Client::MasterClient.getplugins + Puppet::Network::Client::MasterClient.getplugins } destfile = File.join(Puppet[:plugindest], "myplugin.rb") @@ -300,7 +297,7 @@ end end assert_nothing_raised { - Puppet::Client::MasterClient.getplugins + Puppet::Network::Client::MasterClient.getplugins } destfile = File.join(Puppet[:pluginpath], "myplugin.rb") @@ -320,7 +317,7 @@ end # Now try it again, to make sure we don't have any objects lying around assert_nothing_raised { - Puppet::Client::MasterClient.getplugins + Puppet::Network::Client::MasterClient.getplugins } end @@ -338,7 +335,7 @@ end end assert_nothing_raised { - Puppet::Client::MasterClient.getfacts + Puppet::Network::Client::MasterClient.getfacts } destfile = File.join(Puppet[:factdest], "myfact.rb") @@ -359,7 +356,7 @@ end end assert_nothing_raised { - Puppet::Client::MasterClient.getfacts + Puppet::Network::Client::MasterClient.getfacts } assert_equal("funtest", Facter.value(:myfact), @@ -369,7 +366,7 @@ end # Now run it again and make sure the fact still loads assert_nothing_raised { - Puppet::Client::MasterClient.getfacts + Puppet::Network::Client::MasterClient.getfacts } assert_equal("funtest", Facter.value(:myfact), @@ -403,7 +400,7 @@ end end assert_nothing_raised { - Puppet::Client::MasterClient.loadfacts + Puppet::Network::Client::MasterClient.loadfacts } names.each do |name| @@ -432,7 +429,7 @@ end assert_nothing_raised { - Puppet::Client::MasterClient.download(:dest => dest, :source => dir, + Puppet::Network::Client::MasterClient.download(:dest => dest, :source => dir, :name => "testing" ) {} } @@ -449,7 +446,7 @@ end def test_facts facts = nil assert_nothing_raised do - facts = Puppet::Client::MasterClient.facts + facts = Puppet::Network::Client::MasterClient.facts end Facter.to_hash.each do |fact, value| assert_equal(facts[fact.downcase], value, "%s is not equal" % fact.inspect) diff --git a/test/client/networkclient.rb b/test/client/networkclient.rb index f4ef4c554..f7920169f 100755 --- a/test/client/networkclient.rb +++ b/test/client/networkclient.rb @@ -2,14 +2,12 @@ $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/ -require 'puppet' -require 'puppet/client' -require 'puppet/server' require 'puppettest' +require 'puppet/network/client' class TestClient < Test::Unit::TestCase def test_set_backtrace - error = Puppet::NetworkClientError.new("An error") + error = Puppet::Network::NetworkClientError.new("An error") assert_nothing_raised do error.set_backtrace ["caller"] end diff --git a/test/client/resource.rb b/test/client/resource.rb index 51fe7ba7e..357a0afbe 100755 --- a/test/client/resource.rb +++ b/test/client/resource.rb @@ -2,12 +2,8 @@ $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/ -require 'puppet' -require 'puppet/client/resource' -require 'puppet/server' require 'puppettest' - -# $Id$ +require 'puppet/network/client/resource' class TestResourceClient < Test::Unit::TestCase include PuppetTest::ServerTest @@ -24,7 +20,7 @@ class TestResourceClient < Test::Unit::TestCase def mkclient client = nil assert_nothing_raised { - client = Puppet::Client::Resource.new(:Server => "localhost", + client = Puppet::Network::Client::Resource.new(:Server => "localhost", :Port => @@port) } @@ -94,3 +90,5 @@ class TestResourceClient < Test::Unit::TestCase end end end + +# $Id$ diff --git a/test/executables/puppetbin.rb b/test/executables/puppetbin.rb index 1752848a8..80ac8c4e7 100755 --- a/test/executables/puppetbin.rb +++ b/test/executables/puppetbin.rb @@ -3,7 +3,7 @@ $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/ require 'puppet' -require 'puppet/server' +require 'puppet/network/server' require 'puppet/sslcertificates' require 'puppettest' diff --git a/test/executables/puppetca.rb b/test/executables/puppetca.rb index 92633c01b..028950762 100755 --- a/test/executables/puppetca.rb +++ b/test/executables/puppetca.rb @@ -3,7 +3,7 @@ $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/ require 'puppet' -require 'puppet/server' +require 'puppet/network/server' require 'puppet/sslcertificates' require 'puppettest' @@ -16,7 +16,7 @@ class TestPuppetCA < Test::Unit::TestCase end def mkca - Puppet::Server::CA.new() + Puppet::Network::Server::CA.new() end def mkcert(hostname) diff --git a/test/executables/puppetd.rb b/test/executables/puppetd.rb index 9ae94b7c0..f8cb89ff6 100755 --- a/test/executables/puppetd.rb +++ b/test/executables/puppetd.rb @@ -3,7 +3,7 @@ $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/ require 'puppet' -require 'puppet/server' +require 'puppet/network/server' require 'puppettest' require 'socket' require 'facter' @@ -15,7 +15,7 @@ class TestPuppetDExe < Test::Unit::TestCase file = startmasterd # create the client - client = Puppet::Client::MasterClient.new(:Server => "localhost", :Port => @@port) + client = Puppet::Network::Client::MasterClient.new(:Server => "localhost", :Port => @@port) # make a new fqdn fqdn = client.fqdn.sub(/^\w+\./, "testing.") diff --git a/test/executables/puppetmasterd.rb b/test/executables/puppetmasterd.rb index 6fc98137b..4563a0216 100755 --- a/test/executables/puppetmasterd.rb +++ b/test/executables/puppetmasterd.rb @@ -3,7 +3,7 @@ $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/ require 'puppet' -require 'puppet/server' +require 'puppet/network/server' require 'puppet/daemon' require 'puppettest' require 'socket' @@ -35,7 +35,7 @@ class TestPuppetMasterD < Test::Unit::TestCase client = nil assert_nothing_raised() { - client = Puppet::Client::StatusClient.new( + client = Puppet::Network::Client::StatusClient.new( :Server => "localhost", :Port => @@port ) @@ -65,7 +65,7 @@ class TestPuppetMasterD < Test::Unit::TestCase # this client shoulduse the same certs assert_nothing_raised() { - client = Puppet::Client::MasterClient.new( + client = Puppet::Network::Client::MasterClient.new( :Server => "localhost", :Port => @@port ) diff --git a/test/executables/puppetmodule.rb b/test/executables/puppetmodule.rb index c70f92fe9..83a20ec30 100755 --- a/test/executables/puppetmodule.rb +++ b/test/executables/puppetmodule.rb @@ -3,7 +3,7 @@ $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/ require 'puppet' -require 'puppet/server' +require 'puppet/network/server' require 'puppet/sslcertificates' require 'puppettest' diff --git a/test/language/ast.rb b/test/language/ast.rb index c3af6739e..2fdba555c 100755 --- a/test/language/ast.rb +++ b/test/language/ast.rb @@ -6,7 +6,7 @@ require 'puppet' require 'puppet/rails' require 'puppet/parser/interpreter' require 'puppet/parser/parser' -require 'puppet/client' +require 'puppet/network/client' require 'puppettest' require 'puppettest/resourcetesting' require 'puppettest/parsertesting' diff --git a/test/language/functions.rb b/test/language/functions.rb index edb7a3004..f565d0ded 100755 --- a/test/language/functions.rb +++ b/test/language/functions.rb @@ -5,7 +5,7 @@ $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/ require 'puppet' require 'puppet/parser/interpreter' require 'puppet/parser/parser' -require 'puppet/client' +require 'puppet/network/client' require 'puppettest' require 'puppettest/resourcetesting' diff --git a/test/language/interpreter.rb b/test/language/interpreter.rb index ab3b97210..b74b15734 100755 --- a/test/language/interpreter.rb +++ b/test/language/interpreter.rb @@ -7,7 +7,7 @@ require 'facter' require 'puppet' require 'puppet/parser/interpreter' require 'puppet/parser/parser' -require 'puppet/client' +require 'puppet/network/client' require 'puppet/rails' require 'puppettest' require 'puppettest/resourcetesting' diff --git a/test/language/scope.rb b/test/language/scope.rb index 05c5e524e..80f838c59 100755 --- a/test/language/scope.rb +++ b/test/language/scope.rb @@ -5,7 +5,7 @@ $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/ require 'puppet' require 'puppet/parser/interpreter' require 'puppet/parser/parser' -require 'puppet/client' +require 'puppet/network/client' require 'puppettest' require 'puppettest/parsertesting' require 'puppettest/resourcetesting' diff --git a/test/language/snippets.rb b/test/language/snippets.rb index 2438083b0..cdea03d3b 100755 --- a/test/language/snippets.rb +++ b/test/language/snippets.rb @@ -5,8 +5,8 @@ $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/ require 'puppet' require 'puppet/parser/interpreter' require 'puppet/parser/parser' -require 'puppet/client' -require 'puppet/server' +require 'puppet/network/client' +require 'puppet/network/server' require 'puppettest' class TestSnippets < Test::Unit::TestCase @@ -41,7 +41,7 @@ class TestSnippets < Test::Unit::TestCase args = { :Listen => false } - Puppet::Client.new(args) + Puppet::Network::Client.new(args) end def ast2scope(ast) @@ -492,11 +492,11 @@ class TestSnippets < Test::Unit::TestCase testname = ("test_" + mname).intern self.send(:define_method, testname) { # first parse the file - server = Puppet::Server::Master.new( + server = Puppet::Network::Server::Master.new( :Manifest => snippet(file), :Local => true ) - client = Puppet::Client::MasterClient.new( + client = Puppet::Network::Client::MasterClient.new( :Master => server, :Cache => false ) @@ -506,7 +506,7 @@ class TestSnippets < Test::Unit::TestCase client.getconfig() } - client = Puppet::Client::MasterClient.new( + client = Puppet::Network::Client::MasterClient.new( :Master => server, :Cache => false ) diff --git a/test/lib/puppettest/servertest.rb b/test/lib/puppettest/servertest.rb index 532256d74..416a37f44 100644 --- a/test/lib/puppettest/servertest.rb +++ b/test/lib/puppettest/servertest.rb @@ -45,7 +45,7 @@ module PuppetTest::ServerTest # then create the actual server server = nil assert_nothing_raised { - server = Puppet::Server.new( + server = Puppet::Network::Server.new( :Port => @@port, :Handlers => handlers ) diff --git a/test/other/puppet.rb b/test/other/puppet.rb index 885083a2b..c71b20bbc 100755 --- a/test/other/puppet.rb +++ b/test/other/puppet.rb @@ -11,7 +11,7 @@ class TestPuppetModule < Test::Unit::TestCase include SignalObserver def mkfakeclient - Class.new(Puppet::Client) do + Class.new(Puppet::Network::Client) do def initialize end diff --git a/test/other/report.rb b/test/other/report.rb index 8bd896d9a..62bda813c 100755 --- a/test/other/report.rb +++ b/test/other/report.rb @@ -74,7 +74,7 @@ class TestReports < Test::Unit::TestCase } assert_nothing_raised do - report.extend(Puppet::Server::Report.report(:store)) + report.extend(Puppet::Network::Server::Report.report(:store)) end yaml = YAML.dump(report) @@ -119,7 +119,7 @@ class TestReports < Test::Unit::TestCase report = trans.report assert_nothing_raised do - report.extend(Puppet::Server::Report.report(:rrdgraph)) + report.extend(Puppet::Network::Server::Report.report(:rrdgraph)) end assert_nothing_raised { @@ -154,7 +154,7 @@ class TestReports < Test::Unit::TestCase def test_tagmail_parsing report = Object.new - report.extend(Puppet::Server::Report.report(:tagmail)) + report.extend(Puppet::Network::Server::Report.report(:tagmail)) passers = File.join(datadir, "reports", "tagmail_passers.conf") assert(FileTest.exists?(passers), "no passers file %s" % passers) @@ -178,7 +178,7 @@ class TestReports < Test::Unit::TestCase def test_tagmail_parsing_results report = Object.new - report.extend(Puppet::Server::Report.report(:tagmail)) + report.extend(Puppet::Network::Server::Report.report(:tagmail)) # Now test a few specific lines to make sure we get the results we want { "tag: abuse@domain.com" => [%w{abuse@domain.com}, %w{tag}, []], @@ -206,7 +206,7 @@ class TestReports < Test::Unit::TestCase list = report.logs.collect { |l| l.to_report } - report.extend(Puppet::Server::Report.report(:tagmail)) + report.extend(Puppet::Network::Server::Report.report(:tagmail)) { [%w{abuse@domain.com}, %w{all}, []] => list, diff --git a/test/rails/host.rb b/test/rails/host.rb index 8958f7315..184d536d5 100755 --- a/test/rails/host.rb +++ b/test/rails/host.rb @@ -6,7 +6,7 @@ require 'puppet' require 'puppet/rails' require 'puppet/parser/interpreter' require 'puppet/parser/parser' -require 'puppet/client' +require 'puppet/network/client' require 'puppettest' require 'puppettest/parsertesting' require 'puppettest/resourcetesting' diff --git a/test/rails/rails.rb b/test/rails/rails.rb index 1342437bd..2803e07a8 100755 --- a/test/rails/rails.rb +++ b/test/rails/rails.rb @@ -6,7 +6,7 @@ require 'puppet' require 'puppet/rails' require 'puppet/parser/interpreter' require 'puppet/parser/parser' -require 'puppet/client' +require 'puppet/network/client' require 'puppettest' require 'puppettest/parsertesting' require 'puppettest/resourcetesting' diff --git a/test/ral/types/file.rb b/test/ral/types/file.rb index b69d6cd3d..f616aac4c 100755 --- a/test/ral/types/file.rb +++ b/test/ral/types/file.rb @@ -1850,7 +1850,7 @@ class TestFile < Test::Unit::TestCase bpath = tempfile bucket = Puppet::Type.type(:filebucket).create :name => "rtest", :path => bpath dipper = bucket.bucket - dipper = Puppet::Server::FileBucket.new( + dipper = Puppet::Network::Server::FileBucket.new( :Path => bpath ) assert(dipper, "did not receive bucket client") diff --git a/test/ral/types/filebucket.rb b/test/ral/types/filebucket.rb index 568a4b203..f32d7d7e1 100755 --- a/test/ral/types/filebucket.rb +++ b/test/ral/types/filebucket.rb @@ -70,7 +70,7 @@ class TestFileBucket < Test::Unit::TestCase bucket = Puppet.type(:filebucket).bucket(name) } - assert_instance_of(Puppet::Client::Dipper, bucket) + assert_instance_of(Puppet::Network::Client::Dipper, bucket) md5 = nil newpath = tempfile() diff --git a/test/ral/types/filesources.rb b/test/ral/types/filesources.rb index 1badfaa11..9c76e1c0d 100755 --- a/test/ral/types/filesources.rb +++ b/test/ral/types/filesources.rb @@ -119,7 +119,7 @@ class TestFileSources < Test::Unit::TestCase file[:links] = :manage # We can't manage links at this point - assert_raise(Puppet::FileServerError) do + assert_raise(Puppet::Network::Server::FileServerError) do property.describe(source) end @@ -536,7 +536,7 @@ class TestFileSources < Test::Unit::TestCase serverpid = nil assert_nothing_raised() { - server = Puppet::Server.new( + server = Puppet::Network::Server.new( :Handlers => { :CA => {}, # so that certs autogenerate :FileServer => { @@ -575,7 +575,7 @@ class TestFileSources < Test::Unit::TestCase serverpid = nil assert_nothing_raised() { - server = Puppet::Server.new( + server = Puppet::Network::Server.new( :Handlers => { :CA => {}, # so that certs autogenerate } @@ -626,7 +626,7 @@ class TestFileSources < Test::Unit::TestCase serverpid = nil assert_nothing_raised("Could not start on port %s" % @port) { - server = Puppet::Server.new( + server = Puppet::Network::Server.new( :Port => @port, :Handlers => { :CA => {}, # so that certs autogenerate @@ -794,7 +794,7 @@ class TestFileSources < Test::Unit::TestCase assert(FileTest.file?(dest), "Destination is not a file") # Now copy the links - #assert_raise(Puppet::FileServerError) { + #assert_raise(Puppet::Network::Server::FileServerError) { trans = nil assert_nothing_raised { file[:links] = :manage diff --git a/test/server/authconfig.rb b/test/server/authconfig.rb index 3944369c1..cc7d6cdfd 100755 --- a/test/server/authconfig.rb +++ b/test/server/authconfig.rb @@ -2,10 +2,10 @@ $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/ -require 'puppet' -require 'puppet/server/authconfig' require 'puppettest' +require 'puppet/network/server/authconfig' + class TestAuthConfig < Test::Unit::TestCase include PuppetTest @@ -31,7 +31,7 @@ class TestAuthConfig < Test::Unit::TestCase config = nil assert_nothing_raised { - config = Puppet::Server::AuthConfig.new(file) + config = Puppet::Network::AuthConfig.new(file) } assert_nothing_raised { diff --git a/test/server/authstore.rb b/test/server/authstore.rb index f591aa0c1..d9df9a441 100755 --- a/test/server/authstore.rb +++ b/test/server/authstore.rb @@ -2,16 +2,16 @@ $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/ -require 'puppet' -require 'puppet/server/authstore' require 'puppettest' +require 'puppet/network/server/authstore' + class TestAuthStore < Test::Unit::TestCase include PuppetTest def mkstore store = nil assert_nothing_raised { - store = Puppet::Server::AuthStore.new + store = Puppet::Network::AuthStore.new } return store @@ -53,7 +53,7 @@ class TestAuthStore < Test::Unit::TestCase inval$id }.each { |pat| - assert_raise(Puppet::Server::AuthStoreError, + assert_raise(Puppet::AuthStoreError, "name '%s' was allowed" % pat) { store.allow(pat) } @@ -81,14 +81,14 @@ class TestAuthStore < Test::Unit::TestCase assert(store.allowed?(name, "192.168.0.1"), "Host %s not allowed" % name) } - assert_raise(Puppet::Server::AuthStoreError) { + assert_raise(Puppet::AuthStoreError) { store.allow("domain.*.com") } assert(!store.allowed?("very.long.domain.name.com", "1.2.3.4"), "Long hostname allowed") - assert_raise(Puppet::Server::AuthStoreError) { + assert_raise(Puppet::AuthStoreError) { store.allow("domain.*.other.com") } end @@ -107,11 +107,11 @@ class TestAuthStore < Test::Unit::TestCase assert(store.allowed?("hosttest.com", ip), "IP %s not allowed" % ip) } - #assert_raise(Puppet::Server::AuthStoreError) { + #assert_raise(Puppet::AuthStoreError) { # store.allow("192.168.674.0") #} - assert_raise(Puppet::Server::AuthStoreError) { + assert_raise(Puppet::AuthStoreError) { store.allow("192.168.0") } end diff --git a/test/server/bucket.rb b/test/server/bucket.rb index c8c6411c9..938db748e 100755 --- a/test/server/bucket.rb +++ b/test/server/bucket.rb @@ -2,7 +2,6 @@ $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/ -require 'puppet' require 'puppettest' require 'base64' @@ -149,7 +148,7 @@ class TestBucket < Test::Unit::TestCase files = filelist() server = nil assert_nothing_raised { - server = Puppet::Server::FileBucket.new( + server = Puppet::Network::Server::FileBucket.new( :Bucket => @bucket ) } @@ -188,14 +187,14 @@ class TestBucket < Test::Unit::TestCase client = nil threads = [] assert_nothing_raised { - bucket = Puppet::Server::FileBucket.new( + bucket = Puppet::Network::Server::FileBucket.new( :Bucket => @bucket ) } #sleep(30) assert_nothing_raised { - client = Puppet::Client::Dipper.new( + client = Puppet::Network::Client::Dipper.new( :Bucket => bucket ) } @@ -219,7 +218,7 @@ class TestBucket < Test::Unit::TestCase pid = mkserver(:CA => {}, :FileBucket => { :Bucket => @bucket}) assert_nothing_raised { - client = Puppet::Client::Dipper.new( + client = Puppet::Network::Client::Dipper.new( :Server => "localhost", :Port => @@port ) @@ -236,7 +235,7 @@ class TestBucket < Test::Unit::TestCase def test_no_path_duplicates bucket = nil assert_nothing_raised { - bucket = Puppet::Server::FileBucket.new( + bucket = Puppet::Network::Server::FileBucket.new( :Bucket => @bucket ) } diff --git a/test/server/ca.rb b/test/server/ca.rb index 81c73fe56..e9cc89cde 100755 --- a/test/server/ca.rb +++ b/test/server/ca.rb @@ -2,11 +2,8 @@ $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/ -require 'puppet' -require 'puppet/server/ca' +require 'puppet/network/server/ca' require 'puppet/sslcertificates' -require 'openssl' -require 'puppettest' # $Id$ @@ -25,7 +22,7 @@ class TestCA < Test::Unit::TestCase # create our ca assert_nothing_raised { - ca = Puppet::Server::CA.new(:autosign => true) + ca = Puppet::Network::Server::CA.new(:autosign => true) } # create a cert with a fake name @@ -81,7 +78,7 @@ class TestCA < Test::Unit::TestCase # make our CA server assert_nothing_raised { - caserv = Puppet::Server::CA.new(:autosign => false) + caserv = Puppet::Network::Server::CA.new(:autosign => false) } # retrieve the actual ca object @@ -159,7 +156,7 @@ class TestCA < Test::Unit::TestCase caserv = nil assert_nothing_raised { - caserv = Puppet::Server::CA.new(:autosign => autosign) + caserv = Puppet::Network::Server::CA.new(:autosign => autosign) } # make sure we know what's going on @@ -173,7 +170,7 @@ class TestCA < Test::Unit::TestCase def test_nodefaultautosign caserv = nil assert_nothing_raised { - caserv = Puppet::Server::CA.new() + caserv = Puppet::Network::Server::CA.new() } # make sure we know what's going on @@ -188,7 +185,7 @@ class TestCA < Test::Unit::TestCase def test_caautosign server = nil assert_nothing_raised { - server = Puppet::Server.new( + server = Puppet::Network::Server.new( :Port => @@port, :Handlers => { :CA => {}, # so that certs autogenerate @@ -202,7 +199,7 @@ class TestCA < Test::Unit::TestCase def test_autosign_true_beats_file caserv = nil assert_nothing_raised { - caserv = Puppet::Server::CA.new() + caserv = Puppet::Network::Server::CA.new() } host = "hostname.domain.com" diff --git a/test/server/fileserver.rb b/test/server/fileserver.rb index 5e9c60ddc..25c72a5fb 100755 --- a/test/server/fileserver.rb +++ b/test/server/fileserver.rb @@ -2,9 +2,8 @@ $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/ -require 'puppet' -require 'puppet/server/fileserver' require 'puppettest' +require 'puppet/network/server/fileserver' class TestFileServer < Test::Unit::TestCase include PuppetTest @@ -19,7 +18,7 @@ class TestFileServer < Test::Unit::TestCase # Create a test file File.open(File.join(base, "file"), "w") { |f| f.puts "bazoo" } assert_nothing_raised { - mount = Puppet::Server::FileServer::Mount.new(name, base) + mount = Puppet::Network::Server::FileServer::Mount.new(name, base) } return mount @@ -73,25 +72,25 @@ class TestFileServer < Test::Unit::TestCase def test_namefailures server = nil assert_nothing_raised { - server = Puppet::Server::FileServer.new( + server = Puppet::Network::Server::FileServer.new( :Local => true, :Config => false ) } - assert_raise(Puppet::FileServerError) { + assert_raise(Puppet::Network::Server::FileServerError) { server.mount("/tmp", "invalid+name") } - assert_raise(Puppet::FileServerError) { + assert_raise(Puppet::Network::Server::FileServerError) { server.mount("/tmp", "invalid-name") } - assert_raise(Puppet::FileServerError) { + assert_raise(Puppet::Network::Server::FileServerError) { server.mount("/tmp", "invalid name") } - assert_raise(Puppet::FileServerError) { + assert_raise(Puppet::Network::Server::FileServerError) { server.mount("/tmp", "") } end @@ -102,11 +101,11 @@ class TestFileServer < Test::Unit::TestCase testdir, pattern, tmpfile = mktestdir() file = nil - checks = Puppet::Server::FileServer::CHECKPARAMS + checks = Puppet::Network::Server::FileServer::CHECKPARAMS # and make our fileserver assert_nothing_raised { - server = Puppet::Server::FileServer.new( + server = Puppet::Network::Server::FileServer.new( :Local => true, :Config => false ) @@ -140,7 +139,7 @@ class TestFileServer < Test::Unit::TestCase file = nil assert_nothing_raised { - server = Puppet::Server::FileServer.new( + server = Puppet::Network::Server::FileServer.new( :Local => true, :Config => false ) @@ -195,10 +194,10 @@ class TestFileServer < Test::Unit::TestCase # go through the whole schtick again... file = nil - checks = Puppet::Server::FileServer::CHECKPARAMS + checks = Puppet::Network::Server::FileServer::CHECKPARAMS assert_nothing_raised { - server = Puppet::Server::FileServer.new( + server = Puppet::Network::Server::FileServer.new( :Local => true, :Config => false ) @@ -236,7 +235,7 @@ class TestFileServer < Test::Unit::TestCase def test_zmountroot server = nil assert_nothing_raised { - server = Puppet::Server::FileServer.new( + server = Puppet::Network::Server::FileServer.new( :Local => true, :Config => false ) @@ -265,7 +264,7 @@ class TestFileServer < Test::Unit::TestCase def test_recursionlevels server = nil assert_nothing_raised { - server = Puppet::Server::FileServer.new( + server = Puppet::Network::Server::FileServer.new( :Local => true, :Config => false ) @@ -316,7 +315,7 @@ class TestFileServer < Test::Unit::TestCase def test_listedpath server = nil assert_nothing_raised { - server = Puppet::Server::FileServer.new( + server = Puppet::Network::Server::FileServer.new( :Local => true, :Config => false ) @@ -359,7 +358,7 @@ class TestFileServer < Test::Unit::TestCase def test_widelists server = nil assert_nothing_raised { - server = Puppet::Server::FileServer.new( + server = Puppet::Network::Server::FileServer.new( :Local => true, :Config => false ) @@ -396,10 +395,10 @@ class TestFileServer < Test::Unit::TestCase files = mktestfiles(testdir) file = nil - checks = Puppet::Server::FileServer::CHECKPARAMS + checks = Puppet::Network::Server::FileServer::CHECKPARAMS assert_nothing_raised { - server = Puppet::Server::FileServer.new( + server = Puppet::Network::Server::FileServer.new( :Local => true, :Config => false ) @@ -440,7 +439,7 @@ class TestFileServer < Test::Unit::TestCase # Now try to describe some sources that don't even exist retval = nil - assert_raise(Puppet::FileServerError, + assert_raise(Puppet::Network::Server::FileServerError, "Describing non-existent mount did not raise an error") { retval = server.describe("/notmounted/" + "noexisties") } @@ -492,7 +491,7 @@ class TestFileServer < Test::Unit::TestCase # create a server with the file assert_nothing_raised { - server = Puppet::Server::FileServer.new( + server = Puppet::Network::Server::FileServer.new( :Local => false, :Config => conffile ) @@ -552,7 +551,7 @@ class TestFileServer < Test::Unit::TestCase case type when :deny: - assert_raise(Puppet::Server::AuthorizationError, + assert_raise(Puppet::AuthorizationError, "Host %s, ip %s, allowed %s" % [host, ip, mount]) { list = server.list(mount, :ignore, true, false, host, ip) @@ -605,13 +604,13 @@ class TestFileServer < Test::Unit::TestCase # create a server with the file server = nil assert_nothing_raised { - server = Puppet::Server::FileServer.new( + server = Puppet::Network::Server::FileServer.new( :Local => true, :Config => conffile ) } - assert_raise(Puppet::FileServerError, + assert_raise(Puppet::Network::Server::FileServerError, "Invalid mount was mounted") { server.list(mount, :ignore) } @@ -625,9 +624,9 @@ class TestFileServer < Test::Unit::TestCase # create a server with the file server = nil - assert_raise(Puppet::FileServerError, + assert_raise(Puppet::Network::Server::FileServerError, "Invalid config %s did not raise error" % i) { - server = Puppet::Server::FileServer.new( + server = Puppet::Network::Server::FileServer.new( :Local => true, :Config => conffile ) @@ -657,7 +656,7 @@ class TestFileServer < Test::Unit::TestCase # start our server with a fast timeout assert_nothing_raised { - server = Puppet::Server::FileServer.new( + server = Puppet::Network::Server::FileServer.new( :Local => false, :Config => conffile ) @@ -670,7 +669,7 @@ class TestFileServer < Test::Unit::TestCase } assert(list != "", "List returned nothing in rereard test") - assert_raise(Puppet::Server::AuthorizationError, "List allowed invalid host") { + assert_raise(Puppet::AuthorizationError, "List allowed invalid host") { list = server.list("/thing/", :ignore, false, false, "test2.domain.com", "127.0.0.1") } @@ -685,7 +684,7 @@ class TestFileServer < Test::Unit::TestCase " } - assert_raise(Puppet::Server::AuthorizationError, "List allowed invalid host") { + assert_raise(Puppet::AuthorizationError, "List allowed invalid host") { list = server.list("/thing/", :ignore, false, false, "test1.domain.com", "127.0.0.1") } @@ -706,7 +705,7 @@ class TestFileServer < Test::Unit::TestCase name = "yaytest" path = tmpdir() assert_nothing_raised { - mount = Puppet::Server::FileServer::Mount.new(name, path) + mount = Puppet::Network::Server::FileServer::Mount.new(name, path) } assert_equal("mount[#{name}]", mount.to_s) @@ -721,7 +720,7 @@ class TestFileServer < Test::Unit::TestCase File.open(file, "w") { |f| f.puts "yay" } File.symlink(file, link) assert_nothing_raised { - server = Puppet::Server::FileServer.new( + server = Puppet::Network::Server::FileServer.new( :Local => true, :Config => false ) @@ -735,7 +734,7 @@ class TestFileServer < Test::Unit::TestCase results = {} assert_nothing_raised { server.describe("/mount/link", :follow).split("\t").zip( - Puppet::Server::FileServer::CHECKPARAMS + Puppet::Network::Server::FileServer::CHECKPARAMS ).each { |v,p| results[p] = v } } @@ -745,7 +744,7 @@ class TestFileServer < Test::Unit::TestCase results = {} assert_nothing_raised { server.describe("/mount/link", :ignore).split("\t").zip( - Puppet::Server::FileServer::CHECKPARAMS + Puppet::Network::Server::FileServer::CHECKPARAMS ).each { |v,p| results[p] = v } } @@ -800,7 +799,7 @@ allow * server = nil assert_nothing_raised { - server = Puppet::Server::FileServer.new( + server = Puppet::Network::Server::FileServer.new( :Local => true, :Config => conffile ) @@ -918,7 +917,7 @@ allow * # This isn't a valid replacement pattern, so it should throw an error # because the dir doesn't exist - assert_raise(Puppet::FileServerError) { + assert_raise(Puppet::Network::Server::FileServerError) { mount.path = "/dir/a%" } @@ -972,7 +971,7 @@ allow * def test_fileserver_expansion server = nil assert_nothing_raised { - server = Puppet::Server::FileServer.new( + server = Puppet::Network::Server::FileServer.new( :Local => true, :Config => false ) diff --git a/test/server/logger.rb b/test/server/logger.rb index 60d5458ef..83e834365 100755 --- a/test/server/logger.rb +++ b/test/server/logger.rb @@ -2,7 +2,6 @@ $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/ -require 'puppet' require 'puppettest' require 'base64' require 'cgi' @@ -20,7 +19,7 @@ class TestLogger < Test::Unit::TestCase def test_localaddlog logger = nil assert_nothing_raised { - logger = Puppet::Server::Logger.new + logger = Puppet::Network::Server::Logger.new } msg = nil @@ -40,7 +39,7 @@ class TestLogger < Test::Unit::TestCase def test_remoteaddlog logger = nil assert_nothing_raised { - logger = Puppet::Server::Logger.new + logger = Puppet::Network::Server::Logger.new } msg = nil @@ -63,7 +62,7 @@ class TestLogger < Test::Unit::TestCase def test_localclient client = nil assert_nothing_raised { - client = Puppet::Client::LogClient.new(:Logger => true) + client = Puppet::Network::Client::LogClient.new(:Logger => true) } msg = nil @@ -98,7 +97,7 @@ class TestLogger < Test::Unit::TestCase logger = nil # Create our server assert_nothing_raised { - logger = Puppet::Server.new( + logger = Puppet::Network::Server.new( :Port => @@port, :Handlers => { :CA => {}, # so that certs autogenerate @@ -122,7 +121,7 @@ class TestLogger < Test::Unit::TestCase # Start a raw xmlrpc client client = nil assert_nothing_raised() { - client = Puppet::Client::LogClient.new( + client = Puppet::Network::Client::LogClient.new( :Server => "localhost", :Port => @@port ) diff --git a/test/server/master.rb b/test/server/master.rb index 3a590ea3d..ba52908d3 100755 --- a/test/server/master.rb +++ b/test/server/master.rb @@ -2,10 +2,8 @@ $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/ -require 'puppet' -require 'puppet/server' -require 'puppet/client' require 'puppettest' +require 'puppet/network/server' class TestMaster < Test::Unit::TestCase include PuppetTest::ServerTest @@ -26,7 +24,7 @@ class TestMaster < Test::Unit::TestCase # create our master assert_nothing_raised() { # this is the default server setup - master = Puppet::Server::Master.new( + master = Puppet::Network::Server::Master.new( :Manifest => file, :UseNodes => false, :Local => true @@ -35,7 +33,7 @@ class TestMaster < Test::Unit::TestCase # and our client assert_nothing_raised() { - client = Puppet::Client::MasterClient.new( + client = Puppet::Network::Client::MasterClient.new( :Master => master ) } @@ -71,14 +69,14 @@ class TestMaster < Test::Unit::TestCase master = nil assert_nothing_raised() { # this is the default server setup - master = Puppet::Server::Master.new( + master = Puppet::Network::Server::Master.new( :Manifest => file, :UseNodes => false, :Local => true ) } assert_nothing_raised() { - client = Puppet::Client::MasterClient.new( + client = Puppet::Network::Client::MasterClient.new( :Master => master ) } @@ -105,14 +103,14 @@ class TestMaster < Test::Unit::TestCase client = master = nil assert_nothing_raised() { # this is the default server setup - master = Puppet::Server::Master.new( + master = Puppet::Network::Server::Master.new( :Manifest => manifest, :UseNodes => false, :Local => true ) } assert_nothing_raised() { - client = Puppet::Client::MasterClient.new( + client = Puppet::Network::Client::MasterClient.new( :Master => master ) } @@ -172,7 +170,7 @@ class TestMaster < Test::Unit::TestCase # create our master assert_nothing_raised() { # this is the default server setup - master = Puppet::Server::Master.new( + master = Puppet::Network::Server::Master.new( :Manifest => file, :UseNodes => false, :Local => true @@ -211,7 +209,7 @@ class TestMaster < Test::Unit::TestCase # create our master assert_nothing_raised() { # this is the default server setup - master = Puppet::Server::Master.new( + master = Puppet::Network::Server::Master.new( :Manifest => file, :UseNodes => true, :Local => true @@ -261,7 +259,7 @@ class TestMaster < Test::Unit::TestCase # create our master assert_nothing_raised() { # this is the default server setup - master = Puppet::Server::Master.new( + master = Puppet::Network::Server::Master.new( :Manifest => file, :UseNodes => true, :Local => true @@ -306,7 +304,7 @@ class TestMaster < Test::Unit::TestCase Puppet[:storeconfigs] = true # this is the default server setup - master = Puppet::Server::Master.new( + master = Puppet::Network::Server::Master.new( :Code => "", :UseNodes => true, :Local => true diff --git a/test/server/report.rb b/test/server/report.rb index 7e563f9e6..bf652feaf 100755 --- a/test/server/report.rb +++ b/test/server/report.rb @@ -2,23 +2,21 @@ $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/ -require 'puppet' -require 'puppet/server/report' -require 'puppet/client/reporter' require 'puppettest' +require 'puppet/network/server/report' require 'puppettest/reporttesting' class TestReportServer < Test::Unit::TestCase include PuppetTest include PuppetTest::Reporttesting - Report = Puppet::Server::Report + Report = Puppet::Network::Server::Report Puppet::Util.logmethods(self) def mkserver server = nil assert_nothing_raised { - server = Puppet::Server::Report.new() + server = Puppet::Network::Server::Report.new() } server end @@ -27,7 +25,7 @@ class TestReportServer < Test::Unit::TestCase server ||= mkserver() client = nil assert_nothing_raised { - client = Puppet::Client::Reporter.new(:Report => server) + client = Puppet::Network::Client::Reporter.new(:Report => server) } client @@ -45,7 +43,7 @@ class TestReportServer < Test::Unit::TestCase $myreportrun = false file = File.join(libdir, "myreport.rb") File.open(file, "w") { |f| f.puts %{ - Puppet::Server::Report.newreport(:myreport) do + Puppet::Network::Server::Report.newreport(:myreport) do def process(report) $myreportrun = true return report @@ -56,18 +54,18 @@ class TestReportServer < Test::Unit::TestCase Puppet[:reports] = "myreport" # Create a server - server = Puppet::Server::Report.new + server = Puppet::Network::Server::Report.new report = nil assert_nothing_raised { - report = Puppet::Server::Report.report(:myreport) + report = Puppet::Network::Server::Report.report(:myreport) } assert(report, "Did not get report") end def test_process - server = Puppet::Server::Report.new + server = Puppet::Network::Server::Report.new # We have to run multiple reports to make sure there's no conflict reports = [] @@ -104,7 +102,7 @@ class TestReportServer < Test::Unit::TestCase # Make sure reports can specify whether to use yaml or not def test_useyaml - server = Puppet::Server::Report.new + server = Puppet::Network::Server::Report.new Report.newreport(:yamlyes, :useyaml => true) do def process(report) @@ -135,7 +133,7 @@ class TestReportServer < Test::Unit::TestCase Puppet[:reports] = "myreport" # Create a server - server = Puppet::Server::Report.new + server = Puppet::Network::Server::Report.new {"myreport" => ["myreport"], " fake, another, yay " => ["fake", "another", "yay"] @@ -174,7 +172,7 @@ class TestReportServer < Test::Unit::TestCase def test_report_list list = nil assert_nothing_raised do - list = Puppet::Server::Report.reports + list = Puppet::Network::Server::Report.reports end [:rrdgraph, :store, :tagmail].each do |name| diff --git a/test/server/resource.rb b/test/server/resource.rb index 5a2f602ba..8e6581083 100755 --- a/test/server/resource.rb +++ b/test/server/resource.rb @@ -2,9 +2,8 @@ $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/ -require 'puppet' -require 'puppet/server/resource' require 'puppettest' +require 'puppet/network/server/resource' require 'base64' require 'cgi' @@ -39,7 +38,7 @@ class TestResourceServer < Test::Unit::TestCase server = nil assert_nothing_raised do - server = Puppet::Server::Resource.new() + server = Puppet::Network::Server::Resource.new() end # The first run we create the file on the copy, the second run @@ -119,7 +118,7 @@ class TestResourceServer < Test::Unit::TestCase server = nil assert_nothing_raised do - server = Puppet::Server::Resource.new() + server = Puppet::Network::Server::Resource.new() end [ [nil], @@ -177,7 +176,7 @@ class TestResourceServer < Test::Unit::TestCase #Puppet.err Puppet::Type::ParsedType::Port.path server = nil assert_nothing_raised do - server = Puppet::Server::Resource.new() + server = Puppet::Network::Server::Resource.new() end require 'etc' @@ -239,7 +238,7 @@ class TestResourceServer < Test::Unit::TestCase def test_apply server = nil assert_nothing_raised do - server = Puppet::Server::Resource.new() + server = Puppet::Network::Server::Resource.new() end file = tempfile() diff --git a/test/server/rights.rb b/test/server/rights.rb index cf0a3ed94..e5c65babe 100755 --- a/test/server/rights.rb +++ b/test/server/rights.rb @@ -2,9 +2,8 @@ $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/ -require 'puppet' -require 'puppet/server/rights' require 'puppettest' +require 'puppet/network/server/rights' class TestRights < Test::Unit::TestCase include PuppetTest @@ -12,7 +11,7 @@ class TestRights < Test::Unit::TestCase def test_rights store = nil assert_nothing_raised { - store = Puppet::Server::Rights.new + store = Puppet::Network::Rights.new } assert(store, "Did not create store") diff --git a/test/server/runner.rb b/test/server/runner.rb index e102250fe..9d4cf41be 100755 --- a/test/server/runner.rb +++ b/test/server/runner.rb @@ -2,8 +2,7 @@ $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/ -require 'puppet' -require 'puppet/server/runner' +require 'puppet/network/server/runner' require 'puppettest' class TestServerRunner < Test::Unit::TestCase @@ -15,7 +14,7 @@ class TestServerRunner < Test::Unit::TestCase # create our master assert_nothing_raised() { # this is the default server setup - master = Puppet::Server::Master.new( + master = Puppet::Network::Server::Master.new( :Manifest => file, :UseNodes => false, :Local => true @@ -24,7 +23,7 @@ class TestServerRunner < Test::Unit::TestCase # and our client assert_nothing_raised() { - client = Puppet::Client::MasterClient.new( + client = Puppet::Network::Client::MasterClient.new( :Master => master ) } @@ -52,7 +51,7 @@ class TestServerRunner < Test::Unit::TestCase runner = nil assert_nothing_raised { - runner = Puppet::Server::Runner.new + runner = Puppet::Network::Server::Runner.new } # First: tags # Second: ignore schedules true/false diff --git a/test/server/server.rb b/test/server/server.rb index 03fedb93f..4e79e00b7 100755 --- a/test/server/server.rb +++ b/test/server/server.rb @@ -2,11 +2,8 @@ $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/ -require 'puppet' -require 'puppet/server' require 'puppettest' - -# $Id$ +require 'puppet/network/server' if ARGV.length > 0 and ARGV[0] == "short" $short = true @@ -44,7 +41,7 @@ class TestServer < Test::Unit::TestCase server = nil # make our server again assert_nothing_raised() { - server = Puppet::Server.new( + server = Puppet::Network::Server.new( :Port => @@port, :Handlers => { :CA => {}, # so that certs autogenerate @@ -70,7 +67,7 @@ class TestServer < Test::Unit::TestCase # and then start a masterclient assert_nothing_raised() { - client = Puppet::Client::MasterClient.new( + client = Puppet::Network::Client::MasterClient.new( :Server => "localhost", :Port => @@port ) @@ -92,7 +89,7 @@ class TestServer < Test::Unit::TestCase Puppet[:setpidfile] = false server = nil assert_nothing_raised() { - server = Puppet::Server.new( + server = Puppet::Network::Server.new( :Port => @@port, :Handlers => { :CA => {}, # so that certs autogenerate @@ -144,7 +141,7 @@ class TestServer < Test::Unit::TestCase client = mk_status_client # This time the client should be denied - assert_raise(Puppet::NetworkClientError) { + assert_raise(Puppet::Network::NetworkClientError) { client.status } end @@ -156,7 +153,7 @@ class TestServer < Test::Unit::TestCase Puppet::Type::allclear assert_nothing_raised() { - client = Puppet::Client::StatusClient.new( + client = Puppet::Network::Client::StatusClient.new( :Server => "localhost", :Port => @@port ) @@ -167,7 +164,7 @@ class TestServer < Test::Unit::TestCase def mk_status_server server = nil assert_nothing_raised() { - server = Puppet::Server.new( + server = Puppet::Network::Server.new( :Port => @@port, :Handlers => { :CA => {}, # so that certs autogenerate @@ -196,3 +193,5 @@ class TestServer < Test::Unit::TestCase assert(count < 30, "Killing server #{pid} failed") end end + +# $Id$ |
