#!/bin/bash
MANAGER="http://127.0.0.1:19088"
TOKEN="dev-admin-token"
DIGEST="cf768b4720ba1333cb7d03636e33a12d4c014d47024ffe34eecdcdd2b9b84a65"
SIGNATURE="RNRRVES4NLjcBXdC7F7BwL3F50XN/0SdUlrlKfMgCJGlrpBC5BogT3QUwcdq50Yf9XZSYF5XqKsSAAZ8XD1EAA=="

echo "=== 触发测试实例 agent.upgrade ==="
curl -sS -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d "{\"action\":\"agent.upgrade\",\"payload\":{\"program\":\"friend-agent\",\"version\":\"0.9.11\",\"source_url\":\"http://10.200.0.10:19088/artifact-content/artifact-56c16c03-1/$DIGEST\",\"digest\":\"sha256:$DIGEST\",\"signature\":\"$SIGNATURE\",\"key_id\":\"release-2026\"}}" \
  "$MANAGER/api/v1/instances/friend-4f864178/commands" 2>/dev/null
echo ""

echo "等待升级完成..."
sleep 45

echo "=== 命令状态 ==="
python3 << 'PYEOF'
import sqlite3
conn = sqlite3.connect("/opt/friend-cluster/data/friend-cluster-v1.db")
cur = conn.cursor()
cur.execute("SELECT id,action,status,result FROM commands WHERE instance_id='friend-4f864178' AND action LIKE '%upgrade%' ORDER BY created_at DESC LIMIT 3")
for r in cur.fetchall(): print("CMD:", r)
conn.close()
PYEOF

echo ""
echo "=== 测试实例状态 ==="
curl -sS -H "Authorization: Bearer $TOKEN" "$MANAGER/api/v1/instances/friend-4f864178" 2>/dev/null | python3 -c "
import json,sys
d=json.load(sys.stdin)
inst=d.get('instance',d)
print('process_state:', inst.get('process_state',''))
print('health_state:', inst.get('health_state',''))
print('config_state:', inst.get('config_state',''))
print('last_error:', inst.get('last_error','')[:300])
"

echo ""
echo "=== test agent logs ==="
docker logs --tail 10 friend-deploy-f67b3ed2-e3c 2>&1 | tail -10
