summaryrefslogtreecommitdiff
path: root/pysnmp/entity/rfc3413/oneliner/mibvar.py
diff options
context:
space:
mode:
authorelie <elie>2015-05-17 21:01:43 +0000
committerelie <elie>2015-05-17 21:01:43 +0000
commita4fb54639e97cb572689e24a5c5e42b4f66a62e0 (patch)
tree96ae7dcd54ba6cbc090d33018993f4f993bab72e /pysnmp/entity/rfc3413/oneliner/mibvar.py
parent1118e0d43b694f8a1b68e4d0b9d72b2e7e6c8277 (diff)
downloadpysnmp-a4fb54639e97cb572689e24a5c5e42b4f66a62e0.tar.gz
- Initial PySMI integration. Original ASN.1 MIBs could now be parsed, stored
at a local pysnmp MIBs repository and loaded into SNMP Engine. - smi.MibBuilder will now raise more specific exceptions (MibLoadError, MibNotFoundError) on MIB loading problems rather than more generic SmiError. - MibBuilder.addMibSources() convenience method added.
Diffstat (limited to 'pysnmp/entity/rfc3413/oneliner/mibvar.py')
-rw-r--r--pysnmp/entity/rfc3413/oneliner/mibvar.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/pysnmp/entity/rfc3413/oneliner/mibvar.py b/pysnmp/entity/rfc3413/oneliner/mibvar.py
index 6846334..cb7b163 100644
--- a/pysnmp/entity/rfc3413/oneliner/mibvar.py
+++ b/pysnmp/entity/rfc3413/oneliner/mibvar.py
@@ -1,5 +1,6 @@
from pysnmp.proto import rfc1902
from pysnmp.smi.builder import ZipMibSource
+from pysnmp.smi.compiler import addMibCompiler
from pysnmp.error import PySnmpError
from pyasn1.error import PyAsn1Error
@@ -20,6 +21,7 @@ class MibVariable:
def __init__(self, *args):
self.__args = args
self.__mibSourcesToAdd = self.__modNamesToLoad = None
+ self.__asn1SourcesToAdd = None
self.__state = self.stDirty
#
@@ -56,6 +58,10 @@ class MibVariable:
# A gateway to MIBs manipulation routines
#
+ def addAsn1Sources(self, *asn1Sources):
+ self.__asn1SourcesToAdd = asn1Sources
+ return self
+
def addMibSource(self, *mibSources):
self.__mibSourcesToAdd = mibSources
return self
@@ -75,6 +81,13 @@ class MibVariable:
mibViewController.mibBuilder.setMibSources(*mibSources)
self.__mibSourcesToAdd = None
+ if self.__asn1SourcesToAdd is not None:
+ addMibCompiler(
+ mibViewController.mibBuilder,
+ sources=self.__asn1SourcesToAdd
+ )
+ self.__asn1SourcesToAdd = None
+
if self.__modNamesToLoad is not None:
mibViewController.mibBuilder.loadModules(*self.__modNamesToLoad)
self.__modNamesToLoad = None