Merge "Adding vFW RFC2544 and ixload test cases with various packet sizes"
[yardstick.git] / yardstick / ssh.py
index bb715e4..6ddf327 100644 (file)
@@ -64,6 +64,7 @@ Eventlet:
 """
 from __future__ import absolute_import
 import os
+import io
 import select
 import socket
 import time
@@ -81,6 +82,14 @@ from yardstick.common.utils import try_int
 from yardstick.network_services.utils import provision_tool
 
 
+def convert_key_to_str(key):
+    if not isinstance(key, (paramiko.RSAKey, paramiko.DSSKey)):
+        return key
+    k = io.StringIO()
+    key.write_private_key(k)
+    return k.getvalue()
+
+
 class SSHError(Exception):
     pass
 
@@ -370,6 +379,12 @@ class SSH(object):
         with SCPClient(client.get_transport()) as scp:
             scp.put(files, remote_path, recursive)
 
+    def get(self, remote_path, local_path='/tmp/', recursive=True):
+        client = self._get_client()
+
+        with SCPClient(client.get_transport()) as scp:
+            scp.get(remote_path, local_path, recursive)
+
     # keep shell running in the background, e.g. screen
     def send_command(self, command):
         client = self._get_client()