summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorelie <elie>2008-10-06 13:34:51 +0000
committerelie <elie>2008-10-06 13:34:51 +0000
commitc0bf8a8f53d7ac04205ef1865dadae4b0d487a43 (patch)
treef658784c031b724b80faaeea4903a761372f6445
parentd8813d840d71a945a17a5248e95e633a742e174a (diff)
downloadpysnmp-c0bf8a8f53d7ac04205ef1865dadae4b0d487a43.tar.gz
catch access to non-configured entries and raise an exception
-rw-r--r--pysnmp/entity/rfc3413/config.py16
1 files changed, 15 insertions, 1 deletions
diff --git a/pysnmp/entity/rfc3413/config.py b/pysnmp/entity/rfc3413/config.py
index eca8607..6070784 100644
--- a/pysnmp/entity/rfc3413/config.py
+++ b/pysnmp/entity/rfc3413/config.py
@@ -1,6 +1,7 @@
# Shortcuts to MIB instrumentation items used internally in SNMP applications
import string
-from pysnmp.smi.error import NoSuchObjectError
+from pysnmp.smi.error import SmiError, NoSuchObjectError
+from pysnmp.smi.exval import noSuchInstance
from pysnmp.entity import config
def getVersionSpecifics(snmpVersion): pass
@@ -27,6 +28,9 @@ def getTargetAddr(snmpEngine, snmpTargetAddrName):
(snmpTargetAddrEntry.name + (7,) + tblIdx, None))
)
+ if noSuchInstance.isSameTypeWith(snmpTargetAddrParams):
+ raise SmiError('Target %s not configured at SMI' % snmpTargetAddrName)
+
if snmpTargetAddrTDomain == config.snmpUDPDomain:
SnmpUDPAddress, = snmpEngine.msgAndPduDsp.mibInstrumController.mibBuilder.importSymbols('SNMPv2-TM', 'SnmpUDPAddress')
snmpTargetAddrTAddress = tuple(
@@ -53,6 +57,7 @@ def getTargetInfo(snmpEngine, snmpTargetAddrName):
snmpTargetParamsEntry, = mibInstrumController.mibBuilder.importSymbols(
'SNMP-TARGET-MIB', 'snmpTargetParamsEntry'
)
+
tblIdx = snmpTargetParamsEntry.getInstIdFromIndices(
snmpTargetAddrParams
)
@@ -66,6 +71,9 @@ def getTargetInfo(snmpEngine, snmpTargetAddrName):
(snmpTargetParamsEntry.name + (5,) + tblIdx, None))
)
+ if noSuchInstance.isSameTypeWith(snmpTargetParamsSecurityName):
+ raise SmiError('Parameters %s not configured at SMI' % snmpTargetAddrParams)
+
return ( snmpTargetAddrTDomain,
snmpTargetAddrTAddress,
snmpTargetAddrTimeout,
@@ -93,6 +101,9 @@ def getTargetParams(snmpEngine, paramsName):
(snmpTargetParamsEntry.name + (5,) + tblIdx, None))
)
+ if noSuchInstance.isSameTypeWith(snmpTargetParamsMPModel):
+ raise SmiError('Parameters %s not configured at SMI' % paramsName)
+
return ( snmpTargetParamsMPModel,
snmpTargetParamsSecurityModel,
snmpTargetParamsSecurityName,
@@ -113,6 +124,9 @@ def getNotificationInfo(snmpEngine, notificationTarget):
(snmpNotifyEntry.name + (3,) + tblIdx, None))
)
+ if noSuchInstance.isSameTypeWith(snmpNotifyTag):
+ raise SmiError('Target %s not configured at SMI' % notificationTarget)
+
return snmpNotifyTag, snmpNotifyType
def getTargetNames(snmpEngine, tag):