#!/bin/bash
# Watches for v2v outputs ready; then triggers upload.
V2V_OUT=/NFS01/migrate/v2v-sante-acessos-20260618-214203
BOOT=$V2V_OUT/SANTE-WINT-ACESSOS-boot-sda
DATA=$V2V_OUT/SANTE-WINT-ACESSOS-data.qcow2
LOG=/NFS01/migrate/logs/watch-sante.log
echo "=== $(date) watcher started ===" > "$LOG"
while true; do
  # Both files must exist
  if [ -f "$BOOT" ] && [ -f "$DATA" ]; then
    # Check if both sizes are stable over 30s = done
    S1B=$(stat -c%s "$BOOT" 2>/dev/null)
    S1D=$(stat -c%s "$DATA" 2>/dev/null)
    sleep 30
    S2B=$(stat -c%s "$BOOT" 2>/dev/null)
    S2D=$(stat -c%s "$DATA" 2>/dev/null)
    # Check that no virt-v2v or qemu-img procs left holding files
    LIVE=$(pgrep -c "virt-v2v\|qemu-img" 2>/dev/null || echo 0)
    echo "$(date) boot $S1B->$S2B data $S1D->$S2D live=$LIVE" >> "$LOG"
    if [ "$S1B" = "$S2B" ] && [ "$S1D" = "$S2D" ] && [ "$LIVE" = "0" ]; then
      echo "$(date) STABLE — dispatching upload" >> "$LOG"
      bash /NFS01/migrate/run-sante-upload.sh SANTE-WINT-ACESSOS >> "$LOG" 2>&1
      echo "$(date) upload done exit=$?" >> "$LOG"
      break
    fi
  else
    echo "$(date) waiting: boot=$( [ -f $BOOT ] && echo y || echo n) data=$( [ -f $DATA ] && echo y || echo n)" >> "$LOG"
    sleep 30
  fi
done
