[#2] master模块开发测试
This commit is contained in:
41
src/master/tests/scripts/07_stats_single_node.sh
Executable file
41
src/master/tests/scripts/07_stats_single_node.sh
Executable file
@@ -0,0 +1,41 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
TEST_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||
PRIVATE_ROOT="$TEST_ROOT/private"
|
||||
TMP_ROOT="$TEST_ROOT/tmp"
|
||||
API_BASE="http://localhost:31300/api/v1/master"
|
||||
NODE_ID="$(cat "$TMP_ROOT/node_id")"
|
||||
|
||||
sleep 7
|
||||
|
||||
detail_file="$TMP_ROOT/offline_detail.json"
|
||||
curl -sS "$API_BASE/nodes/$NODE_ID" -o "$detail_file"
|
||||
python3 - "$detail_file" <<'PY'
|
||||
import json, sys
|
||||
with open(sys.argv[1]) as handle:
|
||||
node = json.load(handle)
|
||||
assert node["status"] == "offline", f"Expected offline, got {node['status']}"
|
||||
PY
|
||||
|
||||
stats_file="$TMP_ROOT/stats.json"
|
||||
curl -sS "$API_BASE/nodes/statistics" -o "$stats_file"
|
||||
python3 - "$stats_file" <<'PY'
|
||||
import json, sys
|
||||
with open(sys.argv[1]) as handle:
|
||||
stats = json.load(handle)
|
||||
assert stats["total"] == 1
|
||||
found = {item["status"]: item["count"] for item in stats["status_statistics"]}
|
||||
assert found.get("offline") == 1
|
||||
PY
|
||||
|
||||
nodes_json_path="$PRIVATE_ROOT/argus/metric/prometheus/nodes.json"
|
||||
python3 - "$nodes_json_path" <<'PY'
|
||||
import json, sys
|
||||
with open(sys.argv[1]) as handle:
|
||||
content = json.load(handle)
|
||||
assert content == [], content
|
||||
PY
|
||||
|
||||
echo "[INFO] Offline transition and statistics validated"
|
||||
Reference in New Issue
Block a user