import json
import pathlib
import subprocess
import time

root = pathlib.Path(__file__).parent
probe = pathlib.Path('/workspace/contextra-analytics-runtime-lifecycle-refactor/tools/icerti_offline/artifact_lifecycle_probe.py').read_text().split("if __name__=='__main__':")[0]
ssh = ['ssh','-T','-p','1022','-i','/root/.ssh/ltb1021_contextra_icerti2_si_ed25519','-o','BatchMode=yes','-o','StrictHostKeyChecking=yes','-o','UserKnownHostsFile=/root/.ssh/contextra_icerti2_known_hosts','-o','ConnectTimeout=8','si@58.233.207.31']
start = time.time()
clock = time.monotonic()
rows = []
for index in range(37):
    delay = clock + index*5 - time.monotonic()
    if delay > 0:
        time.sleep(delay)
    code = probe + '\nr=sample('+repr(start)+')\n'
    code += "\nfor row in r['claims']: row.pop('claim_token',None)\nfor row in r['channels']:\n row.pop('render_token',None)\n row.pop('send_token',None)\n"
    code += "print(json.dumps(r))\n"
    p = subprocess.run(ssh+['docker exec -i contextra-ai2-analytics-1 python3 -B -'],input=code,text=True,capture_output=True,timeout=15)
    if p.returncode:
        raise RuntimeError('Read-only sample failed: '+p.stderr[-300:])
    rows.append(json.loads(p.stdout))
    (root/'baseline-lifecycle.json').write_text(json.dumps({'startedAt':start,'elapsed':time.monotonic()-clock,'samples':rows},indent=2))
print(json.dumps({'samples':len(rows),'elapsed':time.monotonic()-clock,'recent':rows[-1]['recent']}))
