ssh_run
Execute a command on an acquired Labgrid place via SSH and capture its output, errors, and exit status.
Instructions
Run command over SSH on an acquired place and return its result.
Binds an ``SSHDriver`` (target.py, §11.13) and shells out via
``SSHDriver.run`` off the loop. Returns
``{"place", "stdout", "stderr", "exit_code"}`` -- labgrid returns
stdout/stderr as line LISTS, joined here with ``"\n"``. The
driver's own ``timeout=timeout_s`` is the sole enforcer of
``timeout_s``; the outer ``asyncio.wait_for`` only backstops a
wedged thread with a small grace (``timeout_s + 5.0``) so it
doesn't co-fire with the inner timeout. CAVEAT: a timeout does NOT
kill the remote command -- ``subprocess`` does not reap on
``communicate(timeout=...)``, so the underlying ``ssh`` may linger
until it finishes or the ControlMaster tears down. CAVEAT: labgrid
whitespace-splits ``command`` (``cmd.split(" ")``) with no shell
quoting, so multi-space or quoted arguments will split wrong.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| place | Yes | ||
| command | Yes | ||
| timeout_s | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||