2026-07-17 12:29:40 +08:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
set -euo pipefail
|
|
|
|
|
|
|
|
|
|
NODE_FILE=${NODE_FILE:-/etc/guanghu/node.json}
|
|
|
|
|
REPO_DIR=${REPO_DIR:-/opt/guanghu/fifth-domain}
|
|
|
|
|
HEALTH_URL=${HEALTH_URL:-http://127.0.0.1:3911/health}
|
2026-07-17 12:34:41 +08:00
|
|
|
HEALTH_RETRIES=${HEALTH_RETRIES:-20}
|
|
|
|
|
HEALTH_RETRY_DELAY=${HEALTH_RETRY_DELAY:-1}
|
2026-07-17 12:29:40 +08:00
|
|
|
|
|
|
|
|
node_id=$(jq -r '.node_id' "$NODE_FILE")
|
|
|
|
|
service_state=$(systemctl is-active guanghu-gatekeeper.service)
|
2026-07-17 12:34:41 +08:00
|
|
|
health=
|
|
|
|
|
for ((attempt = 1; attempt <= HEALTH_RETRIES; attempt++)); do
|
|
|
|
|
if health=$(curl -fsS "$HEALTH_URL" 2>/dev/null); then
|
|
|
|
|
break
|
|
|
|
|
fi
|
|
|
|
|
sleep "$HEALTH_RETRY_DELAY"
|
|
|
|
|
done
|
|
|
|
|
[[ -n $health ]] || { echo "Gatekeeper health endpoint unavailable after ${HEALTH_RETRIES} attempts" >&2; exit 1; }
|
2026-07-17 12:29:40 +08:00
|
|
|
commit=$(git -C "$REPO_DIR" rev-parse --short HEAD)
|
|
|
|
|
disk_used=$(df --output=pcent / | tail -1 | tr -d ' ')
|
|
|
|
|
|
|
|
|
|
jq -n \
|
|
|
|
|
--arg node_id "$node_id" \
|
|
|
|
|
--arg service "$service_state" \
|
|
|
|
|
--arg commit "$commit" \
|
|
|
|
|
--arg disk_used "$disk_used" \
|
|
|
|
|
--argjson gatekeeper "$health" \
|
|
|
|
|
'{ok:true,node_id:$node_id,service:$service,repo_commit:$commit,disk_used:$disk_used,gatekeeper:$gatekeeper}'
|