OpenStack Object Storage (Swift)

Enable working as wsgi application of standard web server (Apache)

Registered by David Hadas on 2012-10-11

This blueprint focuses on enabling Swift to run as a wsgi application of Apache via mod_wsgi, but is designed to also address the more general need to allow using a fully features web server as a front end of open stack components.

A thin wsgi interface is added in openstack common files, enabling open-stack components to interface a standard web server (E.g. Apache2) via wsgi.
Using this interface, a standard mature and full fledged web server can be used as a web front end, feeding the openstack components via standard wsgi interface.
This interface therefore offers an option (but does not mandate) to replace the current python web front end with a standard web server.
Alternatively, it offers a more efficient interface between a web server and the openstack components.

In order for an openstack component to work as a wsgi application, the component needs to comply with the wsgi standard. For example Apache with mod_wsgi is not forgiving to certain violations of the standard.
Included in this work is a set of bug fixes to get the swift code to comply with the wsgi standard and work with Apache mod_wsgi.
The interface and bug fixes aim to maintain the current Swift functionality, while measured performance in swift using the existing web front end and an alternative Apache are comparable.

Blueprint information

Status:
Started
Approver:
John Dickinson
Priority:
Undefined
Drafter:
David Hadas
Direction:
Needs approval
Assignee:
David Hadas
Definition:
New
Series goal:
None
Implementation:
Good progress
Milestone target:
None
Started by
David Hadas on 2012-10-23

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bug/1066523,n,z

Addressed by: https://review.openstack.org/14448
    BLUEPRINT: wsgi-application-interface BUG: Bug #1066523 When listing an empty container or account the content_length is missing from the response.

Gerrit topic: https://review.openstack.org/#q,topic:bug/1070036,n,z

Addressed by: https://review.openstack.org/14638
    Fixes Ilegal chunk encoding by the test_client

Gerrit topic: https://review.openstack.org/#q,topic:bug/1068499,n,z

Addressed by: https://review.openstack.org/14662
    Two MIME types sent during test

Gerrit topic: https://review.openstack.org/#q,topic:bug/1070025,n,z

Addressed by: https://review.openstack.org/14663
    Fix non standard 100-continue behaviour

Gerrit topic: https://review.openstack.org/#q,topic:bp/wsgi-application-interface,n,z

Addressed by: https://review.openstack.org/14676
    Separate wsgi init from web-front-end activation

Gerrit topic: https://review.openstack.org/#q,topic:bug/1068026,n,z

Addressed by: https://review.openstack.org/14695
    Remove utf-8 in metadata and http header names

Addressed by: https://review.openstack.org/23413
    Handle IOError

Addressed by: https://review.openstack.org/23585
    Support tests for Apache

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.