Modifying variables
*******************


Coerce value to SET to MIB spec
===============================

Send SNMP SET request using the following options:

* with SNMPv2c, community 'public'

* over IPv4/UDP

* to an Agent at demo.snmplabs.com:161

* setting SNMPv2-MIB::sysName.0 to new value (type taken from MIB)

Functionally similar to:

   $ snmpset -v2c -c public demo.snmplabs.com SNMPv2-MIB::sysDescr.0 = "new system name"

   from pysnmp.hlapi import *

   errorIndication, errorStatus, errorIndex, varBinds = next(
       setCmd(SnmpEngine(),
              CommunityData('public'),
              UdpTransportTarget(('demo.snmplabs.com', 161)),
              ContextData(),
              ObjectType(ObjectIdentity('SNMPv2-MIB', 'sysORDescr', 1),
                         'new system name'))
   )

   if errorIndication:
       print(errorIndication)
   elif errorStatus:
       print('%s at %s' % (errorStatus.prettyPrint(),
                           errorIndex and varBinds[int(errorIndex) - 1][0] or '?'))
   else:
       for varBind in varBinds:
           print(' = '.join([x.prettyPrint() for x in varBind]))

"Download" script.


SET scalars values
==================

Send SNMP SET request using the following options:

* with SNMPv1, community 'public'

* over IPv4/UDP

* to an Agent at demo.snmplabs.com:161

* setting three var-bindings to new values

Please note, that in this example MIB lookup is only used for the
second var-bindins. For the rest, value types are inferred from passed
objects.

Functionally similar to:

   $ snmpset -v1 -c public demo.snmplabs.com 1.3.6.1.2.1.1.9.1.2.1 o 1.3.6.1.4.1.20408.1.1 1.3.6.1.2.1.1.9.1.2.1 = 1.3.6.1.4.1.20408.1.1 1.3.6.1.2.1.1.9.1.3.1 s "new system name"

   from pysnmp.hlapi import *

   errorIndication, errorStatus, errorIndex, varBinds = next(
       setCmd(SnmpEngine(),
              CommunityData('public', mpModel=0),
              UdpTransportTarget(('demo.snmplabs.com', 161)),
              ContextData(),
              ObjectType(ObjectIdentity('1.3.6.1.2.1.1.9.1.2.1'),
                         ObjectIdentifier('1.3.6.1.4.1.20408.1.1')),
              ObjectType(ObjectIdentity('1.3.6.1.2.1.1.9.1.2.1'),
                         '1.3.6.1.4.1.20408.1.1'),
              ObjectType(ObjectIdentity('1.3.6.1.2.1.1.9.1.3.1'),
                         OctetString('new system name')))
   )

   if errorIndication:
       print(errorIndication)
   elif errorStatus:
       print('%s at %s' % (errorStatus.prettyPrint(),
                           errorIndex and varBinds[int(errorIndex) - 1][0] or '?'))
   else:
       for varBind in varBinds:
           print(' = '.join([x.prettyPrint() for x in varBind]))

"Download" script.

See also: library-reference.
