summaryrefslogtreecommitdiffstats
path: root/server/server.py
diff options
context:
space:
mode:
authorSeth Vidal <skvidal@fedoraproject.org>2007-09-24 15:44:37 -0400
committerSeth Vidal <skvidal@fedoraproject.org>2007-09-24 15:44:37 -0400
commit0067f7ff6189fdd46f49e45ed2099511eb4de004 (patch)
treec0e64ccb936e314200ce0ec3d2e02acc06b7fce2 /server/server.py
parent122714e5589843c5f283ad935b20345576d24ca6 (diff)
parentbcbdab56d02a09ecda8a70acd6e5990073dd6b3e (diff)
Merge branch 'master' of ssh://git.fedoraproject.org/git/hosted/func
* 'master' of ssh://git.fedoraproject.org/git/hosted/func: add a basic AuditLogger class Package the subprocess module so that we can use it on EL4. Basic plugin for checking SMART status on drives. Add basic module for checking smart status of drives. Remove header from ps output
Diffstat (limited to 'server/server.py')
-rwxr-xr-xserver/server.py20
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)
# ======================================================================================