remote_session - Remote Session ABC
SSH remote session.
- class CommandResult
Bases:
objectThe result of remote execution of a command.
- name
The name of the session that executed the command.
- Type:
str
- command
The executed command.
- Type:
str
- stdout
The standard output the command produced.
- Type:
str
- stderr
The standard error output the command produced.
- Type:
str
- return_code
The return code the command exited with.
- Type:
int
- __init__(name: str, command: str, init_stdout: dataclasses.InitVar[str], init_stderr: dataclasses.InitVar[str], return_code: int) None
- class RemoteSession
Bases:
objectNon-interactive remote session.
The connection is implemented with the Fabric Python library.
- name
The name of the session.
- Type:
str
- hostname
The node’s hostname. Could be an IP (possibly with port, separated by a colon) or a domain name.
- Type:
str
- ip
The IP address of the node or a domain name, whichever was used in hostname.
- Type:
str
- port
The port of the node, if given in hostname.
- Type:
int | None
- username
The username used in the connection.
- Type:
str
- password
The password used in the connection. Most frequently empty, as the use of passwords is discouraged.
- Type:
str
- history
The executed commands during this session.
- session
The underlying Fabric SSH session.
- Type:
fabric.Connection
- __init__(node_config: NodeConfiguration, session_name: str, logger: DTSLogger) None
Connect to the node during initialization.
- Parameters:
node_config (NodeConfiguration) – The test run configuration of the node to connect to.
session_name (str) – The name of the session.
logger (DTSLogger) – The logger instance this session will use.
- Raises:
SSHConnectionError – If the connection to the node was not successful.
- send_command(command: str, timeout: float = 15, verify: bool = False, env: dict | None = None) CommandResult
Send command to the connected node.
The
--timeoutcommand line argument and theDTS_TIMEOUTenvironment variable configure the timeout of command execution.- Parameters:
command (str) – The command to execute.
timeout (float) – Wait at most this long in seconds for command execution to complete.
verify (bool) – If
True, will check the exit code of command.env (dict | None) – A dictionary with environment variables to be used with command execution.
- Raises:
SSHSessionDeadError – If the session isn’t alive when sending command.
SSHTimeoutError – If command execution timed out.
RemoteCommandExecutionError – If verify is
Trueand command execution failed.
- Returns:
The output of the command along with the return code.
- Return type:
- is_alive() bool
Check whether the remote session is still responding.
- copy_from(source_file: str | pathlib.PurePath, destination_dir: str | pathlib.Path) None
Copy a file from the remote Node to the local filesystem.
Copy source_file from the remote Node associated with this remote session to destination_dir on the local filesystem.
- Parameters:
source_file (str | pathlib.PurePath) – The file on the remote Node.
destination_dir (str | pathlib.Path) – The directory path on the local filesystem where the source_file will be saved.
- copy_to(source_file: str | pathlib.Path, destination_dir: str | pathlib.PurePath) None
Copy a file from local filesystem to the remote Node.
Copy source_file from local filesystem to destination_dir on the remote Node associated with this remote session.
- Parameters:
source_file (str | pathlib.Path) – The file on the local filesystem.
destination_dir (str | pathlib.PurePath) – The directory path on the remote Node where the source_file will be saved.
- close() None
Close the remote session and free all used resources.