Jump to: navigation, search

Blueprint-paste-deploy

  • Launchpad Entry: NovaSpec:nova-paste-deploy
  • Created:
  • Contributors:

Summary

Swift uses paste.deploy <http://pythonpaste.org/deploy/> to build wsgi apps from the server and middleware components. It makes it very easy to change or add middleware. Nova should do the same thing.

Release Note

Use paste.deploy for configuring middlewares and configuring wsgi apps.

Rationale

Standardizing across different openstack components, letting middleware components be specified and ordered in configuration instead of code.

User stories

Deployments using a different authentication mechanism can easily create a new auth middleware (packaged separately from nova) and specify it be loaded without requiring changes in the nova codebase.

Assumptions

Standard config parsing lands in openstack-common, as gflags interfere with paste.deploy.

Design

paste.deploy is very self-contained. We will only have to add a few configuration files. Package maintainers and openstack can mange those the same way they currently manage flagfiles (ie: puppet, chef, cfengine).

Implementation

Rework api/ec2/init since it will no longer be responsible for composing the wsgi app. Change either bin/nova-api or nova/wsgi.py to call the paste library. Look at swift-proxy for inspiration.