ceph/orchestra/remote.py
Tommi Virtanen dc9aaacfb2 Add a pretty wrapper on top of Paramiko and run.run.
Most importantly right now, it knows its name, and can
prettyprint it.
2011-05-31 14:33:00 -07:00

35 lines
773 B
Python

from orchestra import run
class Remote(object):
"""
A connection to a remote host.
This is a higher-level wrapper around Paramiko's `SSHClient`.
"""
# for unit tests to hook into
_runner = run.run
def __init__(self, name, ssh, shortname=None):
self.name = name
self._shortname = shortname
self.ssh = ssh
@property
def shortname(self):
name = self._shortname
if name is None:
name = self.name
return name
def __str__(self):
return self.shortname
def run(self, **kwargs):
"""
This calls `orchestra.run.run` with our SSH client.
TODO refactor to move run.run here?
"""
return self._runner(client=self.ssh, **kwargs)