Menu

Tree [r8] /
 History

HTTPS access


File Date Author Commit
 COPYING 2010-02-09 phalaaxx [r1] Initial import, v0.1
 PAX-TUTORIAL-MIB.mib 2010-11-11 phalaaxx [r8] Changed interface to call main program's global...
 README 2010-11-11 phalaaxx [r8] Changed interface to call main program's global...
 agentx.py 2010-11-11 phalaaxx [r8] Changed interface to call main program's global...
 example.py 2010-11-11 phalaaxx [r8] Changed interface to call main program's global...
 setup.py 2010-11-11 phalaaxx [r8] Changed interface to call main program's global...

Read Me

Requirements:
-------------
  * net-snmp libraries
  * python with ctypes module support


Installation:
-------------
  $ sudo python ./setup.py install
or
  $ sudo python3 ./setup.py install


Usage:
------
SNMP AgentX modules are usually supposed to collect data and serve it in SNMP requests.
python-agentx module can be used to automate most of the work involved in building SNMP
AgentX modules. This includes: SNMP initialization, register variables that will be
served with SNMP requests, register handlers for read, write and both read/write requests,
setting up time interval to interrupt module's main loop (for the purpose of updating 
variables), main loop routine.
What follows is a demonstration program whose purpose is to show the very least steps
required to write simple, yet functional AgentX module. It only registers one variable
in cache for 15 seconds with a hardcoded value and serves SNMP requests forever:

  from agentx import AgentX

  # function that will be called every 15 seconds
  def onUpdate(ax, axd):
     # register variables
     axd.RegisterVar('paxModuleIntVarRO', 1)

  if __name__ == '__main__':
    # initialize snmp module
    AgentX(
      Name          = 'module-name',
      #Master       = True, # if we want the module to act as master agent
      MIBFile       = '',
      RootOID       = 'PAX-TUTORIAL-MIB::paxData',
      CacheInterval = 30,
    )


Limits:
-------
This AgentX module uses ALARM signal to interrupt AgentX.Process(). This means
it is not possible to use ALARM signal from within the same program that
uses this agentx module.


License:
--------
This module is licensed under the terms of GNU GPL v3. For more details
read the COPYING file.