def n_TrapV1Params_exit(self, cbCtx, node): snmpEngine, ctx = cbCtx # Initialize v1 PDU with passed params, then proxy it into v2c PDU v1Pdu = v1.TrapPDU() v1.apiTrapPDU.setDefaults(v1Pdu) if 'EnterpriseOid' in ctx: v1.apiTrapPDU.setEnterprise(v1Pdu, ctx['EnterpriseOid']) if 'AgentName' in ctx: v1.apiTrapPDU.setAgentAddr(v1Pdu, ctx['AgentName']) if 'GenericTrap' in ctx: v1.apiTrapPDU.setGenericTrap(v1Pdu, ctx['GenericTrap']) if 'SpecificTrap' in ctx: v1.apiTrapPDU.setSpecificTrap(v1Pdu, ctx['SpecificTrap']) if 'Uptime' in ctx: v1.apiTrapPDU.setTimeStamp(v1Pdu, ctx['Uptime']) ctx['pdu'] = rfc2576.v1ToV2(v1Pdu)
# PDU map __v1ToV2PduMap = { v1.GetRequestPDU.tagSet: v2c.GetRequestPDU(), v1.GetNextRequestPDU.tagSet: v2c.GetNextRequestPDU(), v1.SetRequestPDU.tagSet: v2c.SetRequestPDU(), v1.GetResponsePDU.tagSet: v2c.ResponsePDU(), v1.TrapPDU.tagSet: v2c.SNMPv2TrapPDU() } __v2ToV1PduMap = { v2c.GetRequestPDU.tagSet: v1.GetRequestPDU(), v2c.GetNextRequestPDU.tagSet: v1.GetNextRequestPDU(), v2c.SetRequestPDU.tagSet: v1.SetRequestPDU(), v2c.ResponsePDU.tagSet: v1.GetResponsePDU(), v2c.SNMPv2TrapPDU.tagSet: v1.TrapPDU(), v2c.GetBulkRequestPDU.tagSet: v1.GetNextRequestPDU() # 4.1.1 } # Trap map __v1ToV2TrapMap = { 0: (1, 3, 6, 1, 6, 3, 1, 1, 5, 1), 1: (1, 3, 6, 1, 6, 3, 1, 1, 5, 2), 2: (1, 3, 6, 1, 6, 3, 1, 1, 5, 3), 3: (1, 3, 6, 1, 6, 3, 1, 1, 5, 4), 4: (1, 3, 6, 1, 6, 3, 1, 1, 5, 5), 5: (1, 3, 6, 1, 6, 3, 1, 1, 5, 6) } __v2ToV1TrapMap = {
ctx['AgentName'] = socket.gethostbyname(node[0].attr) except socket.error, why: raise error.PySnmpError('Bad agent name %s: %s' % (node[0].attr, why)) def n_GenericTrap(self, (snmpEngine, ctx), node): ctx['GenericTrap'] = node[0].attr def n_SpecificTrap(self, (snmpEngine, ctx), node): ctx['SpecificTrap'] = node[0].attr def n_Uptime(self, (snmpEngine, ctx), node): ctx['Uptime'] = long(node[0].attr) def n_TrapV1Params_exit(self, (snmpEngine, ctx), node): v1Pdu = v1.TrapPDU() v1.apiTrapPDU.setDefaults(v1Pdu) if ctx.has_key('EnterpriseOid'): v1.apiTrapPDU.setEnterprise(v1Pdu, ctx['EnterpriseOid']) if ctx.has_key('AgentName'): v1.apiTrapPDU.setAgentAddr(v1Pdu, ctx['AgentName']) if ctx.has_key('GenericTrap'): v1.apiTrapPDU.setGenericTrap(v1Pdu, ctx['GenericTrap']) if ctx.has_key('SpecificTrap'): v1.apiTrapPDU.setSpecificTrap(v1Pdu, ctx['SpecificTrap']) if ctx.has_key('Uptime'): v1.apiTrapPDU.setTimeStamp(v1Pdu, ctx['Uptime']) v2cPdu = rfc2576.v1ToV2(v1Pdu) if not ctx.has_key('varBinds'): ctx['varBinds'] = [] ctx['varBinds'] = v2c.apiPDU.getVarBinds(v2cPdu) + ctx['varBinds']