Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/local/greenplum-db/ext/python/bin/python
- import os
- import sys
- sys.path.append('/usr/local/greenplum-db/bin/lib')
- from pexpect import pxssh as PXSSH
- import getpass
- class Debug_PXSSH(PXSSH.pxssh):
- def sendline(self, input=''):
- sys.stderr.write('\n[sendline::input={0!r}]'.format(input))
- return PXSSH.pxssh.sendline(self, input)
- def try_read_prompt(self, timeout_multiplier):
- prompt = PXSSH.pxssh.try_read_prompt(self, timeout_multiplier)
- sys.stderr.write('\n[try_read_prompt::prompt={0!r}]'.format(prompt))
- sys.stderr.flush()
- return prompt
- def sync_original_prompt (self, sync_multiplier=1.0):
- from pexpect import TIMEOUT
- import time
- sys.stderr.write('\n[sync_original_prompt]')
- sys.stderr.flush()
- self.sendline()
- time.sleep(0.1)
- try:
- self.try_read_prompt(sync_multiplier)
- except TIMEOUT:
- pass
- self.sendline()
- x = self.try_read_prompt(sync_multiplier)
- self.sendline()
- a = self.try_read_prompt(sync_multiplier)
- self.sendline()
- b = self.try_read_prompt(sync_multiplier)
- ld = self.levenshtein_distance(a,b)
- len_a = len(a)
- if len_a == 0:
- sys.stderr.write('\n[len_a=0]')
- return False
- val = float(ld)/len_a
- sys.stderr.write('\n[val={0}, ld={0}, len_a={0}]\n'
- .format(val, ld, len_a))
- sys.stderr.flush()
- if val < 0.4:
- return True
- sys.stderr.write('\n[! distance too far:'
- '\n{0!r}\n{0!r}]\n'.format(a, b))
- sys.stderr.flush()
- return False
- # setup variables
- username = 'gpadmin'
- hostname = raw_input('hostname: ')
- port = 22
- password = 'gpadmin'
- # create and begin session,
- session = Debug_PXSSH()
- session.login(hostname, username, password, port=22)
- session.sendline('uptime')
- session.prompt()
- sys.stderr.write('\n[session.before={0!r}]'.format(session.before))
- session.logout()
- sys.stderr.write('\n')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement