Skip to main content
Help us improve PyPI by participating in user testing. All experience levels needed!

A remote process launcher.

Project description

Build Status Coverage Status Code Climate Issue Count Documentation Status

yassh

Yassh is a python library used to run asynchronous, dependent remote and local tasks.

Usage

import logging
from yassh import Reactor, RemoteRun, RemoteConfiguration, LocalRun

logging.basicConfig(level=logging.DEBUG)

# Create a remote ; only host parameter is mandatory
remote = RemoteConfiguration(host='localhost', username='user')

# ssh_config(5) options can be set in RemoteConfiguration object
remote.set('Compression', 'yes')
remote.set('CompressionLevel', '9')

r = Reactor()
c1 = RemoteRun(r, remote, 'sleep 5')
c2 = LocalRun(r, 'echo ok')
c3 = RemoteRun(r, remote, 'echo "finished" && sleep 1')


def start_c2(run):
    # Start cmd2 when cmd1 complete successfully
    if run.result == 0:
        c2.start()
c1.register_exit_monitor(start_c2)


def start_c3(run):
    # Start cmd3 when cmd2 complete
    c3.start()
c2.register_monitor(u'ok', start_c3)


def on_c3_finished(run):
    # Print dummy message when c3 is near terminaison
    print('c3 almost finished')
c3.register_monitor(u'finished', on_c3_finished)


# Start first task
c1.start()


# Infinite
timeout = -1
while r.run(timeout) > 0:
        pass

Installation

To install latest release:

pip install yassh

To install latest code:

pip install git+https://github.com/enyx-opensource/yassh.git

Testing

Run from project root:

behave

License

MIT License (see LICENSE)

Project details


Release history Release notifications

This version
History Node

2.0.0

History Node

1.0.1

History Node

1.0.0

History Node

0.8.2

History Node

0.8.1

History Node

0.5.7

History Node

0.5.6

History Node

0.5.4

History Node

0.5.2

History Node

0.5.1

History Node

0.5.0b1

History Node

0.4.1b1

History Node

0.4.0b1

History Node

0.2.0b1

History Node

0.1.0b3

History Node

0.1.0b2

History Node

0.1.0b1

Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
yassh-2.0.0-py2.py3-none-any.whl (10.4 kB) Copy SHA256 hash SHA256 Wheel py2.py3 Mar 7, 2018
yassh-2.0.0.tar.gz (6.0 kB) Copy SHA256 hash SHA256 Source None Mar 7, 2018

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page