I am trying to make an SNMP agent following this tutorial: http://www.nealc.com/blog/blog/2013/02/23/writing-an-snmp-agent-with-a-custom-mib-using-pysnmp/
I am using the exact code in the tutorial, but when I run the code it ends in this:
DBG: [19:13:54.964]: file SNMPv2-SMI.pyc mtime 1379957443 DBG: [19:13:54.964]: file SNMPv2-SMI.py mtime 1402947591 DBG: [19:13:54.965]: loadModules: evaluating /usr/local/lib/python2.7/dist-packages/pysnmp/smi/mibs/SNMPv2-SMI.py Traceback (most recent call last): File "snmpAgentTest.py", line 163, in <module> agent = SNMPAgent(objects) File "snmpAgentTest.py", line 59, in __init__ self._snmpEngine = engine.SnmpEngine() File "/usr/local/lib/python2.7/dist-packages/pysnmp/entity/engine.py", line 18, in __init__ self.msgAndPduDsp = MsgAndPduDispatcher() File "/usr/local/lib/python2.7/dist-packages/pysnmp/proto/rfc3412.py", line 24, in __init__ 'SNMP-TARGET-MIB', 'SNMP-USER-BASED-SM-MIB' File "/usr/local/lib/python2.7/dist-packages/pysnmp/smi/builder.py", line 259, in loadModules 'MIB module \"%s\" load error: %s' % (modPath, traceback.format_exception(*sys.exc_info())) pysnmp.smi.error.SmiError: MIB module "/usr/local/lib/python2.7/dist-packages/pysnmp/smi/mibs/SNMPv2 -MIB.pyc" load error: ['Traceback (most recent call last):\n', ' File "/usr/local/lib/python2.7/dist-packages/pysnmp/smi/builder.py", line 255, in loadModules\n exec(modData, g)\n', ' File "/usr/local/lib/python2.7/dist-packages/pysnmp/smi/mibs/SNMPv2-MIB.py", line 10, in <module>\n ( Module Compliance, NotificationGroup, ObjectGroup, ) = mibBuilder.importSymbols("SNMPv2-CONF", "ModuleCompliance", "NotificationGroup", "ObjectGroup")\n', ' File "/usr/local/lib/python2.7/dist-packages/pysnmp/smi/builder.py", line 299, in importSymbols\n self.loadModules(modName, **userCtx)\n', ' File "/usr/local/lib/python2.7/dist-packages/pysnmp/smi/builder.py", line 259, in loadModules\n \'MIB module \\"%s\\" load error: %s\' % (modPath, traceback.format_exception(*sys.exc_info()))\n', 'SmiError: MIB module "/usr/local/lib/python2.7/dist-packages/pysnmp/smi/mibs/SNMPv2-CONF.pyc" load error: [\'Traceback (most recent call last):\\n\', \' File "/usr/local/lib/python2.7/dist-packages/pysnmp/smi/builder.py", line 255, in loadModules\\n exec(modData, g)\\n\', \' File "/usr/local/lib/python2.7/dist-packages/pysnmp/smi/mibs/SNMPv2-CONF.py", line 2, in <module>\\n MibNode, = mibBuilder.importSymbols(\\\'SNMPv2-SMI\\\', \\\'MibNode\\\')\\n\', \' File "/usr/local/lib/python2.7/dist-packages/pysnmp/smi/builder.py", line 299, in importSymbols\\n self.loadModules(modName, **userCtx)\\n\', \' File "/usr/local/lib/python2.7/dist-packages/pysnmp/smi/builder.py", line 259, in loadModules\\n \\\'MIB module \\\\"%s\\\\" load error: %s\\\' % (modPath, traceback.format_exception(*sys.exc_info()))\\n\', \'SmiError: MIB module "/usr/local/lib/python2.7/dist-packages/pysnmp/smi/mibs/SNMPv2-SMI.py" load error: [\\\'Traceback (most recent call last):\\\\n\\\', \\\' File "/usr/local/lib/python2.7/dist-packages/pysnmp/smi/builder.py", line 255, in loadModules\\\\n exec(modData, g)\\\\n\\\', \\\' File "<string>", line 2\\\\n\\\', \\\' -- WinAgents MIB Extraction Wizard\\\\n\\\', \\\' ^\\\\n\\\', \\\'SyntaxError: invalid syntax\\\\n\\\']\\n\']\n']
The MY-MIB.py that gets generated by build-pysnmp-mib looks like this:
# PySNMP SMI module. Autogenerated from smidump -f python MY-MIB # by libsmi2pysnmp-0.1.3 at Thu Jun 26 19:03:31 2014, # Python version sys.version_info(major=2, minor=7, micro=3, releaselevel='final', serial=0) # Imports ( Integer, ObjectIdentifier, OctetString, ) = mibBuilder.importSymbols("ASN1", "Integer", "ObjectIdentifier", "OctetString") ( NamedValues, ) = mibBuilder.importSymbols("ASN1-ENUMERATION", "NamedValues") ( ConstraintsIntersection, ConstraintsUnion, SingleValueConstraint, ValueRangeConstraint, ValueSizeConstraint, ) = mibBuilder.importSymbols("ASN1-REFINEMENT", "ConstraintsIntersection", "ConstraintsUnion", "SingleValueConstraint", "ValueRangeConstraint", "ValueSizeConstraint") ( Bits, Integer32, Integer32, MibIdentifier, NotificationType, MibScalar, MibTable, MibTableRow, MibTableColumn, TimeTicks, enterprises, ) = mibBuilder.importSymbols("SNMPv2-SMI", "Bits", "Integer32", "Integer32", "MibIdentifier", "NotificationType", "MibScalar", "MibTable", "MibTableRow", "MibTableColumn", "TimeTicks", "enterprises") # Objects myCompany = MibIdentifier((1, 3, 6, 1, 4, 1, 42)) testCount = MibScalar((1, 3, 6, 1, 4, 1, 42, 1), Integer32()).setMaxAccess("readonly") if mibBuilder.loadTexts: testCount.setDescription("A sample count of something.") testDescription = MibScalar((1, 3, 6, 1, 4, 1, 42, 2), OctetString()).setMaxAccess("readonly") if mibBuilder.loadTexts: testDescription.setDescription("A description of something") # Augmentions # Notifications testTrap = NotificationType((1, 3, 6, 1, 4, 1, 42, 3)).setObjects(*() ) if mibBuilder.loadTexts: testTrap.setDescription("Test notification") # Exports # Objects mibBuilder.exportSymbols("MY-MIB", myCompany=myCompany, testCount=testCount, testDescription=testDescription) # Notifications mibBuilder.exportSymbols("MY-MIB", testTrap=testTrap)
Does anyone have an idea what could have caused that exception? I've been on Google for the last few hours searching but didn't find anything valuable.
Edit: Also when using the code from http://pysnmp.sourceforge.net/examples/current/v3arch/agent/cmdrsp/v2c-custom-scalar-mib-objects.html I get a similar error:
Traceback (most recent call last): File "agentTest2.py", line 8, in <module> snmpEngine = engine.SnmpEngine() File "/usr/local/lib/python2.7/dist-packages/pysnmp/entity/engine.py", line 18, in __init__ self.msgAndPduDsp = MsgAndPduDispatcher() File "/usr/local/lib/python2.7/dist-packages/pysnmp/proto/rfc3412.py", line 24, in __init__ 'SNMP-TARGET-MIB', 'SNMP-USER-BASED-SM-MIB' File "/usr/local/lib/python2.7/dist-packages/pysnmp/smi/builder.py", line 259, in loadModules 'MIB module \"%s\" load error: %s' % (modPath, traceback.format_exception(*sys.exc_info())) pysnmp.smi.error.SmiError: MIB module "/usr/local/lib/python2.7/dist-packages/pysnmp/smi/mibs/SNMPv2-MIB.pyc" load error: ['Traceback (most recent call last):\n', ' File "/usr/local/lib/python2.7/dist-packages/pysnmp/smi/builder.py", line 255, in loadModules\n exec(modData, g)\n', ' File "/usr/local/lib/python2.7/dist-packages/pysnmp/smi/mibs/SNMPv2-MIB.py", line 10, in <module>\n ( ModuleCompliance, NotificationGroup, ObjectGroup, ) = mibBuilder.importSymbols("SNMPv2-CONF", "ModuleCompliance", "NotificationGroup", "ObjectGroup")\n', ' File "/usr/local/lib/python2.7/dist-packages/pysnmp/smi/builder.py", line 299, in importSymbols\n self.loadModules(modName, **userCtx)\n', ' File "/usr/local/lib/python2.7/dist-packages/pysnmp/smi/builder.py", line 259, in loadModules\n \'MIB module \\"%s\\" load error: %s\' % (modPath, traceback.format_exception(*sys.exc_info()))\n', 'SmiError: MIB module "/usr/local/lib/python2.7/dist-packages/pysnmp/smi/mibs/SNMPv2-CONF.pyc" load error: [\'Traceback (most recent call last):\\n\', \' File "/usr/local/lib/python2.7/dist-packages/pysnmp/smi/builder.py", line 255, in loadModules\\n exec(modData, g)\\n\', \' File "/usr/local/lib/python2.7/dist-packages/pysnmp/smi/mibs/SNMPv2-CONF.py", line 2, in <module>\\n MibNode, = mibBuilder.importSymbols(\\\'SNMPv2-SMI\\\', \\\'MibNode\\\')\\n\', \' File "/usr/local/lib/python2.7/dist-packages/pysnmp/smi/builder.py", line 299, in importSymbols\\n self.loadModules(modName, **userCtx)\\n\', \' File "/usr/local/lib/python2.7/dist-packages/pysnmp/smi/builder.py", line 259, in loadModules\\n \\\'MIB module \\\\"%s\\\\" load error: %s\\\' % (modPath, traceback.format_exception(*sys.exc_info()))\\n\', \'SmiError: MIB module "/usr/local/lib/python2.7/dist-packages/pysnmp/smi/mibs/SNMPv2-SMI.py" load error: [\\\'Traceback (most recent call last):\\\\n\\\', \\\' File "/usr/local/lib/python2.7/dist-packages/pysnmp/smi/builder.py", line 255, in loadModules\\\\n exec(modData, g)\\\\n\\\', \\\' File "<string>", line 2\\\\n\\\', \\\' -- WinAgents MIB Extraction Wizard\\\\n\\\', \\\' ^\\\\n\\\', \\\'SyntaxError: invalid syntax\\\\n\\\']\\n\']\n']