feat: add Guacamole stale-session repair action

This commit is contained in:
2026-09-14 06:50:32 +00:00
parent cbd3f40523
commit 3fdd0e2774
3 changed files with 25 additions and 0 deletions
+11
View File
@@ -149,6 +149,17 @@ VRDE server. Do not switch the helper to native Windows RDP:
unusable, stop this helper and use Guest Control for the deterministic portion
of the work; record the blocked interactive step in the native test report.
If guacd has a stale worker and the VM reports that multiple connections are
disabled, run:
```sh
test/rdp-access/rdp-access repair
```
`repair` restarts only guacd, retains the VM, SSH tunnel, gateway, and IPv6
forward, and does not alter the Windows guest. Close old browser tabs and sign
in again after it completes.
The helper requires Docker/Docker Compose, `socat` for the optional public
dual-stack forward, SSH access through the existing `helium-remote` alias, and
the fixture password file documented in
+11
View File
@@ -30,6 +30,7 @@ usage: test/rdp-access/rdp-access ACTION [OPTIONS]
Actions:
up start a private VRDE SSH tunnel and self-signed HTTPS Guacamole
status show gateway, tunnel, and fixture status without changing anything
repair restart only guacd to release a stale single-VRDE-slot worker
url print the current browser URL
logs follow or print Compose logs (pass Docker Compose log options)
down stop containers and the private SSH watchdog/tunnel; retain generated state
@@ -534,6 +535,16 @@ case $action in
fi
ipv6_forward_status
;;
repair)
[ "$#" -eq 0 ] || { usage >&2; fail "repair accepts no options"; }
docker version >/dev/null
docker compose version >/dev/null
assert_fixture_running
[ -n "$(compose ps -q guacd 2>/dev/null || true)" ] || fail "Guacamole stack is not running; run up first"
compose restart guacd >/dev/null
wait_for_gateway || fail "Guacamole gateway did not become ready after guacd repair"
printf 'guacd restarted; stale VRDE workers released. Close any old browser tab and sign in again.\n'
;;
url)
[ "$#" -eq 0 ] || { usage >&2; fail "url accepts no options"; }
[ -f "$session_file" ] || fail "no saved gateway session; run up first"