Skip to main content

Robot Framework keyword library for deterministic remote command execution and SFTP file transfer via SSH.

Project description

robotframework-okw-remote-ssh

Standalone Robot Framework library for deterministic, synchronous remote interaction via SSH.

Session-based command execution, structured verification (stdout, stderr, exit code, duration), and SFTP file transfer. Designed for CI pipelines, infrastructure validation, and cross-platform automation (Linux, macOS, Windows with OpenSSH).

Features

  • Session-based SSH connections via Paramiko
  • Strict separation of execution and verification
  • Three match modes: EXACT, WCM (wildcard: *, ?), REGX (regex)
  • SFTP file transfer: upload, download, verify, clear, remove (files and directories)
  • OKW token support: $IGNORE (skip), $EMPTY (assert empty)
  • Value expansion: $MEM{KEY} placeholders across all parameters
  • No GUI coupling, no dependency on OKW Core

Installation

pip install robotframework-okw-remote-ssh

Quick Start

*** Settings ***
Library    robotframework_okw_remote_ssh

*** Variables ***
${IGNORE}    $IGNORE

*** Test Cases ***
Execute Remote Command And Verify
    Open Remote Session    myhost    my_server
    Set Remote             myhost    echo Hello
    Verify Remote Response    myhost    Hello
    Verify Remote Stderr   myhost
    Verify Remote Exit Code    myhost    0
    Close Remote Session   myhost

Session Configuration

Sessions are configured via YAML files in ~/.okw/configs/ (or a custom config directory).

Example ~/.okw/configs/my_server.yaml:

host: 10.0.0.1
port: 22
username: testuser

Passwords and keys are stored separately in ~/.okw/secrets.yaml (never in the repository).

Keywords

Session Lifecycle

Keyword Description
Open Remote Session Opens a named SSH session using a YAML config reference
Close Remote Session Closes the session and releases all resources

Execution

Keyword Description
Set Remote Executes a command via SSH. FAIL on exit_code != 0
Set Remote And Continue Executes a command. Never fails on nonzero exit code

Verification -- stdout

Keyword Description
Verify Remote Response EXACT match on stdout
Verify Remote Response WCM Wildcard match on stdout (* = any chars, ? = one char)
Verify Remote Response REGX Regex match on stdout

Verification -- stderr

Keyword Default Description
Verify Remote Stderr $EMPTY EXACT match on stderr. Without argument: asserts empty
Verify Remote Stderr WCM $EMPTY Wildcard match on stderr
Verify Remote Stderr REGX $EMPTY Regex match on stderr

Verification -- exit code / duration

Keyword Description
Verify Remote Exit Code Numeric exact compare
Verify Remote Duration Expression check: >, >=, <, <=, ==, range a..b

Memorize

Keyword Description
Memorize Remote Response Field Stores a response field (stdout, stderr, exit_code, duration_ms) in $MEM{KEY} for later use

File Transfer -- Upload / Download

Keyword Description
Put Remote File Uploads a file via SFTP
Get Remote File Downloads a file via SFTP
Put Remote Directory Recursively uploads a directory via SFTP
Get Remote Directory Recursively downloads a directory via SFTP

File Transfer -- Verify

Keyword Default Description
Verify Remote File Exists YES Asserts file exists (YES) or does not exist (NO)
Verify Remote Directory Exists YES Asserts directory exists (YES) or does not exist (NO)

The expected parameter accepts YES/NO, TRUE/FALSE, or 1/0 (case-insensitive).

File Transfer -- Clear

Keyword Description
Clear Remote Directory Deletes files in the directory (not in subdirectories), keeps directory structure
Clear Remote Directory Recursively Deletes all files recursively, keeps entire directory tree

File Transfer -- Remove (idempotent)

All remove keywords are idempotent: if the target does not exist, they return PASS.

Keyword Description
Remove Remote File Removes a single file
Remove Remote Directory Removes an empty directory
Remove Remote Directory Recursively Removes a directory and all its contents

OKW Token Support

Token Behavior
$IGNORE Keyword becomes a no-op (PASS). Execution/verification/transfer is skipped.
$EMPTY For verify keywords: asserts that the checked field is empty.

License

AGPL-3.0-or-later. See LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

robotframework_okw_remote_ssh-0.2.0.tar.gz (29.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

robotframework_okw_remote_ssh-0.2.0-py3-none-any.whl (27.7 kB view details)

Uploaded Python 3

File details

Details for the file robotframework_okw_remote_ssh-0.2.0.tar.gz.

File metadata

File hashes

Hashes for robotframework_okw_remote_ssh-0.2.0.tar.gz
Algorithm Hash digest
SHA256 8219f0a1c49a0640bed3d52ca0798ee82a5deb27880dea6f6c97cb59999b385a
MD5 d283b86d95527a3dcbd4183630884e88
BLAKE2b-256 fbbb1b52157faf897e5a8e9bb2344a36615d8d598e8e8da0bdb62c24e7b8b961

See more details on using hashes here.

File details

Details for the file robotframework_okw_remote_ssh-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for robotframework_okw_remote_ssh-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 66abb87a01ab7d335c4a876e36137da7e63e4f26eeb95790ea5f74dea7ae382e
MD5 2826221da5cf8e3152260486304fe009
BLAKE2b-256 a4d8b363f96e52d0c2c86777c40238f19816e02c3121b97c6dd259452e2d0f1b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page