#!/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:d41e25b6a966fc98749a05bb7a81ff9ed426f355f1361fe36f22f4c54259dd57","key_id":"release-2026","platform":"linux/amd64","program":"friend-agent","signature":"TJNFbXr6RGn0kS72JnqpaiMWgGJ2NVhkqTgYhUz1Ih1SiEE6KHsIkgNvuSuWBnhdSwlufV6FZTVpLyGUbh9eAg==","source_url":"http://10.168.3.36:19088/artifact-content/artifact-56c16c03-1/d41e25b6a966fc98749a05bb7a81ff9ed426f355f1361fe36f22f4c54259dd57","version":"0.9.17"}}'
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.16':
        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
