The congress.common.wsgi Module¶
Utility methods for working with WSGI servers.
-
class
congress.common.wsgi.Application¶ Bases:
objectBase WSGI application wrapper. Subclasses need to implement __call__.
-
classmethod
factory(global_config, **local_config)¶ Used for paste app factories in paste.deploy config files.
Any local configuration (that is, values under the [app:APPNAME] section of the paste config) will be passed into the __init__ method as kwargs.
A hypothetical configuration would look like:
[app:wadl] latest_version = 1.3 paste.app_factory = nova.api.fancy_api:Wadl.factorywhich would result in a call to the Wadl class as
import nova.api.fancy_api fancy_api.Wadl(latest_version=‘1.3’)You could of course re-implement the factory method in subclasses, but using the kwarg passing it shouldn’t be necessary.
-
classmethod
-
class
congress.common.wsgi.Debug(application)¶ Bases:
congress.common.wsgi.MiddlewareHelper class for debugging a WSGI application.
Can be inserted into any WSGI application chain to get information about the request and response.
-
static
print_generator(app_iter)¶ Iterator that prints the contents of a wrapper string.
-
static
-
class
congress.common.wsgi.Middleware(application)¶ Bases:
congress.common.wsgi.ApplicationBase WSGI middleware.
These classes require an application to be initialized that will be called next. By default the middleware will simply call its wrapped app, or you can override __call__ to customize its behavior.
-
classmethod
factory(global_config, **local_config)¶ Used for paste app factories in paste.deploy config files.
Any local configuration (that is, values under the [filter:APPNAME] section of the paste config) will be passed into the __init__ method as kwargs.
A hypothetical configuration would look like:
[filter:analytics] redis_host = 127.0.0.1 paste.filter_factory = nova.api.analytics:Analytics.factorywhich would result in a call to the Analytics class as
import nova.api.analytics analytics.Analytics(app_from_paste, redis_host=‘127.0.0.1’)You could of course re-implement the factory method in subclasses, but using the kwarg passing it shouldn’t be necessary.
-
process_request(req)¶ Called on each request.
If this returns None, the next application down the stack will be executed. If it returns a response then that response will be returned and execution will stop here.
-
process_response(response)¶ Do whatever you’d like to the response.
-
classmethod
-
class
congress.common.wsgi.Request(environ, charset=None, unicode_errors=None, decode_param_names=None, **kw)¶ Bases:
webob.request.Request
-
class
congress.common.wsgi.Router(mapper)¶ Bases:
objectWSGI middleware that maps incoming requests to WSGI apps.