diff options
author | Ross Brattain <ross.b.brattain@intel.com> | 2016-11-29 13:24:54 -0800 |
---|---|---|
committer | Ross Brattain <ross.b.brattain@intel.com> | 2016-11-29 13:30:24 -0800 |
commit | bcb8ace09d7ebb80d2430bceb8fbfa0ce71959a9 (patch) | |
tree | ce709e266bad1f47f1d649ffa8d955ac2a36f35c | |
parent | 893294646833bed300586ee36040d4fde3c20842 (diff) |
fix SSH object examples to use correct context manager form
change PseudoFile example to use io.RawIOBase baseclass
Change-Id: Ib5e3c844a0514274e5098061beb0ee6f8af97977
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
-rw-r--r-- | yardstick/ssh.py | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/yardstick/ssh.py b/yardstick/ssh.py index 8b71fe606..d6ecffcb9 100644 --- a/yardstick/ssh.py +++ b/yardstick/ssh.py @@ -29,24 +29,29 @@ Execute command and get output: Execute command with huge output: - class PseudoFile(object): + class PseudoFile(io.RawIOBase): def write(chunk): if "error" in chunk: email_admin(chunk) - ssh = sshclient.SSH("root", "example.com") - ssh.run("tail -f /var/log/syslog", stdout=PseudoFile(), timeout=False) + ssh = SSH("root", "example.com") + with PseudoFile() as p: + ssh.run("tail -f /var/log/syslog", stdout=p, timeout=False) Execute local script on remote side: ssh = sshclient.SSH("user", "example.com") - status, out, err = ssh.execute("/bin/sh -s arg1 arg2", - stdin=open("~/myscript.sh", "r")) + + with open("~/myscript.sh", "r") as stdin_file: + status, out, err = ssh.execute('/bin/sh -s "arg1" "arg2"', + stdin=stdin_file) Upload file: - ssh = sshclient.SSH("user", "example.com") - ssh.run("cat > ~/upload/file.gz", stdin=open("/store/file.gz", "rb")) + ssh = SSH("user", "example.com") + # use rb for binary files + with open("/store/file.gz", "rb") as stdin_file: + ssh.run("cat > ~/upload/file.gz", stdin=stdin_file) Eventlet: @@ -54,7 +59,7 @@ Eventlet: or eventlet.monkey_patch() or - sshclient = eventlet.import_patched("opentstack.common.sshclient") + sshclient = eventlet.import_patched("yardstick.ssh") """ |