Advertisement
Guest User

Untitled

a guest
Apr 18th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.02 KB | None | 0 0
  1. #!/usr/local/greenplum-db/ext/python/bin/python
  2. import os
  3. import sys
  4. sys.path.append('/usr/local/greenplum-db/bin/lib')
  5. from pexpect import pxssh as PXSSH
  6. import getpass
  7.  
  8.  
  9. class Debug_PXSSH(PXSSH.pxssh):
  10.  
  11. def sendline(self, input=''):
  12. sys.stderr.write('\n[sendline::input={0!r}]'.format(input))
  13. return PXSSH.pxssh.sendline(self, input)
  14.  
  15. def try_read_prompt(self, timeout_multiplier):
  16. prompt = PXSSH.pxssh.try_read_prompt(self, timeout_multiplier)
  17. sys.stderr.write('\n[try_read_prompt::prompt={0!r}]'.format(prompt))
  18. sys.stderr.flush()
  19. return prompt
  20.  
  21. def sync_original_prompt (self, sync_multiplier=1.0):
  22. from pexpect import TIMEOUT
  23. import time
  24. sys.stderr.write('\n[sync_original_prompt]')
  25. sys.stderr.flush()
  26. self.sendline()
  27. time.sleep(0.1)
  28. try:
  29. self.try_read_prompt(sync_multiplier)
  30. except TIMEOUT:
  31. pass
  32. self.sendline()
  33. x = self.try_read_prompt(sync_multiplier)
  34. self.sendline()
  35. a = self.try_read_prompt(sync_multiplier)
  36. self.sendline()
  37. b = self.try_read_prompt(sync_multiplier)
  38. ld = self.levenshtein_distance(a,b)
  39. len_a = len(a)
  40. if len_a == 0:
  41. sys.stderr.write('\n[len_a=0]')
  42. return False
  43. val = float(ld)/len_a
  44. sys.stderr.write('\n[val={0}, ld={0}, len_a={0}]\n'
  45. .format(val, ld, len_a))
  46. sys.stderr.flush()
  47. if val < 0.4:
  48. return True
  49. sys.stderr.write('\n[! distance too far:'
  50. '\n{0!r}\n{0!r}]\n'.format(a, b))
  51. sys.stderr.flush()
  52. return False
  53.  
  54.  
  55. # setup variables
  56. username = 'gpadmin'
  57. hostname = raw_input('hostname: ')
  58. port = 22
  59. password = 'gpadmin'
  60.  
  61. # create and begin session,
  62. session = Debug_PXSSH()
  63. session.login(hostname, username, password, port=22)
  64. session.sendline('uptime')
  65. session.prompt()
  66. sys.stderr.write('\n[session.before={0!r}]'.format(session.before))
  67. session.logout()
  68. sys.stderr.write('\n')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement