#!/usr/bin/env bash
# Phase 1 : etat du noeud, lu depuis l'interieur de la VM (lecture seule, sauf -srs 1 si Not Ready).
set -u
echo "=== capture date (UTC) ==="
date -u +%Y-%m-%dT%H:%M:%SZ
echo
echo "=== nvidia-smi conf-compute -q ==="
nvidia-smi conf-compute -q 2>&1
if nvidia-smi conf-compute -q 2>/dev/null | grep -Eq "Ready State *: *Not Ready"; then
  echo "=== CC GPUs Ready State read Not Ready: sudo nvidia-smi conf-compute -srs 1 ==="
  sudo nvidia-smi conf-compute -srs 1 2>&1
  echo "=== nvidia-smi conf-compute -q, after -srs 1 ==="
  nvidia-smi conf-compute -q 2>&1
fi
echo "=== nvidia-smi conf-compute -gm ==="
nvidia-smi conf-compute -gm 2>&1 || true
echo
echo "=== per GPU: index, name, uuid, driver, VBIOS, bus id, memory ==="
nvidia-smi --query-gpu=index,name,uuid,driver_version,vbios_version,pci.bus_id,memory.total --format=csv 2>&1
echo
echo "=== nvidia-smi topo -m ==="
nvidia-smi topo -m 2>&1
echo
echo "=== CPU, memory, kernel, TDX guest ==="
grep -m1 "model name" /proc/cpuinfo
echo "vCPU: $(nproc)"
free -g | head -2
echo "kernel: $(uname -r)"
echo "systemd-detect-virt: $(systemd-detect-virt 2>&1 || true)"
ls -l /dev/tdx_guest 2>&1
ls -d /sys/kernel/config/tsm/report 2>&1
sudo dmesg 2>/dev/null | grep -i -m3 "tdx" || true
echo
echo "=== lspci -nn | grep -i nvidia ==="
lspci -nn 2>/dev/null | grep -i nvidia
echo
echo "=== end of phase 1 ==="
