From e5f7dc4ddadf7718904e61a0adb3f4ab43093ab7 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 | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

diff --git a/playbooks/tasks/include/upgrade-server.yml b/playbooks/tasks/include/upgrade-server.yml
index cae39fe1f..48b283ef7 100644
--- a/playbooks/tasks/include/upgrade-server.yml
+++ b/playbooks/tasks/include/upgrade-server.yml
@@ -24,10 +24,22 @@
       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 is changed
+        - who.stdout_lines|length > 1
   when: inventory_hostname == "gemini.archlinux.org"
 
 - name: reboot
-- 
GitLab