#!/usr/bin/env bash set -euo pipefail URI="qemu:///system" IMGROOT="/var/lib/libvirt/images" LABDIR="$IMGROOT/lab" usage() { echo "Usage: kvm-lab-destroy " } NAME="${1:-}" [[ -n "$NAME" ]] || { usage; exit 1; } DISK="${LABDIR}/${NAME}.qcow2" # Domain cleanup (best-effort) if virsh -c "$URI" dominfo "$NAME" &>/dev/null; then state="$(virsh -c "$URI" domstate "$NAME" 2>/dev/null || true)" if [[ "$state" == *running* ]]; then virsh -c "$URI" shutdown "$NAME" >/dev/null 2>&1 || true sleep 1 virsh -c "$URI" destroy "$NAME" >/dev/null 2>&1 || true else virsh -c "$URI" destroy "$NAME" >/dev/null 2>&1 || true fi virsh -c "$URI" undefine "$NAME" --nvram >/dev/null 2>&1 || \ virsh -c "$URI" undefine "$NAME" >/dev/null 2>&1 || true else echo "WARN: Domain not found: $NAME" fi # Disk cleanup if [[ -e "$DISK" ]]; then echo "Removing disk: $DISK" sudo rm -f "$DISK" else echo "WARN: Disk not found: $DISK" fi echo "OK: Destroyed lab '$NAME'."