From 29a46f89c16f4626a605e1d39ae926f6ffaf8db7 Mon Sep 17 00:00:00 2001
From: Robin Sonnabend <robin@fsmpi.rwth-aachen.de>
Date: Fri, 13 Aug 2021 01:16:29 +0200
Subject: [PATCH] Add uwsgi-python app schrank-flask

---
 uwsgi-python/tasks/apps/schrank-flask.yml    | 40 ++++++++++++++++++++
 uwsgi-python/templates/apps/schrank-flask.j2 |  8 ++++
 uwsgi-python/vars/schrank-flask.yml          | 17 +++++++++
 3 files changed, 65 insertions(+)
 create mode 100644 uwsgi-python/tasks/apps/schrank-flask.yml
 create mode 100644 uwsgi-python/templates/apps/schrank-flask.j2
 create mode 100644 uwsgi-python/vars/schrank-flask.yml

diff --git a/uwsgi-python/tasks/apps/schrank-flask.yml b/uwsgi-python/tasks/apps/schrank-flask.yml
new file mode 100644
index 0000000..0b8e762
--- /dev/null
+++ b/uwsgi-python/tasks/apps/schrank-flask.yml
@@ -0,0 +1,40 @@
+---
+
+# https://github.com/ansible/ansible/issues/42983
+- name: ensure there exists a .ansible folder
+  file:
+    path: "{{app_path}}/.ansible"
+    state: directory
+    owner: "{{app_user}}"
+    group: "{{app_group}}"
+
+- name: install pdf utils
+  apt:
+    name: poppler-utils
+    state: present
+
+- name: ensure data model upgrades are applied  # noqa 301
+  command: "{{app_venv}}/bin/flask db upgrade"
+  args:
+    chdir: "{{app_path}}"
+  environment:
+    FLASK_APP: "{{app_program}}"
+  become: true
+  become_user: "{{app_user}}"
+  notify:
+    - "restart uwsgi instance {{app.instance}}"
+
+- name: ensure there a directory for the documents
+  file:
+    path: "{{schrank_document_path}}"
+    state: directory
+    owner: "{{app_user}}"
+    group: "{{schrank_document_group}}"
+    mode: "{{schrank_document_permissions}}"
+  notify:
+    - "restart uwsgi instance {{app.instance}}"
+
+- name: ensure the folder from above is not present anymore
+  file:
+    path: "{{app_path}}/.ansible"
+    state: absent
diff --git a/uwsgi-python/templates/apps/schrank-flask.j2 b/uwsgi-python/templates/apps/schrank-flask.j2
new file mode 100644
index 0000000..2110a92
--- /dev/null
+++ b/uwsgi-python/templates/apps/schrank-flask.j2
@@ -0,0 +1,8 @@
+from secret_config import secret_key as SECRET_KEY
+
+SQLALCHEMY_DATABASE_URI = "postgresql://{{ app_user }}:@/{{ app_db_name }}"
+SQLALCHEMY_TRACK_MODIFICATIONS = False
+
+DOCUMENT_PATH = "{{schrank_document_path}}"
+SSO_URL = "{{schrank_sso_url}}"
+SSO_GROUP = "{{schrank_sso_group}}"
diff --git a/uwsgi-python/vars/schrank-flask.yml b/uwsgi-python/vars/schrank-flask.yml
new file mode 100644
index 0000000..ff17cca
--- /dev/null
+++ b/uwsgi-python/vars/schrank-flask.yml
@@ -0,0 +1,17 @@
+---
+
+app_name: schrank-flask
+app_user: schrankweb
+app_group: schrankweb
+app_program: server.py
+
+app_db_name: schrank
+app_db_type: postgres
+
+app_git_url: "git@git.fsmpi.rwth-aachen.de:fachschaft/schrank-web-flask.git"
+
+schrank_document_path: "{{app_path}}/documents"
+schrank_document_group: schrank
+schrank_document_permissions: "2750"
+schrank_sso_url: "https://sso.fsmpi.rwth-aachen.de/"
+schrank_sso_group: "fachschaft"
-- 
GitLab