Files
felhom.eu/documentation/audits/linetest-2026-10-27/tools/dooplex_qb.sh
T
admin acd79a78cc
gates / gates (push) Successful in 2m29s
Release block 2026-10-27: hub 0.173.0, agent 0.167.0, controller 0.346.0 released; R-1250 fixed the same day and proven; ten rows closed, R-1312 opened
- audits/linetest-2026-10-27/: the hold failed four times as built (qBittorrent drains ~14 s), the fix 710ceac, the test
  through the hold on 0.346.0-rc.1 (94.5 Mbit/s, the limit back exactly), teardown.
- audits/release-2026-10-27/: builds, agent release + signed updates, per-box and global floors, box walk.
- 09 §3 decisions 269 (R-1250 fix the same day) and 270 (R-1218 live proof waived); D55's window result in 268.
- 08 §: the drain-wait design line. STATUS, CONTEXT, register (223 -> 214).
2026-10-27 15:45:59 +01:00

26 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
# dooplex_qb.sh add|status|remove — R-1250 live test (2026-10-27) only: DooPlex's qBittorrent as the DOWNLOAD-ONLY peer.
# add: the torrent saved to the pod's /tmp/r1250 (never a media folder), its download capped at 375000 B/s (3 Mbit/s,
# above the agent's 2 Mbit/s quiet line), the seed's address given as its peer. remove: the torrent AND its data.
set -u
H=8828f12fe7899fa6a8a1c4994c26f11ae19eb6fa; TOR=$(dirname "$0")/../p8ev/r1250.torrent
P=$(sudo kubectl -n servarr-system get pod -l app=qbittorrent -o name | head -1); P=${P#pod/}
x(){ sudo kubectl -n servarr-system exec "$P" -- "$@"; }
B=http://127.0.0.1:8080/api/v2
case "$1" in
add)
sudo kubectl -n servarr-system cp "$TOR" "$P:/tmp/r1250.torrent" >/dev/null
x curl -s -F torrents=@/tmp/r1250.torrent -F savepath=/tmp/r1250 -F dlLimit=375000 -F category=cc-r1250 $B/torrents/add; echo
sleep 3
x curl -s --data "hashes=$H&limit=375000" $B/torrents/setDownloadLimit; x curl -s --data "hashes=$H&value=0" $B/torrents/setShareLimits >/dev/null 2>&1
x curl -s --data "hashes=$H&peers=192.168.0.155:6881" $B/torrents/addPeers; echo
x rm -f /tmp/r1250.torrent ;;
status)
x curl -s "$B/torrents/info?hashes=$H" | python3 -c 'import json,sys
for t in json.load(sys.stdin): print(t["name"], t["state"], "%.1f%%" % (t["progress"]*100), "dl %.2f Mbit/s" % (t["dlspeed"]*8/1e6), "limit", t["dl_limit"], "seeds", t["num_seeds"], "save", t["save_path"])' ;;
remove)
x curl -s --data "hashes=$H&deleteFiles=true" $B/torrents/delete; sleep 3
echo "left in the list: $(x curl -s "$B/torrents/info?hashes=$H")"; echo "left on disk: $(x sh -c 'ls -la /tmp/r1250 2>&1 | head -3')"
x curl -s "$B/torrents/categories" | grep -q cc-r1250 && x curl -s --data "categories=cc-r1250" $B/torrents/removeCategories; echo "categories: $(x curl -s $B/torrents/categories | head -c 200)" ;;
esac