#!/bin/bash
set -e
BASE=http://10.168.3.36:19088
AUTH="Authorization: Bearer dev-admin-token"

echo "=== 1. 列出 controller deployments ==="
CDEPS=$(curl -sS -H "$AUTH" $BASE/api/v1/controller-deployments)
echo "$CDEPS" | python3 -c "
import sys,json
ds=json.load(sys.stdin)
if isinstance(ds,dict): ds=ds.get('deployments',ds.get('items',[]))
for d in ds:
    print(d.get('id'),'|',d.get('name'),'|',d.get('image'),'|',d.get('replicas'))
"
CDID=$(echo "$CDEPS" | python3 -c "
import sys,json
ds=json.load(sys.stdin)
if isinstance(ds,dict): ds=ds.get('deployments',ds.get('items',[]))
print(ds[0]['id'] if ds else '')")
echo "ROLL_TARGET=$CDID"
[ -z "$CDID" ] && { echo NO_CONTROLLER_DEPLOY; exit 1; }

echo "=== 2. 触发 roll（刷新 allocation spec，注入最新 trust key）==="
IMG=$(echo "$CDEPS" | python3 -c "
import sys,json
ds=json.load(sys.stdin)
if isinstance(ds,dict): ds=ds.get('deployments',ds.get('items',[]))
print(ds[0].get('image','friend-cluster-controller:real'))")
curl -sS -X POST -H "$AUTH" -H "Content-Type: application/json" \
  -d "{\"image\":\"$IMG\"}" \
  "$BASE/api/v1/controller-deployments/$CDID/roll" | head -c 400
echo
echo "=== 3. 等待新 controller 容器就绪 ==="
sleep 20
for i in $(seq 1 15); do
  ST=$(docker ps --format '{{.Names}} {{.Status}}' | grep friend-controller || true)
  echo "[$i] $ST"
  echo "$ST" | grep -q "Up" && break
  sleep 8
done

echo "=== 4. 验证新 controller 是否带 FRIEND_ARTIFACT_TRUST_KEY 环境变量 ==="
NEW=$(docker ps --format '{{.Names}}' | grep friend-controller | head -1)
docker inspect "$NEW" --format '{{range .Config.Env}}{{println .}}{{end}}' | grep -i TRUST || echo "ENV_NOT_SET_YET(可能由runtime注入而非容器env)"
echo DONE
