Reviewed-on: #26 Reviewed-by: xuxt <xuxt@zgclab.edu.cn> Reviewed-by: huhy <husteryezi@163.com> Reviewed-by: sundapeng <sundp@mail.zgclab.edu.cn>
61 lines
2.3 KiB
Bash
Executable File
61 lines
2.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
TEST_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
REPO_ROOT="$(cd "$TEST_ROOT/.." && pwd)"
|
|
VERIFY_SCRIPT="$REPO_ROOT/scripts/agent_deployment_verify.sh"
|
|
ENV_NODE_ID_FILE="$TEST_ROOT/tmp/node_id_host_abc"
|
|
PRIMARY_CONTAINER="argus-agent-e2e"
|
|
ENV_CONTAINER="argus-agent-env-e2e"
|
|
PRIMARY_HOSTNAME="dev-e2euser-e2einst-pod-0"
|
|
ENV_HOSTNAME="host_abc"
|
|
|
|
if ! docker ps --format '{{.Names}}' | grep -q "^${PRIMARY_CONTAINER}$"; then
|
|
echo "[WARN] agent container not running; skip verification"
|
|
exit 0
|
|
fi
|
|
|
|
if docker exec -i "$PRIMARY_CONTAINER" bash -lc 'command -v curl >/dev/null && command -v jq >/dev/null'; then
|
|
echo "[INFO] curl/jq already installed in agent container"
|
|
else
|
|
echo "[INFO] Installing curl/jq in agent container"
|
|
docker exec -i "$PRIMARY_CONTAINER" bash -lc 'apt-get update >/dev/null 2>&1 && apt-get install -y curl jq >/dev/null 2>&1' || true
|
|
fi
|
|
|
|
if [[ ! -f "$VERIFY_SCRIPT" ]]; then
|
|
echo "[ERROR] Verification script missing at $VERIFY_SCRIPT" >&2
|
|
exit 1
|
|
fi
|
|
|
|
run_verifier() {
|
|
local container="$1" hostname="$2"
|
|
|
|
if ! docker ps --format '{{.Names}}' | grep -q "^${container}$"; then
|
|
echo "[WARN] container $container not running; skip"
|
|
return
|
|
fi
|
|
|
|
if ! docker exec -i "$container" bash -lc 'command -v /usr/local/bin/agent_deployment_verify.sh >/dev/null'; then
|
|
echo "[ERROR] /usr/local/bin/agent_deployment_verify.sh missing in $container" >&2
|
|
exit 1
|
|
fi
|
|
|
|
echo "[INFO] Running verification for $hostname in $container"
|
|
docker exec -i "$container" env VERIFY_HOSTNAME="$hostname" /usr/local/bin/agent_deployment_verify.sh
|
|
}
|
|
|
|
run_verifier "$PRIMARY_CONTAINER" "$PRIMARY_HOSTNAME"
|
|
|
|
if docker ps --format '{{.Names}}' | grep -q "^${ENV_CONTAINER}$"; then
|
|
if docker exec -i "$ENV_CONTAINER" bash -lc 'command -v curl >/dev/null && command -v jq >/dev/null'; then
|
|
echo "[INFO] curl/jq already installed in env agent container"
|
|
else
|
|
echo "[INFO] Installing curl/jq in env agent container"
|
|
docker exec -i "$ENV_CONTAINER" bash -lc 'apt-get update >/dev/null 2>&1 && apt-get install -y curl jq >/dev/null 2>&1' || true
|
|
fi
|
|
run_verifier "$ENV_CONTAINER" "$ENV_HOSTNAME"
|
|
else
|
|
echo "[WARN] env-driven agent container not running; skip secondary verification"
|
|
fi
|