Files
pxe-server/tests/vm/status.sh
cproudlock bcd91b488a Offline install that lands fully patched: resolve against the ISO's own base
- autoinstall: dead mirror + fallback offline-install, so the installed
  base is exactly the ISO's; late-commands run offline-apt-install.sh on
  CIDATA packages/ (local apt repo, one transaction, errors fail the
  install, log /var/log/offline-apt-install.log); first boot no longer
  runs dpkg -i; real archive sources written back at the end.
- download-packages.sh --iso: unpacks the ISO's default install source
  into a docker image (pxe-iso-base:<version>) and downloads there: all
  updates of the base, the explicit list (zip included) and the newest
  pool packages with their closure; writes Packages + explicit.list and
  checks the set offline in a fresh base container (--network none).
- offline-apt-install.sh: new; also used by that check (--simulate).
- build-usb.sh: ships Packages, explicit.list and the script; refuses a
  set without them.
- tests/vm: pxetest-client-nosb (Secure Boot off, e1000e, SATA), one
  client at a time.
2026-10-15 10:59:30 -04:00

40 lines
1.7 KiB
Bash
Executable File

#!/bin/bash
# Show the state of every pxetest-* object, the isolation check, the NIC
# MACs, the server's GE-side DHCP lease, and optionally a screenshot.
# Usage: tests/vm/status.sh [--shot DIR]
source "$(dirname "$0")/common.sh"
SHOT_DIR=""
[ "${1:-}" = "--shot" ] && SHOT_DIR="${2:?--shot needs a dir}"
if ! net_exists "$IMAGING_NET"; then n=absent; elif net_active "$IMAGING_NET"; then n=active; else n=inactive; fi
echo "network $IMAGING_NET: $n"
if net_active "$IMAGING_NET"; then
(assert_imaging_isolated && echo " isolation: OK (no forward, no ip, no host IPv4, only vnet ports)")
fi
for v in "$SERVER_DISK_VOL" "$USB_VOL" "$CLIENT_DISK_VOL" "$CLIENT2_DISK_VOL"; do
if vol_exists "$v"; then
echo "volume $v: $(virsh vol-info --pool "$POOL" "$v" | awk '/Capacity|Allocation/{printf "%s %s %s ", $1, $2, $3}')"
else
echo "volume $v: absent"
fi
done
for vm in "$SERVER_VM" "$CLIENT_VM" "$CLIENT2_VM"; do
if dom_exists "$vm"; then
echo "domain $vm: $(dom_state "$vm")"
virsh domiflist "$vm" | tail -n +3 | grep -v '^$' | sed 's/^/ /'
if [ "$(dom_state "$vm")" = "running" ]; then
echo " VNC $(virsh vncdisplay "$vm" 2>/dev/null | head -1)"
if [ -n "$SHOT_DIR" ]; then
mkdir -p "$SHOT_DIR"
f="$SHOT_DIR/$vm-$(date +%H%M%S).ppm"
virsh screenshot "$vm" "$f" >/dev/null 2>&1 && echo " screenshot $f"
fi
fi
else
echo "domain $vm: absent"
fi
done
echo "GE-side DHCP leases for $SERVER_GE_MAC (on $GE_NET):"
virsh net-dhcp-leases "$GE_NET" --mac "$SERVER_GE_MAC" 2>/dev/null | tail -n +3 | grep -v '^$' | sed 's/^/ /' || true