if self.verbose:
sys.stderr.write("-> " + command + "\n")
while True:
- seen=child.expect([EOF,'assword:','continue connecting (yes/no)?'])
+ seen=child.expect([EOF,'assword:','continue connecting (yes/no)?','Permission denied','refused','not resolve'])
if self.verbose:
sys.stderr.write("<- " + child.before + "\n")
if seen == 0:
if self.verbose:
sys.stderr.write("Saw 'continue connecting' prompt...\n")
child.sendline("yes")
+ elif seen == 3:
+ sys.stderr.write("FAILURE: check your password\n")
+ raise RuntimeError
+ elif seen == 4:
+ sys.stderr.write("FAILURE: cannot connect to port " + self.port + "\n")
+ raise RuntimeError
+ elif seen == 5:
+ sys.stderr.write("FAILURE: check hostname\n")
+ raise RuntimeError
+
return child.before
def ssh(self, command):
return self.__exec("ssh -p %s -l %s %s \"%s\""%(session.port, self.user,self.host,command))
session.scp(keyfile, "~/.ssh/authorized_keys")
except SystemExit:
pass
+ except RuntimeError:
+ sys.exit(-1)
# It's all over now...
os.remove(keyfile)
if check: