Merge "Use gunicorn instead of werkzeug"

This commit is contained in:
Jenkins 2016-11-12 12:43:31 +00:00 committed by Gerrit Code Review
commit 7e2216219e
4 changed files with 29 additions and 3 deletions

View File

@ -11,4 +11,4 @@ python-dateutil==2.5.3
pytz==2016.7 pytz==2016.7
requests==2.11.1 requests==2.11.1
six==1.10.0 six==1.10.0
Werkzeug==0.11.11 gunicorn==19.6.0

View File

@ -52,4 +52,4 @@ source-dir = releasenotes/source
[entry_points] [entry_points]
console_scripts = console_scripts =
valence = valence.run:main valence = valence.cmd.api:main

0
valence/cmd/__init__.py Normal file
View File

View File

@ -14,16 +14,42 @@
# under the License. # under the License.
import logging import logging
import gunicorn.app.base
from gunicorn.six import iteritems
from valence.api.route import app as application from valence.api.route import app as application
from valence import config as cfg from valence import config as cfg
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
class StandaloneApplication(gunicorn.app.base.BaseApplication):
def __init__(self, app, options=None):
self.options = options or {}
self.application = app
super(StandaloneApplication, self).__init__()
def load_config(self):
config = dict([(key, value) for key, value in iteritems(self.options)
if key in self.cfg.settings and value is not None])
for key, value in iteritems(config):
self.cfg.set(key.lower(), value)
def load(self):
return self.application
def main(): def main():
application.run(host=cfg.bind_host, port=cfg.bind_port, debug=cfg.debug) options = {
'bind': '%s:%s' % (cfg.bind_host, cfg.bind_port)
}
StandaloneApplication(application, options).run()
LOG.info(("Valence Server on http://%(host)s:%(port)s"), LOG.info(("Valence Server on http://%(host)s:%(port)s"),
{'host': cfg.bind_host, 'port': cfg.bind_port}) {'host': cfg.bind_host, 'port': cfg.bind_port})
if __name__ == '__main__': if __name__ == '__main__':
main() main()