translate.py 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. from traps.models import *
  2. import subprocess
  3. ##############################################################################
  4. def translate_trapoid_to_name(oid):
  5. try:
  6. # FIXME: Mehrere erlauben, dann aber nur einer aktiv
  7. return CfgTrap.objects.get(trapoid=oid).trapname
  8. except CfgTrap.DoesNotExist:
  9. return None
  10. except CfgTrap.MultipleObjectsReturned:
  11. # Should not happen
  12. return None
  13. ##############################################################################
  14. def call_snmptranslate(oid, allmibs=False):
  15. cmdline = ['snmptranslate', ]
  16. if allmibs:
  17. cmdline.append('-mALL')
  18. cmdline.append(oid)
  19. try:
  20. cmd = subprocess.Popen(cmdline, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
  21. (stdout, stderr) = cmd.communicate()
  22. except OSError:
  23. return None
  24. return stdout.rstrip()
  25. def external_snmptranslate(oid):
  26. allmibs=False
  27. if oid.startswith('.1.3.6.1.4.1'):
  28. allmibs=True
  29. oidname = call_snmptranslate(oid, allmibs)
  30. if oidname.count('.') > 1 and allmibs==False:
  31. oidname = call_snmptranslate(oid, True)
  32. return oidname