Skip to content
Snippets Groups Projects
Commit 88adc25e authored by Taya Snijder's avatar Taya Snijder
Browse files

started working on MIB compiler

parent 068a4d63
No related branches found
No related tags found
1 merge request!288Resolve L2SS-446 "Extend snmp client to support mib files"
from pysnmp.smi import builder, compiler
from pathlib import Path
import argparse
import logging
logging.basicConfig(level=logging.DEBUG, format = '%(asctime)s:%(levelname)s: %(message)s')
logger = logging.getLogger("compiler")
def mib_compile(mib_list : list, src=None, dst=None):
fpath = str(Path().absolute()).replace("\\", "/")
if src is None:
src = f"{fpath}/mibs"
# "file://" prefix required for local files
src = "file://" + src
if dst is None:
dst = f"{fpath}/output_pymibs"
print(src, dst)
mibBuilder = builder.MibBuilder()
# set the path for the input .mib files
# f'file://{fpath}/mibs'
compiler.addMibCompiler(mibBuilder, sources=[src, ], destination=dst)
for i in mib_list:
# compile it
mibBuilder.loadModules(i)
logger.debug(f"Compiled \"{i}\"")
if __name__ == "__main__":
out_path = f"{Path().absolute()}/output_pymibs"
parser = argparse.ArgumentParser(
description='Compiles .mib files in to the easy to load pysnmp format')
parser.add_argument(
'-m', '--mibs', type=str, required=True, nargs='+', help='list of mib names to compile')
parser.add_argument(
'-d', '--destination', type=str, required=False, default=out_path,
help='sets the output directory for the compiled mibs. (default: '
'%(default)s)')
parser.add_argument(
'-s', '--source', type=str, required=False,
help='sets the input directory to read the .mib files from (default: '
'%(default)s)')
args = parser.parse_args()
# argparse arguments
mibs = args.mibs
destination = args.destination
source = args.source
mib_compile(["IF-MIB"], src=source, dst=destination)
\ No newline at end of file
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment