summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mailman/docs/NEWS.rst2
-rw-r--r--src/mailman/rest/gunicorn.py60
2 files changed, 2 insertions, 60 deletions
diff --git a/src/mailman/docs/NEWS.rst b/src/mailman/docs/NEWS.rst
index 5b580bd9d..d2d4a39d2 100644
--- a/src/mailman/docs/NEWS.rst
+++ b/src/mailman/docs/NEWS.rst
@@ -195,6 +195,8 @@ REST
integers, since the latter are not compatible with all versions of
JavaScript. (Closes #121)
* REST clients must minimally support HTTP/1.1. (Closes #288)
+ * Experimental Gunicorn support. See ``contrib/gunicorn.py`` docstring for
+ details. With assistance from Eric Searcy. (Closes #287)
* The new template system is introduced for API 3.1. See
``src/mailman/rest/docs/templates.rst`` for details. (Closes #249)
* When creating a user via REST using an address that already exists, but
diff --git a/src/mailman/rest/gunicorn.py b/src/mailman/rest/gunicorn.py
deleted file mode 100644
index 489828715..000000000
--- a/src/mailman/rest/gunicorn.py
+++ /dev/null
@@ -1,60 +0,0 @@
-# Copyright (C) 2015-2017 by the Free Software Foundation, Inc.
-#
-# This file is part of GNU Mailman.
-#
-# GNU Mailman is free software: you can redistribute it and/or modify it under
-# the terms of the GNU General Public License as published by the Free
-# Software Foundation, either version 3 of the License, or (at your option)
-# any later version.
-#
-# GNU Mailman is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
-# more details.
-#
-# You should have received a copy of the GNU General Public License along with
-# GNU Mailman. If not, see <http://www.gnu.org/licenses/>.
-
-"""Experimental Gunicorn based REST server.
-
-To use this do the following:
-
-* Install gunicorn as a Python 3 application (in a venv if necessary).
-* Create a mailman.cfg with at least the following in it:
-
- [runner.rest]
- start: no
-
-* Start Mailman as normal: `mailman start`
-* Set the MAILMAN_CONFIG_FILE environment variable to the location of your
- mailman.cfg file from above.
-* Run: gunicorn mailman.rest.gunicorn:run
-"""
-
-from public import public
-
-
-_initialized = False
-
-
-@public
-def run(environ, start_response):
- """Create the WSGI application.
-
- Use this if you want to integrate Mailman's REST server with an external
- WSGI server, such as gunicorn. Be sure to set the $MAILMAN_CONFIG_FILE
- environment variable.
- """
- # Imports are here to evaluate them lazily, prevent circular imports, and
- # make flake8 happy.
- global _initialized
- if not _initialized:
- from mailman.core.initialize import initialize
- # First things first, initialize the system before any other imports or
- # other operations. It must only be initialized once though.
- initialize(propagate_logs=True)
- _initialized = True
- # Hook things up to WSGI.
- from mailman.rest.wsgiapp import make_application
- app = make_application()
- return app(environ, start_response)