#!/bin/bash
# fds-0310/copia.sh <VMID> <lv>:<serial-helper> [...]   -> roda como root no sp1-sd-inovatech-4 (Storage0 e LVM compartilhado)
# Copia cada LV da VM DESLIGADA para o volume da WCI anexado no IT089947-HELPER (177.85.38.42), achado pelo serial.
set -u
VMID=$1; shift
H=177.85.38.42; K=/root/.ssh/wci-dep
N=$(pvesh get /cluster/resources --type vm --output-format json | python3 -c "import json,sys;print([x['node'] for x in json.load(sys.stdin) if x['vmid']==$VMID][0])")
st=$(pvesh get /nodes/$N/qemu/$VMID/status/current --output-format json | python3 -c "import json,sys;print(json.load(sys.stdin)['status'])")
[ "$st" = stopped ] || { echo "ABORT: VM $VMID esta '$st' (precisa stopped)"; exit 1; }
ok=0
for p in "$@"; do
  lv=${p%%:*}; ser=${p#*:}; LV=/dev/VG_Storage0/$lv
  lvchange -ay "$LV" 2>/dev/null
  echo "$(date +%T) INICIO $lv ($(blockdev --getsize64 $LV) bytes) -> virtio-$ser"
  t0=$SECONDS
  dd if="$LV" bs=4M status=none | zstd -1 -T8 -q | ssh -i $K -c aes128-gcm@openssh.com -o Compression=no \
    -o StrictHostKeyChecking=no -o BatchMode=yes -o ServerAliveInterval=30 ubuntu@$H \
    "D=/dev/disk/by-id/virtio-$ser; [ -b \$D ] || { echo DESTINO_INEXISTENTE; exit 9; }; unzstd | sudo dd of=\$D bs=4M conv=sparse status=none && sudo sync && echo DESTINO_OK"
  rc="${PIPESTATUS[*]}"; echo "$(date +%T) FIM $lv rc=[$rc] $((SECONDS-t0))s"
  [ "$rc" = "0 0 0" ] || ok=1
done
lvchange -an /dev/VG_Storage0/vm-$VMID-* 2>/dev/null
echo "$(date +%T) TODAS_AS_COPIAS_FIM status=$ok"
