from traps.models import * import subprocess ############################################################################## def translate_trapoid_to_name(oid): try: # FIXME: Mehrere erlauben, dann aber nur einer aktiv return CfgTrap.objects.get(trapoid=oid).trapname except CfgTrap.DoesNotExist: return None except CfgTrap.MultipleObjectsReturned: # Should not happen return None ############################################################################## def call_snmptranslate(oid, allmibs=False): cmdline = ['snmptranslate', ] if allmibs: cmdline.append('-mALL') cmdline.append(oid) try: cmd = subprocess.Popen(cmdline, stdout=subprocess.PIPE, stderr=subprocess.PIPE) (stdout, stderr) = cmd.communicate() except OSError: return None return stdout.rstrip() def external_snmptranslate(oid): allmibs=False if oid.startswith('.1.3.6.1.4.1'): allmibs=True oidname = call_snmptranslate(oid, allmibs) if oidname.count('.') > 1 and allmibs==False: oidname = call_snmptranslate(oid, True) return oidname