X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=src%2Flink%2Fpexpect%2Fexamples%2Fssh_session.py;fp=src%2Flink%2Fpexpect%2Fexamples%2Fssh_session.py;h=0000000000000000000000000000000000000000;hb=edf8e5b569e75692d61a44f2c3241fb6410e4fbd;hp=4d0e228a7e33765b8eb5d045e1114ac92fc53e3d;hpb=35ff18a5beda685e59ca898026570d67b7ead333;p=progcomp10.git diff --git a/src/link/pexpect/examples/ssh_session.py b/src/link/pexpect/examples/ssh_session.py deleted file mode 100755 index 4d0e228..0000000 --- a/src/link/pexpect/examples/ssh_session.py +++ /dev/null @@ -1,94 +0,0 @@ -# -# Eric S. Raymond -# -# Greatly modified by Nigel W. Moriarty -# April 2003 -# -from pexpect import * -import os, sys -import getpass -import time - -class ssh_session: - - "Session with extra state including the password to be used." - - def __init__(self, user, host, password=None, verbose=0): - - self.user = user - self.host = host - self.verbose = verbose - self.password = password - self.keys = [ - 'authenticity', - 'assword:', - '@@@@@@@@@@@@', - 'Command not found.', - EOF, - ] - - self.f = open('ssh.out','w') - - def __repr__(self): - - outl = 'class :'+self.__class__.__name__ - for attr in self.__dict__: - if attr == 'password': - outl += '\n\t'+attr+' : '+'*'*len(self.password) - else: - outl += '\n\t'+attr+' : '+str(getattr(self, attr)) - return outl - - def __exec(self, command): - - "Execute a command on the remote host. Return the output." - child = spawn(command, - #timeout=10, - ) - if self.verbose: - sys.stderr.write("-> " + command + "\n") - seen = child.expect(self.keys) - self.f.write(str(child.before) + str(child.after)+'\n') - if seen == 0: - child.sendline('yes') - seen = child.expect(self.keys) - if seen == 1: - if not self.password: - self.password = getpass.getpass('Remote password: ') - child.sendline(self.password) - child.readline() - time.sleep(5) - # Added to allow the background running of remote process - if not child.isalive(): - seen = child.expect(self.keys) - if seen == 2: - lines = child.readlines() - self.f.write(lines) - if self.verbose: - sys.stderr.write("<- " + child.before + "|\n") - try: - self.f.write(str(child.before) + str(child.after)+'\n') - except: - pass - self.f.close() - return child.before - - def ssh(self, command): - - return self.__exec("ssh -l %s %s \"%s\"" \ - % (self.user,self.host,command)) - - def scp(self, src, dst): - - return self.__exec("scp %s %s@%s:%s" \ - % (src, session.user, session.host, dst)) - - def exists(self, file): - - "Retrieve file permissions of specified remote file." - seen = self.ssh("/bin/ls -ld %s" % file) - if string.find(seen, "No such file") > -1: - return None # File doesn't exist - else: - return seen.split()[0] # Return permission field of listing. -