summaryrefslogtreecommitdiff
path: root/pysnmp
diff options
context:
space:
mode:
authorelie <elie>2015-05-31 21:39:01 +0000
committerelie <elie>2015-05-31 21:39:01 +0000
commit3d7406e02fb67b07930675ac60f7bc2fb8da2eeb (patch)
treece34ef8e79e839a3f643627cf3feae1208ed128e /pysnmp
parentc5086ca76753e5842de1f934234252b611f40ac1 (diff)
downloadpysnmp-git-3d7406e02fb67b07930675ac60f7bc2fb8da2eeb.tar.gz
catch and report possible MIB compilation errors
Diffstat (limited to 'pysnmp')
-rw-r--r--pysnmp/smi/builder.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/pysnmp/smi/builder.py b/pysnmp/smi/builder.py
index a019d032..4c0ce9c2 100644
--- a/pysnmp/smi/builder.py
+++ b/pysnmp/smi/builder.py
@@ -320,8 +320,11 @@ class MibBuilder:
except error.MibNotFoundError:
if self.__mibCompiler:
debug.logger & debug.flagBld and debug.logger('loadModules: calling MIB compiler for %s' % modName)
- self.__mibCompiler.compile(modName)
- # in case this missing MIB becomes available
+ status = self.__mibCompiler.compile(modName)
+ errs = '; '.join([str(x.error) for x in status.values() if x in ('failed', 'missing')])
+ if errs:
+ raise error.MibNotFoundError('%s compilation error(s): %s' % (modName, errs))
+ # compilation suceeded, MIB might load now
self.loadModule(modName, **userCtx)
return self