summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorelie <elie>2004-11-07 09:22:01 +0000
committerelie <elie>2004-11-07 09:22:01 +0000
commitd87fb44bf4f01697003533e1bffd15bd4edbb41d (patch)
treec0ca5c29051d5a7b8ac4e7c232a26f81702cc7c4
parent97ebe4368cedbde9d593dfb3e44b29b213608092 (diff)
downloadpysnmp-d87fb44bf4f01697003533e1bffd15bd4edbb41d.tar.gz
initial revision
-rw-r--r--examples/v3arch/manager/getgen.py57
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()
+
+