From f9eb5ab940204041e035e113cf6898a5cb87179d Mon Sep 17 00:00:00 2001
From: Hinrikus Wolf <hinrikus@fsmpi.rwth-aachen.de>
Date: Sat, 29 Oct 2022 19:47:12 +0200
Subject: [PATCH] update alumnigraphi system

---
 uwsgi-python/handlers/main.yml                |  7 ++++++-
 uwsgi-python/tasks/apps/alumnigraph.yml       | 19 +++++++++++++++++++
 .../apps/alumnigraph-celery.service.j2        | 14 ++++++++++++++
 uwsgi-python/templates/apps/alumnigraph.j2    |  1 +
 uwsgi-python/vars/alumnigraph.yml             |  3 +++
 5 files changed, 43 insertions(+), 1 deletion(-)
 create mode 100644 uwsgi-python/templates/apps/alumnigraph-celery.service.j2

diff --git a/uwsgi-python/handlers/main.yml b/uwsgi-python/handlers/main.yml
index 28c6b49..90c3d24 100644
--- a/uwsgi-python/handlers/main.yml
+++ b/uwsgi-python/handlers/main.yml
@@ -93,8 +93,13 @@
 - name: restart uwsgi instance vampir-mitglieder
   service: name="uwsgi@vampir-mitglieder" state=restarted
 
-- name: restart uwsgi instance alumnigraph
+- name: restart uwsgi instance alumnigraph uwsgi
   service: name="uwsgi@alumnigraph" state=restarted
+  listen: "restart uwsgi instance alumnigraph"
+
+- name: restart uwsgi instance alumnigraph celery
+  service: name="alumnigraph-celery" state=restarted
+  listen: "restart uwsgi instance alumnigraph"
 
 - name: restart uwsgi instance ak-tracker
   service: name="uwsgi@ak-tracker" state=restarted
diff --git a/uwsgi-python/tasks/apps/alumnigraph.yml b/uwsgi-python/tasks/apps/alumnigraph.yml
index a3ec7ee..29bae3c 100644
--- a/uwsgi-python/tasks/apps/alumnigraph.yml
+++ b/uwsgi-python/tasks/apps/alumnigraph.yml
@@ -19,6 +19,25 @@
   notify:
     - "restart uwsgi instance {{app.instance}}"
 
+- name: ensure the celery unit file exists
+  template:
+    src: apps/alumnigraph-celery.service.j2
+    dest: "/etc/systemd/system/{{ app_name }}-celery.service"
+    owner: root
+    group: root
+    mode: '0644'
+  notify:
+    - reload systemd service files
+    - "restart uwsgi instance {{app.instance}}"
+
+- meta: flush_handlers
+
+- name: ensure the celery service is enabled
+  service:
+    name: "{{app_name}}-celery"
+    enabled: true
+    state: started
+
 - name: ensure the folder from above is not present anymore
   file:
     path: "{{app_path}}/.ansible"
diff --git a/uwsgi-python/templates/apps/alumnigraph-celery.service.j2 b/uwsgi-python/templates/apps/alumnigraph-celery.service.j2
new file mode 100644
index 0000000..5d0fc68
--- /dev/null
+++ b/uwsgi-python/templates/apps/alumnigraph-celery.service.j2
@@ -0,0 +1,14 @@
+[Unit]
+Description={{ app_name }}-Celery
+After=network.target
+
+[Service]
+User={{ app_user }}
+Group={{ app_group }}
+WorkingDirectory={{ app_path }}
+Environment=VIRTUAL_ENV="{{ app_path }}"
+ExecStart={{ app_venv }}/bin/celery -A server.celery worker --loglevel=DEBUG --concurrency={{ alumni_graph_celery_concurrency }}
+Restart=always
+
+[Install]
+WantedBy=multi-user.target
diff --git a/uwsgi-python/templates/apps/alumnigraph.j2 b/uwsgi-python/templates/apps/alumnigraph.j2
index 31ba5f4..01938be 100644
--- a/uwsgi-python/templates/apps/alumnigraph.j2
+++ b/uwsgi-python/templates/apps/alumnigraph.j2
@@ -23,3 +23,4 @@ SEND_INVITATIONS = {{ alumni_graph_send_invitation }}
 SENTRY_URL = "{{ alumni_graph_sentry_url }}"
 BABEL_DEFAULT_LOCALE = "DE"
 
+CELERY_BROKER_URL = {{ alumni_graph_celery_broker }}
diff --git a/uwsgi-python/vars/alumnigraph.yml b/uwsgi-python/vars/alumnigraph.yml
index 330e513..c648103 100644
--- a/uwsgi-python/vars/alumnigraph.yml
+++ b/uwsgi-python/vars/alumnigraph.yml
@@ -47,3 +47,6 @@ alumni_graph_sentry_url: ""
 # Do not define if there is no authentication needed
 # alumni_graph_mail_user: None
 # alumni_graph_mail_pass: None
+#
+alumni_graph_celery_broker: '"redis://localhost:6379/2"'
+alumni_graph_celery_concurrency: 2
-- 
GitLab