From fc1389e8b130b4b03cfda6a4e8cce2db85523e13 Mon Sep 17 00:00:00 2001
From: Patrick Jentsch
Date: Fri, 22 Apr 2022 16:36:12 +0200
Subject: [PATCH] Change the scaling logic and switch back to the socketio web
server
---
.env.tpl | 8 ++++----
app/corpora/routes.py | 2 --
boot.sh | 27 +++++++++++----------------
config.py | 4 ++--
docker-compose.development.yml | 2 --
docker-compose.scale.yml | 2 +-
nopaque.py | 10 +++++++++-
requirements.txt | 1 -
8 files changed, 27 insertions(+), 29 deletions(-)
diff --git a/.env.tpl b/.env.tpl
index 07db6275..ff483e97 100644
--- a/.env.tpl
+++ b/.env.tpl
@@ -108,14 +108,14 @@ NOPAQUE_ADMIN=
# Swarm nodes
# NOPAQUE_DATA_DIR=
-# CHOOSE ONE: False, True
-# DEFAULT: True
-# NOPAQUE_DAEMON_ENABLED=
-
# NOTE: Get these from the nopaque development team
NOPAQUE_DOCKER_REGISTRY_USERNAME=
NOPAQUE_DOCKER_REGISTRY_PASSWORD=
+# CHOOSE ONE: False, True
+# DEFAULT: True
+# NOPAQUE_IS_PRIMARY_INSTANCE=
+
# transport://[userid:password]@hostname[:port]/[virtual_host]
NOPAQUE_SOCKETIO_MESSAGE_QUEUE_URI=
diff --git a/app/corpora/routes.py b/app/corpora/routes.py
index b6bf2d01..3a3c76e3 100644
--- a/app/corpora/routes.py
+++ b/app/corpora/routes.py
@@ -125,8 +125,6 @@ def import_corpus():
db.session.add(corpus_file)
db.session.flush(objects=[corpus_file])
db.session.refresh(corpus)
- current_app.logger.warning(vrt_file)
- current_app.logger.warning(corpus_file.path)
try:
shutil.copy2(vrt_file, corpus_file.path)
except Exception as e:
diff --git a/boot.sh b/boot.sh
index 6cd26836..68765e62 100755
--- a/boot.sh
+++ b/boot.sh
@@ -1,26 +1,21 @@
#!/bin/bash
source venv/bin/activate
if [[ "${#}" -eq 0 ]]; then
- while true; do
- echo "INFO Run deployment tasks..."
- flask deploy
- if [[ "${?}" == "0" ]]; then
- break
- fi
- echo "WARNING ...Failed, retrying in 5 secs..."
- sleep 5
- done
- if [[ "${NOPAQUE_DAEMON_ENABLED:-True}" == "True" ]]; then
+ if [[ "${NOPAQUE_IS_PRIMARY_INSTANCE:-True}" == "True" ]]; then
+ while true; do
+ echo "INFO Run deployment tasks..."
+ flask deploy
+ if [[ "${?}" == "0" ]]; then
+ break
+ fi
+ echo "WARNING ...Failed, retrying in 5 secs..."
+ sleep 5
+ done
echo "INFO Start nopaque daemon..."
flask daemon run &
fi
echo "INFO Start nopaque..."
- gunicorn \
- --error-logfile - \
- $([ "${ENABLE_GUNICORN_RELOAD:-False}" == "True" ] && echo "--reload") \
- --worker-class eventlet \
- -b :5000 \
- -w 1 nopaque:app
+ python nopaque.py
elif [[ "${1}" == "flask" ]]; then
exec ${@:1}
else
diff --git a/config.py b/config.py
index 07ec1d78..d8d12fa7 100644
--- a/config.py
+++ b/config.py
@@ -47,8 +47,8 @@ class Config:
''' # nopaque # '''
NOPAQUE_ADMIN = os.environ.get('NOPAQUE_ADMIN')
- NOPAQUE_DAEMON_ENABLED = \
- os.environ.get('NOPAQUE_DAEMON_ENABLED', 'true').lower() == 'true'
+ NOPAQUE_IS_PRIMARY_INSTANCE = \
+ os.environ.get('NOPAQUE_IS_PRIMARY_INSTANCE', 'true').lower() == 'true'
NOPAQUE_DATA_DIR = \
os.path.abspath(os.environ.get('NOPAQUE_DATA_DIR', '/mnt/nopaque'))
NOPAQUE_DOCKER_REGISTRY = 'gitlab.ub.uni-bielefeld.de:4567'
diff --git a/docker-compose.development.yml b/docker-compose.development.yml
index 7192dd78..564eae38 100644
--- a/docker-compose.development.yml
+++ b/docker-compose.development.yml
@@ -2,8 +2,6 @@ version: "3.5"
services:
nopaque:
- environment:
- - ENABLE_GUNICORN_RELOAD=True
ports:
- "5000:5000"
volumes:
diff --git a/docker-compose.scale.yml b/docker-compose.scale.yml
index f13b3550..bc9154fc 100644
--- a/docker-compose.scale.yml
+++ b/docker-compose.scale.yml
@@ -3,4 +3,4 @@ version: "3.5"
services:
nopaque:
environment:
- - NOPAQUE_DAEMON_ENABLED=False
+ - NOPAQUE_IS_PRIMARY_INSTANCE=False
diff --git a/nopaque.py b/nopaque.py
index 0f2d0d2a..8eb4d3bb 100644
--- a/nopaque.py
+++ b/nopaque.py
@@ -3,7 +3,7 @@
import eventlet
eventlet.monkey_patch()
-from app import db, cli, create_app # noqa
+from app import db, cli, create_app, socketio # noqa
from app.models import (
Corpus,
CorpusFile,
@@ -46,3 +46,11 @@ def make_shell_context() -> Dict[str, Any]:
'TranskribusHTRModel': TranskribusHTRModel,
'User': User
}
+
+
+def main():
+ socketio.run(app, host='0.0.0.0')
+
+
+if __name__ == '__main__':
+ main()
\ No newline at end of file
diff --git a/requirements.txt b/requirements.txt
index 038611ce..60a4aaf0 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -14,7 +14,6 @@ Flask-RESTX
Flask-SocketIO~=5.1
Flask-SQLAlchemy
Flask-WTF
-gunicorn
hiredis
jsonschema
MarkupSafe==2.0.1