From 3274577cd608f947d6b07e6dfcbde393edf5a249 Mon Sep 17 00:00:00 2001 From: Jason Gerard DeRose Date: Fri, 30 Jan 2009 23:46:51 -0700 Subject: Finished small tweaks to get new ipaserver.xmlrpc() mod_python handler working --- ipaserver/__init__.py | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) (limited to 'ipaserver/__init__.py') diff --git a/ipaserver/__init__.py b/ipaserver/__init__.py index 35f96c7f6..ec2a53649 100644 --- a/ipaserver/__init__.py +++ b/ipaserver/__init__.py @@ -24,27 +24,51 @@ Package containing server backend. from xmlrpclib import dumps, Fault from ipalib import api + +# This is a simple way to ensure that ipalib.api is only initialized +# when ipaserver is imported from within the Apache process: try: from mod_python import apache - api.bootstrap(context='server', log=None, debug=True) + api.bootstrap(context='server', debug=True, log=None) api.finalize() + api.log.info('*** PROCESS START ***') except ImportError: pass def xmlrpc(req): + """ + mod_python handler for XML-RPC requests. + """ if req.method != 'POST': req.allow_methods(['POST'], 1) return apache.HTTP_METHOD_NOT_ALLOWED if apache.mpm_query(apache.AP_MPMQ_IS_THREADED): response = dumps( - Fault(3, 'Apache must use the forked model'), methodresponse=True + Fault(3, 'Apache must use the forked model'), + methodresponse=True, ) else: - response = api.Backend.xmlserver.marshaled_dispatch(req.read(), None) + req.add_common_vars() + response = api.Backend.xmlserver.marshaled_dispatch( + req.read(), + req.subprocess_env.get('KRB5CCNAME'), + ) req.content_type = 'text/xml' req.set_content_length(len(response)) req.write(response) return apache.OK + + +def jsonrpc(req): + """ + mod_python handler for JSON-RPC requests (place holder). + """ + + +def webui(req): + """ + mod_python handler for web-UI requests (place holder). + """ -- cgit