gioser

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

TOML 1184Shell 70Rust 62Markdown 501503 Definitions

granja: el reaper dropea de .fleet los workers que ya no existen en hcloud

Sin esto un server borrado se quedaba en .fleet para siempre (describe falla ⇒
'sin label' ⇒ nunca se dropeaba). Ahora si no existe en hcloud, se saca.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

be06314336a4c11d51968470f62ba06f1c503a9a · by sergio · (3 months ago) · parent 1203f86cd · browse the tree at this commit

Semantic delta

No definition changed: this change is text, documentation or data.

1 files · +5 −0

diff --git a/scripts/farm/cosecha-cron.sh b/scripts/farm/cosecha-cron.sh
index 16a1a95f..f84f61f1 100755
--- a/scripts/farm/cosecha-cron.sh
+++ b/scripts/farm/cosecha-cron.sh
@@ -91,6 +91,11 @@ if [ -s "$FLEET" ] && command -v hcloud >/dev/null 2>&1; then
   while read -r name ip; do
     [ -n "${name:-}" ] || continue
     strike_f="$ROOT/work/.reaper/$name"
+    # ¿el server siquiera existe? Si ya no está en hcloud (borrado a mano o por un ciclo previo),
+    # NO cuesta € y no debe quedar en .fleet para siempre. Se dropea (no entra a `sobreviven`).
+    if ! hcloud server describe "$name" -o format='{{.Name}}' >/dev/null 2>&1; then
+      echo "==> reaper: $name ya no existe en hcloud ⇒ lo saco de .fleet"; rm -f "$strike_f"; continue
+    fi
     if $SSH root@"$ip" 'pgrep -f "hammer build|campana-deuda|farm-worker-loop" >/dev/null 2>&1'; then
       echo 0 > "$strike_f"; sobreviven="${sobreviven}${name} ${ip}
 "; continue