about summary refs log tree commit diff
diff options
context:
space:
mode:
authorPjotr Prins2018-01-29 15:10:09 +0000
committerPjotr Prins2018-01-29 15:10:09 +0000
commit85819dbeaf922456dc205e482e7e338952945d9b (patch)
treea8649fb42df66660a871d2aabf41163ffec4a06a
parentb3724d60d2e50dd19e61140406aa85dff981ac16 (diff)
downloadgenenetwork2-85819dbeaf922456dc205e482e7e338952945d9b.tar.gz
Gunicorn works
-rwxr-xr-xbin/genenetwork228
-rw-r--r--etc/default_settings.py2
-rw-r--r--wqflask/gunicorn/__init__.py0
-rw-r--r--wqflask/gunicorn/genenetwork2.py10
-rw-r--r--wqflask/gunicorn/wsgi.py5
-rw-r--r--wqflask/run_gunicorn.py19
-rw-r--r--wqflask/runserver.py2
-rw-r--r--wqflask/wsgi.py4
8 files changed, 44 insertions, 26 deletions
diff --git a/bin/genenetwork2 b/bin/genenetwork2
index f32c76eb..f6ae3807 100755
--- a/bin/genenetwork2
+++ b/bin/genenetwork2
@@ -31,7 +31,7 @@
 #
 #   env GN2_PROFILE=~/opt/gn-latest-guix ./bin/genenetwork2 ./etc/default_settings.py -gunicorn "--bind 0.0.0.0:8000 --workers=2 --chdir wqflask/gunicorn/ wsgi"
 
-SCRIPT=$(readlink -f "$0")
+SCRIPT=$(realpath "$0")
 GN2_BASE_DIR=$(dirname $(dirname "$SCRIPT"))
 GN2_ID=$(cat /etc/hostname):$(basename $GN2_BASE_DIR)
 
@@ -50,15 +50,25 @@ else
 fi
 echo GN_VERSION=$GN_VERSION
 
+if [ "$1" = "-c" -o "$1" = "-gunicorn" ]; then
+    echo "Can not use $1 switch without default settings file"
+    exit 1
+fi
 # Handle settings parameter (can be .py or .json)
-settings=$1
-ext="${settings##*.}"
-if [ -z "$settings" -o "$ext" = "json" -o "$ext" = "JSON" ]; then
-    overrides=$settings
+settings=$(realpath "$1")
+if [ ! -e $settings ]; then
     settings=$GN2_BASE_DIR/etc/default_settings.py
 else
     shift
 fi
+
+ext="${settings##*.}"
+if [ "$ext" = "json" -o "$ext" = "JSON" ]; then
+    overrides=$settings
+else
+    echo $settings
+fi
+
 if [ ! -e $settings ]; then
     echo "ERROR: can not locate settings file - pass it in the command line"
     exit 1
@@ -132,12 +142,12 @@ if [ "$1" = '-c' ] ; then
     exit 0
 fi
 if [ "$1" = '-gunicorn' ] ; then
-    cd $GN2_BASE_DIR
-    cmd=${2}
+    cd $GN2_BASE_DIR/wqflask
+    cmd=$2
     echo PYTHONPATH=$PYTHONPATH
-    echo RUNNING COMMAND gunicorn $cmd
+    echo RUNNING gunicorn $cmd
     gunicorn $cmd
-    exit 0
+    exit $?
 fi
 
 echo "Starting the redis server:"
diff --git a/etc/default_settings.py b/etc/default_settings.py
index 59e22f1a..699d21f1 100644
--- a/etc/default_settings.py
+++ b/etc/default_settings.py
@@ -27,7 +27,7 @@ import sys
 GN_VERSION = open("../etc/VERSION","r").read()
 SQL_URI = "mysql://gn2:mysql_password@localhost/db_webqtl_s"
 SQL_ALCHEMY_POOL_RECYCLE = 3600
-GN_SERVER_URL = "http://localhost:8880/"
+GN_SERVER_URL = "http://localhost:8880/" # REST API server
 
 # ---- Flask configuration (see website)
 TRAP_BAD_REQUEST_ERRORS = True
diff --git a/wqflask/gunicorn/__init__.py b/wqflask/gunicorn/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/wqflask/gunicorn/__init__.py
+++ /dev/null
diff --git a/wqflask/gunicorn/genenetwork2.py b/wqflask/gunicorn/genenetwork2.py
deleted file mode 100644
index afbdc934..00000000
--- a/wqflask/gunicorn/genenetwork2.py
+++ /dev/null
@@ -1,10 +0,0 @@
-from flask import Flask
-application = Flask(__name__)
-
-@application.route("/")
-def hello():
-    return "<h1 style='color:blue'>Hello There!</h1>"
-
-if __name__ == "__main__":
-    application.run(host='0.0.0.0')
-
diff --git a/wqflask/gunicorn/wsgi.py b/wqflask/gunicorn/wsgi.py
deleted file mode 100644
index 8c14ee6b..00000000
--- a/wqflask/gunicorn/wsgi.py
+++ /dev/null
@@ -1,5 +0,0 @@
-from genenetwork2 import application
-
-if __name__ == "__main__":
-    application.run()
-
diff --git a/wqflask/run_gunicorn.py b/wqflask/run_gunicorn.py
new file mode 100644
index 00000000..14a2d689
--- /dev/null
+++ b/wqflask/run_gunicorn.py
@@ -0,0 +1,19 @@
+# Run with gunicorn, see ./bin/genenetwork2 for an example
+#
+# Run standalone with
+#
+#   ./bin/genenetwork2 ./etc/default_settings.py -c run_gunicorn.py
+
+# from flask import Flask
+# application = Flask(__name__)
+
+print "Starting up Gunicorn process"
+
+from wqflask import app
+
+@app.route("/gunicorn")
+def hello():
+    return "<h1 style='color:blue'>Hello There!</h1>"
+
+if __name__ == "__main__":
+    app.run(host='0.0.0.0')
diff --git a/wqflask/runserver.py b/wqflask/runserver.py
index e62e34f2..a0c76e51 100644
--- a/wqflask/runserver.py
+++ b/wqflask/runserver.py
@@ -1,6 +1,6 @@
 # Starts the webserver with the ./bin/genenetwork2 command
 #
-# This uses Werkzeug WSGI, see gunicorn.py for the alternative
+# This uses Werkzeug WSGI, see ./run_gunicorn.py for the alternative
 #
 # Please note, running with host set externally below combined with
 # debug mode is a security risk unless you have a firewall setup, e.g.
diff --git a/wqflask/wsgi.py b/wqflask/wsgi.py
new file mode 100644
index 00000000..be9c7b37
--- /dev/null
+++ b/wqflask/wsgi.py
@@ -0,0 +1,4 @@
+from run_gunicorn import app as application # expect application as a name
+
+if __name__ == "__main__":
+    application.run()