Advertisement
Guest User

Untitled

a guest
Sep 15th, 2014
252
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.78 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. ##----------------------------------------------------------------------
  3. ## Cisco.IOSXR.get_udld_neighbors
  4. ##----------------------------------------------------------------------
  5. ## Copyright (C) 2007-2014 The NOC Project
  6. ## See LICENSE for details
  7. ##----------------------------------------------------------------------
  8.  
  9. ## Python modules
  10. import re
  11. ## NOC modules
  12. from noc.sa.script import NOCScript
  13. from noc.sa.interfaces import IGetUDLDNeighbors
  14.  
  15.  
  16. class Script(NOCScript):
  17. name = "Cisco.IOSXR.get_udld_neighbors"
  18. implements = [IGetUDLDNeighbors]
  19.  
  20. rx_split = re.compile(r"^Interface\s+", re.MULTILINE | re.IGNORECASE)
  21. rx_entry = re.compile(
  22. r"^\s+Detection\sFSM\sstate:\s+(?P<state>\w+).*"
  23. r"^\s+Device\sID:\s+(?P<remote_device>.+)\n"
  24. r"^\s+Device\sname:\s+.+\n"
  25. r"^\s+Port\sID:\s+(?P<remote_interface>.+)\n"
  26. r"^\s+Message\sinterval:.+\n"
  27. r"^\s+Timeout\sinterval:.+\n"
  28. r"^\s+Echo\s\d+:\s+(?P<local_device>.+),\s(?P<local_interface>.+)\n",
  29. re.MULTILINE | re.IGNORECASE | re.DOTALL
  30. )
  31.  
  32. def execute(self):
  33. r = []
  34. try:
  35. s = self.cli("show ethernet udld interfaces")
  36. except self.CLISyntaxError:
  37. return []
  38. for p in self.rx_split.split(s):
  39. match = self.rx_entry.search(p)
  40. if not match:
  41. continue
  42. r += [{
  43. "local_device": match.group("local_device"),
  44. "local_interface": match.group("local_interface"),
  45. "remote_device": match.group("remote_device"),
  46. "remote_interface": match.group("remote_interface"),
  47. "state": match.group("state").upper()
  48. }]
  49. return r
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement