Replaced slow pexpect with subprocess.popen which is fast. Implemented Results()...
[progcomp10.git] / src / link / pexpect / examples / ssh_session.py
diff --git a/src/link/pexpect/examples/ssh_session.py b/src/link/pexpect/examples/ssh_session.py
deleted file mode 100755 (executable)
index 4d0e228..0000000
+++ /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.
-

UCC git Repository :: git.ucc.asn.au