diff options
author | elie <elie> | 2004-11-07 09:22:01 +0000 |
---|---|---|
committer | elie <elie> | 2004-11-07 09:22:01 +0000 |
commit | d87fb44bf4f01697003533e1bffd15bd4edbb41d (patch) | |
tree | c0ca5c29051d5a7b8ac4e7c232a26f81702cc7c4 | |
parent | 97ebe4368cedbde9d593dfb3e44b29b213608092 (diff) | |
download | pysnmp-d87fb44bf4f01697003533e1bffd15bd4edbb41d.tar.gz |
initial revision
-rw-r--r-- | examples/v3arch/manager/getgen.py | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/examples/v3arch/manager/getgen.py b/examples/v3arch/manager/getgen.py new file mode 100644 index 0000000..83082cf --- /dev/null +++ b/examples/v3arch/manager/getgen.py @@ -0,0 +1,57 @@ +"""Command Generator Application (GET)""" +from pysnmp.proto.rfc3412 import MsgAndPduDispatcher, AbstractApplication +from pysnmp.proto.api import alpha + +# PDU version to use +ver = alpha.protoVersions[alpha.protoVersionId1] + +class ManagerApplication(AbstractApplication): + __pendingReqs = {} + def sendReq(self, msgAndPduDsp, **kwargs): + sendPduHandle = apply(msgAndPduDsp.sendPdu, (), kwargs) + self.__pendingReqs[sendPduHandle] = kwargs['PDU'] + + def processResponsePdu(self, msgAndPduDsp, **kwargs): + reqPdu = self.__pendingReqs.get(kwargs['sendPduHandle']) + del self.__pendingReqs[kwargs['sendPduHandle']] + if kwargs.has_key('statusInformation'): + raise str(kwargs['statusInformation']) + rspPdu = kwargs['PDU'] + errorStatus = rspPdu.apiAlphaGetErrorStatus() + if errorStatus: + raise str(errorStatus) + for varBind in rspPdu.apiAlphaGetVarBindList(): + oid, val = varBind.apiAlphaGetOidVal() + print oid, val + msgAndPduDsp.transportDispatcher.doDispatchFlag = 0 + +msgAndPduDsp = MsgAndPduDispatcher() + +# Configure target SNMP agent at LCD +( snmpCommunityEntry, ) \ + = msgAndPduDsp.mibInstrumController.mibBuilder.importSymbols( + 'SNMP-COMMUNITY-MIB', 'snmpCommunityEntry' + ) + +msgAndPduDsp.mibInstrumController.writeVars( + (snmpCommunityEntry.getInstNameByIndex(2, 'myAgentIdx'), 'public'), + (snmpCommunityEntry.getInstNameByIndex(3, 'myAgentIdx'), 'myAgent') + ) + +msgAndPduDsp.transportDispatcher.getTransport('udp').openClientMode() + +pdu = ver.GetRequestPdu() +pdu.apiAlphaSetVarBindList(((1,3,6,1,2,1,1,2,0), ver.Null())) + +app = ManagerApplication() +app.sendReq( + msgAndPduDsp, + transportDomain='udp', transportAddress=('127.0.0.1', 1161), + securityName='myAgent', + PDU=pdu, + expectResponse=app + ) + +msgAndPduDsp.runTransportDispatcher() + + |