feat: add Guacamole stale-session repair action
This commit is contained in:
@@ -893,6 +893,9 @@ watchdog/tunnel is bound
|
|||||||
only to the helper's private Docker gateway. Stop the helper before the normal
|
only to the helper's private Docker gateway. Stop the helper before the normal
|
||||||
`test-host reset`. It is a recovery interface, not a product component or a
|
`test-host reset`. It is a recovery interface, not a product component or a
|
||||||
replacement for Guest Control/native test automation.
|
replacement for Guest Control/native test automation.
|
||||||
|
The helper's `repair` action may restart only guacd when a dropped browser
|
||||||
|
leaves a stale worker holding the fixture's single VRDE slot; it must not
|
||||||
|
restart or mutate the Windows VM automatically.
|
||||||
Because Windows can power off the virtual monitor while the VM remains
|
Because Windows can power off the virtual monitor while the VM remains
|
||||||
running, `test-host prepare` must also reapply the disposable display/sleep
|
running, `test-host prepare` must also reapply the disposable display/sleep
|
||||||
keepalive and record `prepare-display-keepalive`. A zero-bpp VRDE framebuffer
|
keepalive and record `prepare-display-keepalive`. A zero-bpp VRDE framebuffer
|
||||||
|
|||||||
@@ -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
|
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.
|
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
|
The helper requires Docker/Docker Compose, `socat` for the optional public
|
||||||
dual-stack forward, SSH access through the existing `helium-remote` alias, and
|
dual-stack forward, SSH access through the existing `helium-remote` alias, and
|
||||||
the fixture password file documented in
|
the fixture password file documented in
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ usage: test/rdp-access/rdp-access ACTION [OPTIONS]
|
|||||||
Actions:
|
Actions:
|
||||||
up start a private VRDE SSH tunnel and self-signed HTTPS Guacamole
|
up start a private VRDE SSH tunnel and self-signed HTTPS Guacamole
|
||||||
status show gateway, tunnel, and fixture status without changing anything
|
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
|
url print the current browser URL
|
||||||
logs follow or print Compose logs (pass Docker Compose log options)
|
logs follow or print Compose logs (pass Docker Compose log options)
|
||||||
down stop containers and the private SSH watchdog/tunnel; retain generated state
|
down stop containers and the private SSH watchdog/tunnel; retain generated state
|
||||||
@@ -534,6 +535,16 @@ case $action in
|
|||||||
fi
|
fi
|
||||||
ipv6_forward_status
|
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)
|
url)
|
||||||
[ "$#" -eq 0 ] || { usage >&2; fail "url accepts no options"; }
|
[ "$#" -eq 0 ] || { usage >&2; fail "url accepts no options"; }
|
||||||
[ -f "$session_file" ] || fail "no saved gateway session; run up first"
|
[ -f "$session_file" ] || fail "no saved gateway session; run up first"
|
||||||
|
|||||||
Reference in New Issue
Block a user