P:\twistedsnmp\doc\examples\simpleserver.py

        1 """Simple example of an Agent for testing"""
        2 from twisted.internet import reactor
        3 from twisted.internet import error as twisted_error
        4 from twistedsnmp import agent, agentprotocol, bisectoidstore
        5 try:
        6     from twistedsnmp import bsdoidstore
        7 except ImportError:
        8     import warnings
        9     warnings.warn( """No BSDDB OID Storage available for testing""" )
       10     bsdoidstore = None
       11
       12 def createAgent( oids ):
       13     ports = [161]+range(20000,25000)
       14     for port in ports:
       15         try:
       16             agentObject = reactor.listenUDP(
       17                 port, agentprotocol.AgentProtocol(
       18                     snmpVersion = 'v2c',
       19                     agent = agent.Agent(
       20                         dataStore = bisectoidstore.BisectOIDStore(
       21                             OIDs = oids,
       22                         ),
       23                     ),
       24                 ),
       25             )
       26         except twisted_error.CannotListenError:
       27             pass
       28         else:
       29             return agentObject, port
       30
       31 testingOIDs = {
       32     '.1.3.6.1.2.1.1.1.0': 'Some tool out in the field',
       33     '.1.3.6.1.2.1.1.2.0': '.1.3.6.1.4.1.88.3.1',
       34     '.1.3.6.1.2.1.1.3.0': 558566090,
       35     '.1.3.6.1.2.1.1.4.0': "support@somewhere.ca",
       36     '.1.3.6.1.2.1.1.5.0': "NameOfSystem",
       37     '.1.3.6.1.2.1.1.6.0': "SomeHeadEnd, West Hinterlands, Canada",
       38 }
       39
       40 def main(oids=testingOIDs):
       41     agent, port = createAgent( oids )
       42
       43 if __name__ == "__main__":
       44     reactor.callWhenRunning( main )
       45     reactor.run()
       46