Advertisement
Guest User

Untitled

a guest
Mar 3rd, 2017
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.90 KB | None | 0 0
  1. #!/usr/bin/python3
  2. from jnpr.junos import Device
  3. import re
  4. import sys
  5. import getopt
  6.  
  7. def usage():
  8. print("check_junos_ipmonitoring.py <-r|--router> <-u|--user> <-p|--pasword> <-t|--test>")
  9.  
  10. if __name__ == '__main__':
  11. try:
  12. opts, args = getopt.getopt(sys.argv[1:], "r:u:p:t:h", ["router=","user=","password=","test="])
  13. except getopt.GetoptError as err:
  14. print(str(err))
  15. usage()
  16. sys.exit(3)
  17.  
  18. router = None
  19. user = None
  20. password = None
  21. policy = None
  22. for opt, arg in opts:
  23. if opt in ("-h", "--help"):
  24. usage()
  25. sys.exit(3)
  26. elif opt in ("-r", "--router"):
  27. router = arg
  28. elif opt in ("-u", "--user"):
  29. user = arg
  30. elif opt in ("-p", "--password"):
  31. password = arg
  32. elif opt in ("-t", "--test"):
  33. policy = arg
  34. else:
  35. usage()
  36. sys.exit(3)
  37.  
  38. if router is None or user is None or password is None or policy is None:
  39. usage()
  40. sys.exit(3)
  41.  
  42. dev = Device(host=router, user=user, password=password)
  43. try:
  44. dev.open()
  45. except Exception as err:
  46. print("Cannot connect")
  47. sys.exit(3)
  48.  
  49. res = dev.rpc.get_ip_monitoring_status(policy=ppolicyy)
  50. dev.close()
  51. status_re = re.compile('\(Status: (.*)\)')
  52. header = res.xpath('.//policy-header/policy-name')[0].text
  53. try:
  54. status = status_re.search(header).group(1)
  55. except AttributeError as err:
  56. print("Cannot get status")
  57. sys.exit(3)
  58.  
  59. probes = res.xpath(".//status/probe-status")
  60. num_probes = len(probes)
  61. failed_probes = 0
  62. for i, s in enumerate(probes):
  63. if s.text != "PASS":
  64. failed_probes += 1
  65.  
  66. print("Status: %s (%s of %s probes failed)"%(status, failed_probes, num_probes))
  67. if status != "PASS":
  68. sys.exit(2)
  69. if failed_probes > 0:
  70. sys.exit(1)
  71. sys.exit(0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement