blob: 2170a57720f2e2fe8df7e5fbd51792a570295dfb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
require 'yaml'
module Puppet
class Server
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)
unless message
raise Puppet::DevError, "Did not receive message"
end
Puppet.info message.inspect
# if the client is set, then we're not local
if client
begin
message = YAML.load(CGI.unescape(message))
#message = message
rescue => detail
raise XMLRPC::FaultException.new(
1, "Could not unYAML log message from %s" % client
)
end
end
unless message
raise Puppet::DevError, "Could not resurrect message"
end
# Mark it as remote, so it's not sent to syslog
message.remote = true
if client
if ! message.source or message.source == "Puppet"
message.source = client
end
end
Puppet::Log.newmessage(message)
# This is necessary or XMLRPC gets all pukey
return ""
end
end
end
end
# $Id$
|