#!/bin/bash
# 验证新 controller 镜像是否真正生效：检查容器内 friend-agent 版本行为与最新实例容器环境变量
echo "=== 1. 最新 friend-deploy 实例容器 ==="
NAME=$(docker ps -a --format '{{.Names}} {{.CreatedAt}}' | grep friend-deploy | sort -k2 | tail -1 | awk '{print $1}')
echo "TARGET=$NAME"
docker inspect "$NAME" --format '{{.CreatedAt}}'
echo "--- 实例容器 env 中 TRUST 相关 ---"
docker inspect "$NAME" --format '{{range .Config.Env}}{{println .}}{{end}}' | grep -i TRUST || echo NO_TRUST_ENV

echo ""
echo "=== 2. controller 容器镜像创建时间（确认是否新镜像）==="
CT=$(docker ps --format '{{.Names}}' | grep friend-controller | head -1)
docker inspect "$CT" --format 'IMAGE={{.Image}} CREATED={{.Created}}'
docker images friend-cluster-controller:real --format '{{.ID}} {{.CreatedAt}}'

echo ""
echo "=== 3. 从 controller 容器提取 friend-agent 二进制验证字符串 ==="
docker cp "$CT":/usr/local/bin/friend-agent /tmp/ct-friend-agent 2>/dev/null && echo COPY_OK || echo COPY_FAIL
if [ -f /tmp/ct-friend-agent ]; then
  strings /tmp/ct-friend-agent | grep -c "FRIEND_ARTIFACT_TRUST_KEY" && echo HAS_TRUST_KEY_STR || true
  strings /tmp/ct-friend-agent | grep -c "FRIEND_ARTIFACT_TRUST_ROOT" && echo HAS_TRUST_ROOT_STR || true
fi

echo ""
echo "=== 4. manager 数据库中最新的实例 allocation spec ==="
sqlite3 /opt/friend-cluster/data/friend-cluster-v1.db "SELECT id, substr(spec_json, instr(spec_json,'TRUST'), 80) FROM allocations ORDER BY updated_at DESC LIMIT 3" 2>/dev/null || python3 -c "
import sqlite3
conn = sqlite3.connect('/opt/friend-cluster/data/friend-cluster-v1.db')
cur = conn.cursor()
cur.execute('SELECT id, spec_json FROM allocations ORDER BY updated_at DESC LIMIT 3')
for aid, spec in cur.fetchall():
    idx = spec.find('TRUST')
    print(aid, '|', spec[idx:idx+90] if idx>=0 else 'NO_TRUST_IN_SPEC')
"
echo DONE
