From 7330ca48cf52572026ef90fb957e705d4ca4eeab Mon Sep 17 00:00:00 2001
From: Patrik Holmqvist <pahol@sunet.se>
Date: Thu, 16 Jan 2025 10:31:41 +0100
Subject: [PATCH] Add more pre tasks to eumd-common, SC-2522

---
 .../overlay/opt/mdqp/pre.d/00-daily-clean     | 14 ++++++++
 .../overlay/opt/mdqp/pre.d/20-restart-pyff    | 34 +++++++++++++++++++
 2 files changed, 48 insertions(+)
 create mode 100755 eumd-common/overlay/opt/mdqp/pre.d/00-daily-clean
 create mode 100755 eumd-common/overlay/opt/mdqp/pre.d/20-restart-pyff

diff --git a/eumd-common/overlay/opt/mdqp/pre.d/00-daily-clean b/eumd-common/overlay/opt/mdqp/pre.d/00-daily-clean
new file mode 100755
index 00000000..ff5402bb
--- /dev/null
+++ b/eumd-common/overlay/opt/mdqp/pre.d/00-daily-clean
@@ -0,0 +1,14 @@
+#!/usr/bin/env bash
+
+set -e
+
+sync_file="/opt/mdqp/work/full_sync"
+if [ -f ${sync_file} ]; then
+
+    if [ "$(date -r ${sync_file} +%Y-%m-%d)" != "$(date +%Y-%m-%d)" ]; then
+        rm "${sync_file}"
+    fi
+fi
+
+
+
diff --git a/eumd-common/overlay/opt/mdqp/pre.d/20-restart-pyff b/eumd-common/overlay/opt/mdqp/pre.d/20-restart-pyff
new file mode 100755
index 00000000..22acc7ef
--- /dev/null
+++ b/eumd-common/overlay/opt/mdqp/pre.d/20-restart-pyff
@@ -0,0 +1,34 @@
+#!/usr/bin/env bash
+
+set -e
+
+metadata_dir="/opt/mdqp/work/incoming_metadata/"
+entities_on_disk=$(find ${metadata_dir} -type f -printf "%f\n" |sort |uniq | wc -l)
+
+systemctl restart sunet-pyff.service
+
+# Pyff is never faster then 20 sec. Prevent exceptions in log by not trying
+# earlier.
+sleep 25
+
+# Give pyff some time to start
+happy_pyff=0
+for try in {1..30}; do
+    entitites=$(curl -s 'localhost:8080/api/status' | jq .store.size 2> /dev/null || echo 0)
+    if [ -n "${entitites}" ] && [ "${entitites}" != "0" ]; then
+        loaded_entites_in_percent=$(python3 -c "print(int(${entitites} / ${entities_on_disk} * 100))")
+        if [ "${loaded_entites_in_percent}" -ge "96" ]; then
+            happy_pyff=200
+            break
+        fi
+    fi
+    sleep "${try}";
+done
+
+if [ "${happy_pyff}" != "200" ]; then
+    echo "couldn't restart pyff - exit"
+    exit 1
+fi
+
+# Hängslen och livrem
+sleep 10