diff options
author | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2005-10-28 05:39:59 +0000 |
---|---|---|
committer | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2005-10-28 05:39:59 +0000 |
commit | b6c63f6924250a14e998f4256e81c30e950fed99 (patch) | |
tree | 8915ec8881f2389b208dfda27a12d11f69730398 /lib/puppet/server/logger.rb | |
parent | 0ae5e3392597452acf6a2e9f0d4ac976b8ec9846 (diff) | |
download | puppet-b6c63f6924250a14e998f4256e81c30e950fed99.tar.gz puppet-b6c63f6924250a14e998f4256e81c30e950fed99.tar.xz puppet-b6c63f6924250a14e998f4256e81c30e950fed99.zip |
Central logging now works, although there appear to be a few kinks to work out.
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@732 980ebf18-57e1-0310-9a29-db15c13687c0
Diffstat (limited to 'lib/puppet/server/logger.rb')
-rwxr-xr-x | lib/puppet/server/logger.rb | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/lib/puppet/server/logger.rb b/lib/puppet/server/logger.rb new file mode 100755 index 000000000..7afad92b9 --- /dev/null +++ b/lib/puppet/server/logger.rb @@ -0,0 +1,48 @@ +module Puppet +class Server # :nodoc: + class LoggerError < RuntimeError; end + + # Receive logs from remote hosts. + class Logger < Handler + @interface = XMLRPC::Service::Interface.new("puppetlogger") { |iface| + iface.add_method("void addlog(string)") + } + + # accept a log message from a client, and route it accordingly + def addlog(message, client = nil, clientip = nil) + # if the client is set, then we're not local + if client + begin + message = Marshal::load(CGI.unescape(message)) + #message = message + rescue => detail + raise XMLRPC::FaultException.new( + 1, "Could not unMarshal log message from %s" % client + ) + end + end + + # Mark it as remote, so it's not sent to syslog + message.remote = true + + if client + if ! message.source or message.source == "Puppet" + #unless message.source or message.source != "Puppet" + message.source = client + else + puts message.source.inspect + end + else + puts "No client" + end + + Puppet::Log.newmessage(message) + + # This is necessary or XMLRPC gets all pukey + return "" + end + end +end +end + +# $Id$ |