24 lines
815 B
Bash
Executable file
24 lines
815 B
Bash
Executable file
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
shopt -s nullglob
|
|
|
|
for info in state/vm-*/info; do
|
|
id="$(awk -F= '$1=="id"{print $2}' "$info")"
|
|
name="$(awk -F= '$1=="name"{print $2}' "$info")"
|
|
created_at="$(awk -F= '$1=="created_at"{print $2}' "$info")"
|
|
guest_ip="$(awk -F= '$1=="guest_ip"{print $2}' "$info")"
|
|
pid="$(awk -F= '$1=="pid"{print $2}' "$info")"
|
|
tap="$(awk -F= '$1=="tap"{print $2}' "$info")"
|
|
api_sock="$(awk -F= '$1=="api_sock"{print $2}' "$info")"
|
|
|
|
status="stale"
|
|
if [[ -n "$pid" && -n "$api_sock" ]]; then
|
|
if ps -p "$pid" -o comm=,args= 2>/dev/null | rg -q "firecracker.*--api-sock $api_sock"; then
|
|
status="running"
|
|
fi
|
|
fi
|
|
|
|
printf 'status=%s id=%s name=%s created_at=%s guest_ip=%s pid=%s tap=%s\n' \
|
|
"$status" "$id" "$name" "$created_at" "$guest_ip" "$pid" "$tap"
|
|
done
|