def sendReq(self, snmpEngine, addrName, nonRepeaters, maxRepetitions, varBinds, cbFun, cbCtx=None, contextEngineId=None, contextName=''): (transportDomain, transportAddress, timeout, retryCount, messageProcessingModel, securityModel, securityName, securityLevel) = config.getTargetInfo(snmpEngine, addrName) pduVersion, pMod = getVersionSpecifics(messageProcessingModel) if not hasattr(pMod, 'GetBulkRequestPDU'): raise error.ProtocolError('BULK PDU not implemented at %s' % pMod) reqPDU = pMod.GetBulkRequestPDU() pMod.apiBulkPDU.setDefaults(reqPDU) pMod.apiBulkPDU.setNonRepeaters(reqPDU, nonRepeaters) pMod.apiBulkPDU.setMaxRepetitions(reqPDU, maxRepetitions) pMod.apiBulkPDU.setVarBinds(reqPDU, varBinds) requestHandle = getNextHandle() self._sendPdu(snmpEngine, transportDomain, transportAddress, messageProcessingModel, securityModel, securityName, securityLevel, contextEngineId, contextName, pduVersion, reqPDU, timeout, retryCount, 0, requestHandle, (self.processResponsePdu, (cbFun, cbCtx))) return requestHandle
def sendReq(self, snmpEngine, addrName, varBinds, cbFun, cbCtx=None, contextEngineId=None, contextName=''): (transportDomain, transportAddress, timeout, retryCount, messageProcessingModel, securityModel, securityName, securityLevel) = config.getTargetInfo(snmpEngine, addrName) pduVersion, pMod = getVersionSpecifics(messageProcessingModel) reqPDU = pMod.GetNextRequestPDU() pMod.apiPDU.setDefaults(reqPDU) pMod.apiPDU.setVarBinds(reqPDU, varBinds) requestHandle = getNextHandle() self._sendPdu(snmpEngine, transportDomain, transportAddress, messageProcessingModel, securityModel, securityName, securityLevel, contextEngineId, contextName, pduVersion, reqPDU, timeout, retryCount, 0, requestHandle, (self.processResponsePdu, (cbFun, cbCtx))) return requestHandle
def sendReq( self, snmpEngine, addrName, nonRepeaters, maxRepetitions, varBinds, cbFun, cbCtx=None, contextEngineId=None, contextName=null, ): ( transportDomain, transportAddress, timeout, retryCount, messageProcessingModel, securityModel, securityName, securityLevel, ) = config.getTargetInfo(snmpEngine, addrName) pduVersion, pMod = getVersionSpecifics(messageProcessingModel) if not hasattr(pMod, "GetBulkRequestPDU"): raise error.PySnmpError("BULK PDU not implemented at %s" % pMod) reqPDU = pMod.GetBulkRequestPDU() pMod.apiBulkPDU.setDefaults(reqPDU) pMod.apiBulkPDU.setNonRepeaters(reqPDU, nonRepeaters) pMod.apiBulkPDU.setMaxRepetitions(reqPDU, maxRepetitions) pMod.apiBulkPDU.setVarBinds(reqPDU, varBinds) requestHandle = getNextHandle() self._sendPdu( snmpEngine, transportDomain, transportAddress, messageProcessingModel, securityModel, securityName, securityLevel, contextEngineId, contextName, pduVersion, reqPDU, timeout, retryCount, 0, requestHandle, (self.processResponsePdu, (cbFun, cbCtx)), ) return requestHandle
def sendPdu(self, snmpEngine, targetName, contextEngineId, contextName, PDU, cbFun, cbCtx): (transportDomain, transportAddress, timeout, retryCount, messageProcessingModel, securityModel, securityName, securityLevel) = config.getTargetInfo(snmpEngine, targetName) # Convert timeout in seconds into timeout in timer ticks timeoutInTicks = (float(timeout) / 100 / snmpEngine.transportDispatcher.getTimerResolution()) mibBuilder = snmpEngine.msgAndPduDsp.mibInstrumController.mibBuilder SnmpEngineID, SnmpAdminString = mibBuilder.importSymbols( 'SNMP-FRAMEWORK-MIB', 'SnmpEngineID', 'SnmpAdminString') # Cast possible strings into bytes if contextEngineId: contextEngineId = SnmpEngineID(contextEngineId) contextName = SnmpAdminString(contextName) origPDU = PDU # User-side API assumes SMIv2 if messageProcessingModel == 0: PDU = rfc2576.v2ToV1(PDU) pduVersion = 0 else: pduVersion = 1 sendRequestHandle = getNextHandle() # 3.1 sendPduHandle = snmpEngine.msgAndPduDsp.sendPdu( snmpEngine, transportDomain, transportAddress, messageProcessingModel, securityModel, securityName, securityLevel, contextEngineId, contextName, pduVersion, PDU, True, timeoutInTicks, self.processResponsePdu, (sendRequestHandle, cbFun, cbCtx) ) snmpEngine.transportDispatcher.jobStarted(id(self)) self.__pendingReqs[sendPduHandle] = ( transportDomain, transportAddress, messageProcessingModel, securityModel, securityName, securityLevel, contextEngineId, contextName, pduVersion, origPDU, timeoutInTicks, retryCount, 0, 0 ) debug.logger & debug.FLAG_APP and debug.logger( 'sendPdu: sendPduHandle %s, timeout %d*10 ms/%d ticks, retry ' '0 of %d' % (sendPduHandle, timeout, timeoutInTicks, retryCount)) return sendRequestHandle
def sendReq( self, snmpEngine, addrName, nonRepeaters, maxRepetitions, varBinds, cbFun, cbCtx=None, contextEngineId=None, contextName='' ): ( transportDomain, transportAddress, timeout, retryCount, messageProcessingModel, securityModel, securityName, securityLevel ) = config.getTargetInfo(snmpEngine, addrName) reqPDU = v2c.GetBulkRequestPDU() v2c.apiBulkPDU.setDefaults(reqPDU) v2c.apiBulkPDU.setNonRepeaters(reqPDU, nonRepeaters) v2c.apiBulkPDU.setMaxRepetitions(reqPDU, maxRepetitions) v2c.apiBulkPDU.setVarBinds(reqPDU, varBinds) requestHandle = getNextHandle() try: self._sendPdu( snmpEngine, transportDomain, transportAddress, messageProcessingModel, securityModel, securityName, securityLevel, contextEngineId, contextName, reqPDU, timeout, retryCount, 0, # retries requestHandle, (self.processResponsePdu, (cbFun, cbCtx)) ) except StatusInformation: statusInformation = sys.exc_info()[1] debug.logger & debug.flagApp and debug.logger('sendReq: sendPduHandle %s: _sendPdu() failed with %r' % (requestHandle, statusInformation)) cbFun(requestHandle, statusInformation['errorIndication'], 0, 0, (), cbCtx) return requestHandle
def sendPdu(self, snmpEngine, targetName, contextEngineId, contextName, PDU, cbFun, cbCtx): (transportDomain, transportAddress, timeout, retryCount, messageProcessingModel, securityModel, securityName, securityLevel) = config.getTargetInfo(snmpEngine, targetName) # Convert timeout in seconds into timeout in timer ticks timeoutInTicks = (float(timeout) / 100 / snmpEngine.transportDispatcher.getTimerResolution()) mibBuilder = snmpEngine.msgAndPduDsp.mibInstrumController.mibBuilder SnmpEngineID, SnmpAdminString = mibBuilder.importSymbols( 'SNMP-FRAMEWORK-MIB', 'SnmpEngineID', 'SnmpAdminString') # Cast possible strings into bytes if contextEngineId: contextEngineId = SnmpEngineID(contextEngineId) contextName = SnmpAdminString(contextName) origPDU = PDU # User-side API assumes SMIv2 if messageProcessingModel == 0: PDU = rfc2576.v2ToV1(PDU) pduVersion = 0 else: pduVersion = 1 sendRequestHandle = getNextHandle() # 3.1 sendPduHandle = snmpEngine.msgAndPduDsp.sendPdu( snmpEngine, transportDomain, transportAddress, messageProcessingModel, securityModel, securityName, securityLevel, contextEngineId, contextName, pduVersion, PDU, True, timeoutInTicks, self.processResponsePdu, (sendRequestHandle, cbFun, cbCtx)) snmpEngine.transportDispatcher.jobStarted(id(self)) self.__pendingReqs[sendPduHandle] = (transportDomain, transportAddress, messageProcessingModel, securityModel, securityName, securityLevel, contextEngineId, contextName, pduVersion, origPDU, timeoutInTicks, retryCount, 0, 0) debug.logger & debug.FLAG_APP and debug.logger( 'sendPdu: sendPduHandle %s, timeout %d*10 ms/%d ticks, retry ' '0 of %d' % (sendPduHandle, timeout, timeoutInTicks, retryCount)) return sendRequestHandle
def sendReq( self, snmpEngine, addrName, varBinds, cbFun, cbCtx=None, contextEngineId=None, contextName='' ): ( transportDomain, transportAddress, timeout, retryCount, messageProcessingModel, securityModel, securityName, securityLevel ) = config.getTargetInfo(snmpEngine, addrName) pduVersion, pMod = getVersionSpecifics(messageProcessingModel) reqPDU = pMod.SetRequestPDU() pMod.apiPDU.setDefaults(reqPDU) pMod.apiPDU.setVarBinds(reqPDU, varBinds) # User-side API assumes SMIv2 if messageProcessingModel == 0: reqPDU = rfc2576.v2ToV1(reqPDU) pMod = api.protoModules[api.protoVersion1] requestHandle = getNextHandle() self._sendPdu( snmpEngine, transportDomain, transportAddress, messageProcessingModel, securityModel, securityName, securityLevel, contextEngineId, contextName, pduVersion, reqPDU, timeout, retryCount, 0, requestHandle, (self.processResponsePdu, (cbFun, cbCtx)) ) return requestHandle
def sendReq(self, snmpEngine, addrName, nonRepeaters, maxRepetitions, varBinds, cbFun, cbCtx=None, contextEngineId=None, contextName=''): (transportDomain, transportAddress, timeout, retryCount, messageProcessingModel, securityModel, securityName, securityLevel) = config.getTargetInfo(snmpEngine, addrName) reqPDU = v2c.GetBulkRequestPDU() v2c.apiBulkPDU.setDefaults(reqPDU) v2c.apiBulkPDU.setNonRepeaters(reqPDU, nonRepeaters) v2c.apiBulkPDU.setMaxRepetitions(reqPDU, maxRepetitions) v2c.apiBulkPDU.setVarBinds(reqPDU, varBinds) sendRequestHandle = getNextHandle() try: self._sendPdu( snmpEngine, transportDomain, transportAddress, messageProcessingModel, securityModel, securityName, securityLevel, contextEngineId, contextName, reqPDU, timeout, retryCount, 0, # retries sendRequestHandle, (self.processResponsePdu, (cbFun, cbCtx))) except StatusInformation: statusInformation = sys.exc_info()[1] debug.logger & debug.flagApp and debug.logger( 'sendReq: sendPduHandle %s: _sendPdu() failed with %r' % (sendRequestHandle, statusInformation)) cbFun(sendRequestHandle, statusInformation['errorIndication'], 0, 0, (), cbCtx) return sendRequestHandle
def sendReq(self, snmpEngine, addrName, varBinds, cbFun, cbCtx=None, contextEngineId=None, contextName=null): ( transportDomain, transportAddress, timeout, retryCount, messageProcessingModel, securityModel, securityName, securityLevel, ) = config.getTargetInfo(snmpEngine, addrName) pduVersion, pMod = getVersionSpecifics(messageProcessingModel) reqPDU = pMod.GetNextRequestPDU() pMod.apiPDU.setDefaults(reqPDU) pMod.apiPDU.setVarBinds(reqPDU, varBinds) requestHandle = getNextHandle() self._sendPdu( snmpEngine, transportDomain, transportAddress, messageProcessingModel, securityModel, securityName, securityLevel, contextEngineId, contextName, pduVersion, reqPDU, timeout, retryCount, 0, requestHandle, (self.processResponsePdu, (cbFun, cbCtx)), ) return requestHandle