# -*- python -*- # # Apache mod_wsgi python interface # # Copyright (C) 2004-2006 The Trustees of Princeton University # import sys sys.path.append('/usr/share/plc_api') sys.stdout = sys.stderr import traceback from PLC.Debug import log from PLC.API import PLCAPI api = PLCAPI() # recipe from this page # http://code.google.com/p/modwsgi/wiki/DebuggingTechniques # let ErrorMiddleware deal with exceptions def application(environ, start_response): status = '200 OK' if environ.get('REQUEST_METHOD') != 'POST': content_type = 'text/html' output = """ PLCAPI WSGI XML-RPC/SOAP Interface

PLCAPI WSGI XML-RPC/SOAP Interface

Please use XML-RPC or SOAP to access the PLCAPI.

""" else: api.environ = environ content_type = 'text/xml' ip = environ.get('REMOTE_ADDR') port = environ.get('REMOTE_PORT') output = api.handle((ip,port),environ.get('wsgi.input').read()) # Shut down database connection, otherwise up to MaxClients DB # connections will remain open. api.db.close() # Write response response_headers = [('Content-type', '%s' % content_type), ('Content-Length', str(len(output)))] start_response(status, response_headers) return [output] from paste.exceptions.errormiddleware import ErrorMiddleware application = ErrorMiddleware(application, debug=True)