diff options
author | Adrian Likins <alikins@redhat.com> | 2007-09-24 14:53:52 -0400 |
---|---|---|
committer | Adrian Likins <alikins@redhat.com> | 2007-09-24 14:53:52 -0400 |
commit | bcbdab56d02a09ecda8a70acd6e5990073dd6b3e (patch) | |
tree | fc6e86d4199adb327a96540bcd1869714a5c0efc /server/server.py | |
parent | 412671ee48804867fc6707fa12409ae9365f5ea3 (diff) | |
download | third_party-func-bcbdab56d02a09ecda8a70acd6e5990073dd6b3e.tar.gz third_party-func-bcbdab56d02a09ecda8a70acd6e5990073dd6b3e.tar.xz third_party-func-bcbdab56d02a09ecda8a70acd6e5990073dd6b3e.zip |
add a basic AuditLogger class
at the moment, it just logs ever call method and args to
/var/log/func/audit.log
server.py: some refactor in preperation for better logging
(mostly changing stuff so I can get to the xmlrpcserver innards
for things like client ip's)
Diffstat (limited to 'server/server.py')
-rwxr-xr-x | server/server.py | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/server/server.py b/server/server.py index bfdf5a9..73ef114 100755 --- a/server/server.py +++ b/server/server.py @@ -35,7 +35,7 @@ import utils class XmlRpcInterface(object): - def __init__(self, modules={}): + def __init__(self, modules={}, server=None): """ Constructor. @@ -45,7 +45,11 @@ class XmlRpcInterface(object): self.config = config_obj.get() self.modules = modules self.logger = logger.Logger().logger + self.audit_logger = logger.AuditLogger() self.__setup_handlers() + + # need a reference so we can log ip's, certs, etc + self.server = server def __setup_handlers(self): @@ -93,6 +97,10 @@ class XmlRpcInterface(object): if method == 'trait_names' or method == '_getAttributeNames': return self.handlers.keys() + # XXX FIXME - need to figure out how to dig into the server base classes + # so we can get client ip, and eventually cert id info -akl + self.audit_logger.log_call(method, params) + return self.get_dispatch_method(method)(*params) # ====================================================================================== @@ -139,15 +147,20 @@ class FuncApiMethod: # ====================================================================================== -def serve(websvc): +def serve(): """ Code for starting the XMLRPC service. FIXME: make this HTTPS (see RRS code) and make accompanying Rails changes.. """ + modules = module_loader.load_modules() + server =FuncXMLRPCServer(('', 51234)) server.logRequests = 0 # don't print stuff to console + + websvc = XmlRpcInterface(modules=modules,server=server) + server.register_instance(websvc) server.serve_forever() @@ -184,7 +197,7 @@ def main(argv): print "Seriously.\n\n" try: - websvc = XmlRpcInterface(modules=modules) + serve() except codes.FuncException, e: print >> sys.stderr, 'error: %s' % e sys.exit(1) @@ -194,7 +207,6 @@ def main(argv): else: print "serving...\n" - serve(websvc) # ====================================================================================== |