Skip to content

Commit

Permalink
Load MIB definitions at Zino startup
Browse files Browse the repository at this point in the history
I.e. have Net-SNMP load MIBs from its defined locations
  • Loading branch information
lunkwill42 committed Jan 23, 2025
1 parent 7b9acec commit 0108a6c
Showing 1 changed file with 24 additions and 0 deletions.
24 changes: 24 additions & 0 deletions src/zino/zino.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,13 @@
from typing import Any, Optional

import tzlocal
from netsnmpy import netsnmp
from pydantic import ValidationError

from zino import flaps, state
from zino.api.server import ZinoServer
from zino.config import InvalidConfigurationError, read_configuration
from zino.oid import OID
from zino.scheduler import get_scheduler, load_and_schedule_polldevs
from zino.statemodels import Event
from zino.trapd import TrapReceiver
Expand Down Expand Up @@ -60,10 +62,32 @@ def main():
_log.fatal(e)
sys.exit(1)

init_netsnmp()
state.state = state.ZinoState.load_state_from_file(state.config.persistence.file) or state.ZinoState()
init_event_loop(args)


def init_netsnmp():
"""Basic initialization of Net-SNMP library"""
netsnmp.register_log_callback(enable_debug=logging.getLogger("netsnmpy.netsnmp").isEnabledFor(logging.DEBUG))
netsnmp.load_mibs()
# Test basic MIB lookup to fail early
try:
netsnmp.symbol_to_oid("SNMPv2-MIB::sysUpTime")
symbol = netsnmp.oid_to_symbol(
OID(
".1.3.6.1.4.1.2636.5.1.1.2.1.1.1.11.0.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.32.1.7.0.0.0."
"128.1.0.0.0.0.0.0.0.2"
)
)
assert symbol.startswith("BGP4-V2-MIB-JUNIPER::jnxBgpM2PeerRemoteAddr")
except (ValueError, AssertionError) as error:
_log.fatal("MIB tests failed (%s). Make sure the MIBs are loaded correctly.", error)
_log.fatal("MIBS=%s", os.environ.get("MIBS"))
_log.fatal("MIBDIRS=%s", os.environ.get("MIBDIRS"))
sys.exit(1)


def load_config(args: argparse.Namespace) -> Optional[state.Configuration]:
"""
Loads the configuration file, exiting the process if there are config errors
Expand Down

0 comments on commit 0108a6c

Please sign in to comment.