pysnap.runtime package¶
Runtime helpers for PySnap.
Submodules¶
pysnap.runtime.sessions module¶
Persistent session registry used by terminal connections.
- class pysnap.runtime.sessions.SessionRecord(vm_name, serial_port, pid, attached_at, control_port=None, control_token=None)[source]¶
Bases:
objectRepresent one live terminal session.
- Parameters:
control_port (int | None) – Local TCP port of the session control channel, used by
pysnap report extractwhile the session is attached.control_token (str | None) – Secret that a control request must present.
vm_name (str)
serial_port (int)
pid (int)
attached_at (str)
- vm_name: str¶
- serial_port: int¶
- pid: int¶
- attached_at: str¶
- control_port: int | None = None¶
- control_token: str | None = None¶
- class pysnap.runtime.sessions.SessionRegistry(root_dir=None)[source]¶
Bases:
objectStore terminal session metadata in a temp-directory registry.
- Parameters:
root_dir (Path | None)
- WINDOWS_PROCESS_QUERY_LIMITED_INFORMATION = 4096¶
- WINDOWS_STILL_ACTIVE = 259¶
- WINDOWS_ERROR_ACCESS_DENIED = 5¶
- list_live_sessions()[source]¶
Return live session records keyed by VM name.
- Returns:
Live session records.
- Return type:
dict[str, SessionRecord]
- get_live_session(vm_name)[source]¶
Return one live session for the specified VM.
- Parameters:
vm_name (str) – VM name to inspect.
- Returns:
Live session record or
None.- Return type:
SessionRecord | None
- register(vm_name, serial_port, control_port=None, control_token=None)[source]¶
Register a session for the duration of a context manager.
The record is readable only by the current user because it may hold the control-channel secret.
- Parameters:
vm_name (str) – VM name.
serial_port (int) – Attached serial TCP port.
control_port (int | None) – Optional local control-channel port.
control_token (str | None) – Optional control-channel secret.
- Yields:
Persisted session record.
- Return type:
Iterator[SessionRecord]