summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoss Brattain <ross.b.brattain@intel.com>2017-01-24 13:12:21 -0800
committerRoss Brattain <ross.b.brattain@intel.com>2017-02-08 00:08:24 -0800
commit96a752b948be4ec94f5fb6d6ce38d81f05c235a7 (patch)
tree7e45d1e5f5141c334a776e6b1c2bfb91908cd8ae
parenta4241e6e9b121447a50fdfe0d79b322c2e2aaea9 (diff)
uwsgi: move init_db to uwsgi entry point
uwsgi will call the 'callable' function which should normally be Flask.__call__(). But we need to init the db first, so make a wrapper function that inits the db and then calls app() Also refactor add_resource into for loop instead of reduce. reduce is not really approriate here since we aren't consuming the return value JIRA: YARDSTICK-543 Change-Id: I692d6d42de09f7d6ecf1a67a22e3019d97a4f3ca Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
-rw-r--r--api/server.py11
-rw-r--r--api/yardstick.ini2
2 files changed, 9 insertions, 4 deletions
diff --git a/api/server.py b/api/server.py
index be7963481..1d42feffb 100644
--- a/api/server.py
+++ b/api/server.py
@@ -10,7 +10,6 @@ from __future__ import absolute_import
import inspect
import logging
-from functools import reduce
from six.moves import filter
from flasgger import Swagger
@@ -38,6 +37,10 @@ def shutdown_session(exception=None):
db_session.remove()
+for u in urlpatterns:
+ api.add_resource(u.resource, u.url, endpoint=u.endpoint)
+
+
def init_db():
def func(a):
try:
@@ -52,8 +55,10 @@ def init_db():
Base.metadata.create_all(bind=engine)
-reduce(lambda a, b: a.add_resource(b.resource, b.url,
- endpoint=b.endpoint) or a, urlpatterns, api)
+def app_wrapper(*args, **kwargs):
+ init_db()
+ return app(*args, **kwargs)
+
if __name__ == '__main__':
_init_logging()
diff --git a/api/yardstick.ini b/api/yardstick.ini
index 2ba881fc1..d2e8956e2 100644
--- a/api/yardstick.ini
+++ b/api/yardstick.ini
@@ -9,7 +9,7 @@ threads = 5
async = true
max-requests = 5000
chmod-socket = 666
-callable = app
+callable = app_wrapper
enable-threads = true
close-on-exec = 1
daemonize= /var/log/yardstick/uwsgi.log