diff options
Diffstat (limited to 'pysnmp/proto/api')
-rw-r--r-- | pysnmp/proto/api/v1.py | 86 | ||||
-rw-r--r-- | pysnmp/proto/api/v2c.py | 29 |
2 files changed, 76 insertions, 39 deletions
diff --git a/pysnmp/proto/api/v1.py b/pysnmp/proto/api/v1.py index 7043478d..a7618784 100644 --- a/pysnmp/proto/api/v1.py +++ b/pysnmp/proto/api/v1.py @@ -29,7 +29,8 @@ class VarBindAPI: def setOIDVal(self, varBind, oidVal): (oid, val) = oidVal varBind.setComponentByPosition(0, oid) - if val is None: val = null + if val is None: + val = null varBind.setComponentByPosition(1).getComponentByPosition(1).setComponentByType(val.getTagSet(), val, 1, verifyConstraints=False) return varBind @@ -46,20 +47,26 @@ class PDUAPI: def setDefaults(self, pdu): pdu.setComponentByPosition( 0, getNextRequestID(), verifyConstraints=False - ) + ) pdu.setComponentByPosition( 1, self._errorStatus, verifyConstraints=False - ) + ) pdu.setComponentByPosition( 2, self._errorIndex, verifyConstraints=False - ) + ) pdu.setComponentByPosition(3) - def getRequestID(self, pdu): return pdu.getComponentByPosition(0) - def setRequestID(self, pdu, value): pdu.setComponentByPosition(0, value) + def getRequestID(self, pdu): + return pdu.getComponentByPosition(0) + + def setRequestID(self, pdu, value): + pdu.setComponentByPosition(0, value) - def getErrorStatus(self, pdu): return pdu.getComponentByPosition(1) - def setErrorStatus(self, pdu, value): pdu.setComponentByPosition(1, value) + def getErrorStatus(self, pdu): + return pdu.getComponentByPosition(1) + + def setErrorStatus(self, pdu, value): + pdu.setComponentByPosition(1, value) def getErrorIndex(self, pdu, muteErrors=False): errorIndex = pdu.getComponentByPosition(2) @@ -68,8 +75,9 @@ class PDUAPI: return errorIndex.clone(len(pdu[3])) raise error.ProtocolError( 'Error index out of range: %s > %s' % (errorIndex, len(pdu[3])) - ) + ) return errorIndex + def setErrorIndex(self, pdu, value): pdu.setComponentByPosition(2, value) @@ -85,11 +93,13 @@ class PDUAPI: def setVarBindList(self, pdu, varBindList): varBindList = pdu.setComponentByPosition(3, varBindList) + def getVarBinds(self, pdu): varBinds = [] for varBind in pdu.getComponentByPosition(3): varBinds.append(apiVarBind.getOIDVal(varBind)) return varBinds + def setVarBinds(self, pdu, varBinds): varBindList = pdu.setComponentByPosition(3).getComponentByPosition(3) varBindList.clear() @@ -101,8 +111,8 @@ class PDUAPI: varBindList.setComponentByPosition(idx) apiVarBind.setOIDVal( varBindList.getComponentByPosition(idx), varBind - ) - idx = idx + 1 + ) + idx += 1 def getResponse(self, reqPDU): rspPDU = GetResponsePDU() @@ -115,9 +125,9 @@ class PDUAPI: varBindRow = [] for varBind in apiPDU.getVarBinds(reqPDU): varBindRow.append((varBind[0], null)) - return [ varBindRow ] + return [varBindRow] else: - return [ apiPDU.getVarBinds(rspPDU) ] + return [apiPDU.getVarBinds(rspPDU)] apiPDU = PDUAPI() @@ -142,25 +152,39 @@ class TrapPDUAPI: pdu.setComponentByPosition(4, self._zeroTime, verifyConstraints=False) pdu.setComponentByPosition(5) - def getEnterprise(self, pdu): return pdu.getComponentByPosition(0) - def setEnterprise(self, pdu, value): pdu.setComponentByPosition(0, value) + def getEnterprise(self, pdu): + return pdu.getComponentByPosition(0) + + def setEnterprise(self, pdu, value): + pdu.setComponentByPosition(0, value) def getAgentAddr(self, pdu): return pdu.getComponentByPosition(1).getComponentByPosition(0) + def setAgentAddr(self, pdu, value): pdu.setComponentByPosition(1).getComponentByPosition(1).setComponentByPosition(0, value) - def getGenericTrap(self, pdu): return pdu.getComponentByPosition(2) - def setGenericTrap(self, pdu, value): pdu.setComponentByPosition(2, value) + def getGenericTrap(self, pdu): + return pdu.getComponentByPosition(2) + + def setGenericTrap(self, pdu, value): + pdu.setComponentByPosition(2, value) + + def getSpecificTrap(self, pdu): + return pdu.getComponentByPosition(3) + + def setSpecificTrap(self, pdu, value): + pdu.setComponentByPosition(3, value) - def getSpecificTrap(self, pdu): return pdu.getComponentByPosition(3) - def setSpecificTrap(self, pdu, value): pdu.setComponentByPosition(3, value) + def getTimeStamp(self, pdu): + return pdu.getComponentByPosition(4) - def getTimeStamp(self, pdu): return pdu.getComponentByPosition(4) - def setTimeStamp(self, pdu, value): pdu.setComponentByPosition(4, value) + def setTimeStamp(self, pdu, value): + pdu.setComponentByPosition(4, value) def getVarBindList(self, pdu): return pdu.getComponentByPosition(5) + def setVarBindList(self, pdu, varBindList): varBindList = pdu.setComponentByPosition(5, varBindList) @@ -169,6 +193,7 @@ class TrapPDUAPI: for varBind in pdu.getComponentByPosition(5): varBinds.append(apiVarBind.getOIDVal(varBind)) return varBinds + def setVarBinds(self, pdu, varBinds): varBindList = pdu.setComponentByPosition(5).getComponentByPosition(5) varBindList.clear() @@ -193,13 +218,21 @@ class MessageAPI: msg.setComponentByPosition(1, self._community, verifyConstraints=False) return msg - def getVersion(self, msg): return msg.getComponentByPosition(0) - def setVersion(self, msg, value): msg.setComponentByPosition(0, value) + def getVersion(self, msg): + return msg.getComponentByPosition(0) + + def setVersion(self, msg, value): + msg.setComponentByPosition(0, value) - def getCommunity(self, msg): return msg.getComponentByPosition(1) - def setCommunity(self, msg, value): msg.setComponentByPosition(1, value) + def getCommunity(self, msg): + return msg.getComponentByPosition(1) + + def setCommunity(self, msg, value): + msg.setComponentByPosition(1, value) + + def getPDU(self, msg): + return msg.getComponentByPosition(2).getComponent() - def getPDU(self, msg): return msg.getComponentByPosition(2).getComponent() def setPDU(self, msg, value): msg.setComponentByPosition(2).getComponentByPosition(2).setComponentByType(value.getTagSet(), value, 1, verifyConstraints=False) @@ -212,4 +245,3 @@ class MessageAPI: return rspMsg apiMessage = MessageAPI() - diff --git a/pysnmp/proto/api/v2c.py b/pysnmp/proto/api/v2c.py index 18b477a3..5dbb1beb 100644 --- a/pysnmp/proto/api/v2c.py +++ b/pysnmp/proto/api/v2c.py @@ -43,6 +43,7 @@ apiVarBind = v1.apiVarBind class PDUAPI(v1.PDUAPI): _errorStatus = rfc1905._errorStatus.clone(0) _errorIndex = univ.Integer(0).subtype(subtypeSpec=constraint.ValueRangeConstraint(0, rfc1905.max_bindings)) + def getResponse(self, reqPDU): rspPDU = ResponsePDU() self.setDefaults(rspPDU) @@ -50,19 +51,19 @@ class PDUAPI(v1.PDUAPI): return rspPDU def getVarBindTable(self, reqPDU, rspPDU): - return [ apiPDU.getVarBinds(rspPDU) ] + return [apiPDU.getVarBinds(rspPDU)] def setEndOfMibError(self, pdu, errorIndex): varBindList = self.getVarBindList(pdu) varBindList[errorIndex-1].setComponentByPosition( 1, rfc1905.endOfMibView, verifyConstraints=False - ) + ) def setNoSuchInstanceError(self, pdu, errorIndex): varBindList = self.getVarBindList(pdu) varBindList[errorIndex-1].setComponentByPosition( 1, rfc1905.noSuchInstance, verifyConstraints=False - ) + ) apiPDU = PDUAPI() @@ -82,11 +83,17 @@ class BulkPDUAPI(PDUAPI): ) pdu.setComponentByPosition(3) - def getNonRepeaters(self, pdu): return pdu.getComponentByPosition(1) - def setNonRepeaters(self, pdu, value): pdu.setComponentByPosition(1, value) + def getNonRepeaters(self, pdu): + return pdu.getComponentByPosition(1) + + def setNonRepeaters(self, pdu, value): + pdu.setComponentByPosition(1, value) + + def getMaxRepetitions(self, pdu): + return pdu.getComponentByPosition(2) - def getMaxRepetitions(self, pdu): return pdu.getComponentByPosition(2) - def setMaxRepetitions(self,pdu,value): pdu.setComponentByPosition(2,value) + def setMaxRepetitions(self,pdu,value): + pdu.setComponentByPosition(2,value) def getVarBindTable(self, reqPDU, rspPDU): nonRepeaters = self.getNonRepeaters(reqPDU) @@ -125,11 +132,9 @@ class TrapPDUAPI(v1.PDUAPI): _genTrap = ObjectIdentifier((1,3,6,1,6,3,1,1,5,1)) def setDefaults(self, pdu): v1.PDUAPI.setDefaults(self, pdu) - varBinds = [ - ( self.sysUpTime, self._zeroTime), - # generic trap - ( self.snmpTrapOID, self._genTrap) - ] + varBinds = [(self.sysUpTime, self._zeroTime), + # generic trap + (self.snmpTrapOID, self._genTrap)] self.setVarBinds(pdu, varBinds) apiTrapPDU = TrapPDUAPI() |