vdi-cloud/docs/evidence/ubuntu-deep-latency-20261105/run-drag.py

34 lines
1.6 KiB
Python

"""Local SSH harness; uses existing credential helper without copying credentials."""
import json
import sys
import tempfile
import time
from pathlib import Path
sys.path.insert(0, tempfile.gettempdir())
from vdi_ubuntu_remote import ROOT, box, guest, password, run
g, b = guest(), box()
env = 'DISPLAY=:0 XAUTHORITY=/run/user/1000/gdm/Xauthority XDG_RUNTIME_DIR=/run/user/1000 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus '
try:
s = g.open_sftp()
s.put(str(ROOT/'docs/evidence/ubuntu-drag-20261105/drag-source.py'), '/tmp/vdi-ubuntu-drag-source.py')
s.close()
i, o, e = g.exec_command('sudo -S -p "" loginctl unlock-sessions')
i.write(password()+'\n'); i.flush(); i.channel.shutdown_write()
assert o.channel.recv_exit_status() == 0, e.read().decode()
print(run(b, 'DISPLAY=:0 XAUTHORITY=/home/armbian/.Xauthority xdotool key Escape'))
print(run(g, env+'systemd-run --user --unit=vdi-deep-drag --collect /usr/bin/python3 /tmp/vdi-ubuntu-drag-source.py'))
time.sleep(4)
s = b.open_sftp()
s.put(str(ROOT/'docs/evidence/ubuntu-drag-20261105/drag-probe.py'), '/tmp/vdi-deep-drag-probe.py')
s.close()
result = run(b, 'python3 /tmp/vdi-deep-drag-probe.py', 30)
print(result['err'])
assert result['rc'] == 0, result
d = json.loads(result['out'])
(Path(__file__).parent/(sys.argv[1]+'.json')).write_text(json.dumps(d, indent=2), encoding='utf-8')
print({k: v for k, v in d.items() if k != 'frames'})
finally:
print(run(g, 'XDG_RUNTIME_DIR=/run/user/1000 systemctl --user stop vdi-deep-drag'))
g.close(); b.close()