diff options
Diffstat (limited to 'fuel/deploy/cloud_deploy/ssh_client.py')
-rw-r--r-- | fuel/deploy/cloud_deploy/ssh_client.py | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/fuel/deploy/cloud_deploy/ssh_client.py b/fuel/deploy/cloud_deploy/ssh_client.py deleted file mode 100644 index b9aad6c..0000000 --- a/fuel/deploy/cloud_deploy/ssh_client.py +++ /dev/null @@ -1,56 +0,0 @@ -import paramiko -from cloud import common - -TIMEOUT = 600 -LOG = common.LOG - -class SSHClient(object): - - def __init__(self, host, username, password): - self.host = host - self.username = username - self.password = password - self.client = None - - def open(self, timeout=TIMEOUT): - self.client = paramiko.SSHClient() - self.client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) - self.client.connect(self.host, username=self.username, - password=self.password, timeout=timeout) - - def close(self): - if self.client is not None: - self.client.close() - self.client = None - - def execute(self, command, sudo=False, timeout=TIMEOUT): - if sudo and self.username != 'root': - command = "sudo -S -p '' %s" % command - stdin, stdout, stderr = self.client.exec_command(command, - timeout=timeout) - if sudo: - stdin.write(self.password + '\n') - stdin.flush() - return ''.join(''.join(stderr.readlines()) + - ''.join(stdout.readlines())) - - def run(self, command): - transport = self.client.get_transport() - transport.set_keepalive(1) - chan = transport.open_session() - chan.exec_command(command) - - while not chan.exit_status_ready(): - if chan.recv_ready(): - data = chan.recv(1024) - while data: - print data - data = chan.recv(1024) - - if chan.recv_stderr_ready(): - error_buff = chan.recv_stderr(1024) - while error_buff: - print error_buff - error_buff = chan.recv_stderr(1024) - exit_status = chan.recv_exit_status() - LOG.debug('Exit status %s' % exit_status)
\ No newline at end of file |