Skip to main content

The almighty remote command executor for Unix machines

Project description

Build Status PyPI version

Talker

The almighty remote command executor for Unix machines

Basic Usage

Connecting a client to a Redis backend

In [1]: from talker.client import get_talker

In [2]: params = dict(
    host='redis.example.com',
    password='*********',
    port=8415,
    name='SomeRedisServer')

In [2]: client = get_talker(**params)

In [3]: client
Out[3]: <Talker SomeRedisServer/redis.example.com:8415>

Running a command

In [1]: cmd = client.run(host_id, 'bash', '-ce', 'echo hello')

In [2]: cmd.result()
Out[2]: 'hello\n'

Waiting for a command

In [1]: cmd = client.run(host_id, 'bash', '-ce', 'sleep 10')

In [2]: cmd.wait()
Out[2]: 0

Command timeout

In [1]: cmd = client.run(host_id, 'bash', '-ce', 'sleep 10', timeout=2)

In [2]: cmd.wait()
CommandTimeoutError: Command timed out after 2s: `bash -ce sleep 10`
    args = bash -ce sleep 10
    cmd = f812c749-bdf1-4761-bae3-a279b07c64c4
    host_id = 827605a7-791e-4c6c-8f5c-eca52d7849f5.talker-0
    hostname = talker-0
    name = `bash -ce sleep 10`
    retcode = -1
    since_started = 2.2s
    stderr =
    stdout =
    talker = <Talker SomeRedisServer/redis.example.com:8415>
    timeout = 2s
    timestamp = 2019-06-24T15:41:10.112050

Command failures

In [25]: cmd = client.run(host_id, 'bash', '-ce', 'exit 2')

In [26]: cmd.result()
CommandExecutionError: Command execution error: `bash -ce exit 2`
    args = bash -ce exit 2
    cmd = 58564019-88cd-4c1b-8067-b0dada118ac4
    host_id = 827605a7-791e-4c6c-8f5c-eca52d7849f5.talker-0
    hostname = talker-0
    name = `bash -ce exit 2`
    retcode = 2
    since_started = None
    stderr =
    stdout =
    talker = <Talker SomeRedisServer/redis.example.com:8415>
    timestamp = 2019-06-24T15:42:00.020477

Ignoring command failures

In [1]: cmd = client.run(host_id, 'bash', '-ce', 'exit 2', raise_on_failure=False)

In [2]: cmd.result()
Out[2]: ''

Logging command output while it's running

In [43]: cmd = client.run(host_id, 'bash', '-ce', 'for i in {1..5}; do date; sleep 1; done')

In [44]: cmd.log_pipe(logger=logging.getLogger(), stdout_lvl=logging.WARNING)
Mon Jun 24 15:47:43 IDT 2019
Mon Jun 24 15:47:44 IDT 2019
Mon Jun 24 15:47:45 IDT 2019
Mon Jun 24 15:47:46 IDT 2019
Mon Jun 24 15:47:47 IDT 2019

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

talker-1.9.9.tar.gz (27.8 kB view details)

Uploaded Source

File details

Details for the file talker-1.9.9.tar.gz.

File metadata

  • Download URL: talker-1.9.9.tar.gz
  • Upload date:
  • Size: 27.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.17

File hashes

Hashes for talker-1.9.9.tar.gz
Algorithm Hash digest
SHA256 244a4dc9a4e1b238ed486c41cbfc2b49c38194ce06e9fb055b043fc806517956
MD5 4e07d30d88ab441108d9da0748493e94
BLAKE2b-256 f5dc1b335e9c517b30298630a3be89825c3782d80830bbf43642eff867dec0c4

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