From 91a5c54d4ad83ebb4505f50fe4ecbf5fbfbce2c1 Mon Sep 17 00:00:00 2001
From: Evangelos Foutras <evangelos@foutrelis.com>
Date: Sun, 22 Aug 2021 23:03:15 +0300
Subject: [PATCH] Do not reboot gemini if there are logged on users

This is done to avoid killing db-update and related processes.
---
 playbooks/tasks/include/upgrade-server.yml | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/playbooks/tasks/include/upgrade-server.yml b/playbooks/tasks/include/upgrade-server.yml
index cae39fe1f..d3b2135d5 100644
--- a/playbooks/tasks/include/upgrade-server.yml
+++ b/playbooks/tasks/include/upgrade-server.yml
@@ -24,10 +24,20 @@
       when: pgrep_systemd_nspawn is succeeded
   when: "'buildservers' in group_names"
 
-- name: wait for svntogit to finish
-  wait_for:
-    path: /srv/svntogit/update-repos.sh.lock
-    state: absent
+- name: gemini pre-reboot checks
+  block:
+    - name: wait for svntogit to finish
+      wait_for:
+        path: /srv/svntogit/update-repos.sh.lock
+        state: absent
+
+    - name: list logged on users
+      command: who
+      register: who
+
+    - name: abort reboot with logged on users
+      meta: end_host
+      when: who.stdout_lines|length > 1
   when: inventory_hostname == "gemini.archlinux.org"
 
 - name: reboot
-- 
GitLab