Page MenuHomePhabricator

Support WSGI for Running Python Scripts
Closed, ResolvedPublic

Description

Because WSGI is awesome. But more importantly a lot of Python tools already assume WSGI (flask, werkzeug, other middleware, etc) and people are a lot more familiar with WSGI than with CGI for python.


Version: unspecified
Severity: normal

Details

Reference
bz49058

Event Timeline

bzimport raised the priority of this task from to High.Nov 22 2014, 1:42 AM
bzimport added a project: Toolforge.
bzimport set Reference to bz49058.

mod_wsgi (via https://code.google.com/p/modwsgi/) is probably the easiest way to do this.

I can't do this major change on tools without discussing this with Coren. But I can install this to bots project for now

bumping priority - waiting for Coren's opinion

I've found a fairly reasonable way of doing it. Will implement a test version next week.

Update from IRC: mod_wsgi is no go. However, Coren is currently working on a uwsgi emperor/tyrant based server that should be much, much better than mod_wsgi :)

Another update: Tyrant is also a no go, but the Dynamic HTTP Proxy I built should be able to eventually solve this

I would really appreciate having WSGI support on Tool Labs. Due to a bug in werkzeug [0], I am not able to deploy a tool using flask at the moment.

[0] https://github.com/mitsuhiko/flask/issues/857

Gerrit Patch Uploader is using newweb with flup.server.fcgi as wsgi host. For details, please see the lighttpd conf at

https://github.com/valhallasw/gerrit-patch-uploader/blob/master/lighttpd.conf

and the fcgi script at

https://github.com/valhallasw/gerrit-patch-uploader/blob/master/app.fcgi

(lighttpd.conf should be in your project's home directory, and requests to that directory will then be served by your own lighttpd -- see https://wikitech.wikimedia.org/wiki/Nova_Resource:Tools/Help/NewWeb )

Update on the Dynamic HTTP Proxy: The features required to make it work for toollabs has been built and merged. Only waiting on Coren to update portgrabber / portgranter so that it supports the new protocol.

*Worst* case scenario is that this happens when we move to eqiad (since the current webproxy setup isn't puppetized :D). I hope to have it running in production in a couple weeks though.

Petr: This ticket has been assigned to you and in ASSIGNED state for more than 12 months. Do you plan to work on this, or could you reset to NEW status and/or default assignee, if not?

My understanding of Merlijn's comment #9 is that NewWeb supports this, and with no Apaches in eqiad, all tools can use this, so closing this bug as fixed.