diff options
author | elie <elie> | 2008-10-06 13:34:51 +0000 |
---|---|---|
committer | elie <elie> | 2008-10-06 13:34:51 +0000 |
commit | c0bf8a8f53d7ac04205ef1865dadae4b0d487a43 (patch) | |
tree | f658784c031b724b80faaeea4903a761372f6445 | |
parent | d8813d840d71a945a17a5248e95e633a742e174a (diff) | |
download | pysnmp-c0bf8a8f53d7ac04205ef1865dadae4b0d487a43.tar.gz |
catch access to non-configured entries and raise an exception
-rw-r--r-- | pysnmp/entity/rfc3413/config.py | 16 |
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): |