diff --git a/vpp-snmp-agent.py b/vpp-snmp-agent.py index 47d5a52..39aa9fe 100755 --- a/vpp-snmp-agent.py +++ b/vpp-snmp-agent.py @@ -3,8 +3,16 @@ from vppstats import VPPStats from vppapi import VPPApi +import sys import agentx +try: + import argparse +except ImportError: + print("ERROR: install argparse manually: sudo pip install argparse") + sys.exit(2) + + class MyAgent(agentx.Agent): def setup(self): global vppstat, vpp, logger @@ -138,10 +146,19 @@ class MyAgent(agentx.Agent): return ds def main(): - agentx.setup_logging(debug=False) + parser = argparse.ArgumentParser(formatter_class=argparse.RawTextHelpFormatter) + parser.add_argument('-a', dest='address', default="localhost:705", type=str, help="""Location of the SNMPd agent (unix-path or host:port), default localhost:705""") + parser.add_argument('-p', dest='period', type=int, default=30, help="""Period to poll VPP, default 30 (seconds)""") + parser.add_argument('-d', dest='debug', action='store_true', help="""Enable debug, default False""") + + args = parser.parse_args() + if args.debug: + print("Arguments:", args) + + agentx.setup_logging(debug=args.debug) try: - a = MyAgent(server_address='localhost:705', period=30) + a = MyAgent(server_address=args.address, period=args.period) a.run() except Exception as e: print("Unhandled exception:", e) diff --git a/vpp-snmp-agent.service b/vpp-snmp-agent.service index b910d98..cd7bfee 100644 --- a/vpp-snmp-agent.service +++ b/vpp-snmp-agent.service @@ -6,7 +6,8 @@ ConditionPathExists=/etc/snmp/snmpd.conf [Service] Type=simple NetworkNamespacePath=/var/run/netns/dataplane -ExecStart=/usr/sbin/vpp-snmp-agent +ExecStart=/usr/sbin/vpp-snmp-agent -a localhost:705 -p 30 +User=Debian-snmp Group=vpp ExecReload=/bin/kill -HUP $MAINPID Restart=on-failure