#!/bin/sh
set -e
TOKEN="dev-admin-token"
BASE="http://127.0.0.1:19088"
PAYLOAD='{"action":"agent.upgrade","payload":{"artifact_id":"artifact-56c16c03-1","digest":"sha256:2414d93f1ad704dd098954a5e12b5ad51431cc8563b2d51bca587a92d42661c6","key_id":"release-2026","platform":"linux/amd64","program":"friend-agent","signature":"sugqeBz1kPiF790Ens9Y189U8bbtNAtih678Kft4bOFQqmimnzdwJjEthScsAylw+E+s+dgTFqBCef9mCSLmAw==","source_url":"http://10.168.3.36:19088/artifact-content/artifact-56c16c03-1/2414d93f1ad704dd098954a5e12b5ad51431cc8563b2d51bca587a92d42661c6","version":"0.9.18"}}'
curl -sS "$BASE/api/v1/nodes" -H "Authorization: Bearer $TOKEN" | python3 -c "
import sys,json
items=json.load(sys.stdin)
if isinstance(items,dict): items=items.get('nodes',[])
for n in items:
    if n.get('agent_version')=='0.9.17':
        print(n['id'])
" > /tmp/upgrade-nodes.txt
echo "nodes to upgrade:"; cat /tmp/upgrade-nodes.txt
while read nid; do
  echo "--- $nid"
  curl -sS -X POST "$BASE/api/v1/nodes/$nid/commands" \
    -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
    -d "$PAYLOAD" | head -c 120
  echo
done < /tmp/upgrade-nodes.txt
