summaryrefslogtreecommitdiff
path: root/examples/v3arch
diff options
context:
space:
mode:
authorelie <elie>2013-11-25 22:04:58 +0000
committerelie <elie>2013-11-25 22:04:58 +0000
commit64fbab1b824c0e9c3a01c6c97fd1583074e18128 (patch)
tree73b7877f8b75a0f17eb28182ce2586bd5be71aed /examples/v3arch
parent46627e3e9bb9405d1719054a1d935e3fde36d914 (diff)
downloadpysnmp-64fbab1b824c0e9c3a01c6c97fd1583074e18128.tar.gz
example script on transport timeout & retries manipulation added
Diffstat (limited to 'examples/v3arch')
-rw-r--r--examples/v3arch/oneliner/manager/cmdgen/get-v2c-with-custom-timeout-and-retries.py47
1 files changed, 47 insertions, 0 deletions
diff --git a/examples/v3arch/oneliner/manager/cmdgen/get-v2c-with-custom-timeout-and-retries.py b/examples/v3arch/oneliner/manager/cmdgen/get-v2c-with-custom-timeout-and-retries.py
new file mode 100644
index 0000000..2c06aab
--- /dev/null
+++ b/examples/v3arch/oneliner/manager/cmdgen/get-v2c-with-custom-timeout-and-retries.py
@@ -0,0 +1,47 @@
+#
+# Command Generator
+#
+# Send SNMP GET request using the following options:
+#
+# * with SNMPv2c, community 'public'
+# * over IPv4/UDP
+# * to an Agent at demo.snmplabs.com:161
+# * for an OID in string form
+# * use custom timeout and request retries values
+#
+# Transport timing settings (maximum number of request retries and
+# individual request timeout in seconds) can be set on a per-target basis
+# as explained by the code that follows.
+#
+# Keep in mind that while timeout value can be specified in fraction of a
+# second, default pysnmp timer resolution is quite low (tenth of a second)
+# so there's no much point in using timeouts below 0.5. Internal timer
+# can be programmatically adjusted to finer resolution if needed.
+#
+# If retries value is set to 0, pysnmp will issue a single request. Even
+# if no response arrives, there will be no retry. Likewise, retries=1
+# means one initial request plus one retry.
+#
+from pysnmp.entity.rfc3413.oneliner import cmdgen
+
+cmdGen = cmdgen.CommandGenerator()
+
+errorIndication, errorStatus, errorIndex, varBinds = cmdGen.getCmd(
+ cmdgen.CommunityData('public'),
+ cmdgen.UdpTransportTarget(('demo.snmplabs.com', 161),timeout=1.5,retries=0),
+ '1.3.6.1.2.1.1.1.0',
+)
+
+# Check for errors and print out results
+if errorIndication:
+ print(errorIndication)
+else:
+ if errorStatus:
+ print('%s at %s' % (
+ errorStatus.prettyPrint(),
+ errorIndex and varBinds[int(errorIndex)-1][0] or '?'
+ )
+ )
+ else:
+ for name, val in varBinds:
+ print('%s = %s' % (name.prettyPrint(), val.prettyPrint()))