Code Review
/
yardstick.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Add support for Storperf job status
[yardstick.git]
/
yardstick
/
ssh.py
diff --git
a/yardstick/ssh.py
b/yardstick/ssh.py
index
339f834
..
8b71fe6
100644
(file)
--- a/
yardstick/ssh.py
+++ b/
yardstick/ssh.py
@@
-69,6
+69,8
@@
import logging
LOG = logging.getLogger(__name__)
LOG = logging.getLogger(__name__)
+DEFAULT_PORT = 22
+
class SSHError(Exception):
pass
class SSHError(Exception):
pass
@@
-81,7
+83,7
@@
class SSHTimeout(SSHError):
class SSH(object):
"""Represent ssh connection."""
class SSH(object):
"""Represent ssh connection."""
- def __init__(self, user, host, port=
22
, pkey=None,
+ def __init__(self, user, host, port=
DEFAULT_PORT
, pkey=None,
key_filename=None, password=None):
"""Initialize SSH client.
key_filename=None, password=None):
"""Initialize SSH client.
@@
-95,7
+97,8
@@
class SSH(object):
self.user = user
self.host = host
self.user = user
self.host = host
- self.port = port
+ # we may get text port from YAML, convert to int
+ self.port = int(port)
self.pkey = self._get_pkey(pkey) if pkey else None
self.password = password
self.key_filename = key_filename
self.pkey = self._get_pkey(pkey) if pkey else None
self.password = password
self.key_filename = key_filename
@@
-121,7
+124,9
@@
class SSH(object):
self._client.connect(self.host, username=self.user,
port=self.port, pkey=self.pkey,
key_filename=self.key_filename,
self._client.connect(self.host, username=self.user,
port=self.port, pkey=self.pkey,
key_filename=self.key_filename,
- password=self.password, timeout=1)
+ password=self.password,
+ allow_agent=False, look_for_keys=False,
+ timeout=1)
return self._client
except Exception as e:
message = ("Exception %(exception_type)s was raised "
return self._client
except Exception as e:
message = ("Exception %(exception_type)s was raised "
@@
-261,3
+266,8
@@
class SSH(object):
with SCPClient(client.get_transport()) as scp:
scp.put(files, remote_path, recursive)
with SCPClient(client.get_transport()) as scp:
scp.put(files, remote_path, recursive)
+
+ # keep shell running in the background, e.g. screen
+ def send_command(self, command):
+ client = self._get_client()
+ client.exec_command(command, get_pty=True)