v0.0.1 — first public release
Provision NetBox devices and virtual machines into OpenNMS Horizon 36 as requisition nodes, via the OpenNMS REST provisioning API.
Highlights
- Filter-based Requisitions — group Devices/VMs into a Foreign Source with a saved or custom NetBox filter; overlaps between requisitions surface as blocking conflicts to resolve before sync.
- Discovery-driven detectors & policies — configure a requisition's detectors and provisioning policies from the live OpenNMS catalog (parameters / options / required discovered via REST), with a curated preset overlay and a freeform class escape hatch.
- Per-interface SNMP roles — the management IP is the Primary SNMP interface by default; add more IPs as Primary / Secondary / Not-eligible.
- Asset & metadata enrichment — map NetBox inventory to OpenNMS node asset fields, and attach meta-data at node / interface / service scope.
- Graded node status — a device with no management IP is provisioned as an inventory-only node with a warning, not silently skipped.
- Safe sync — a dry-run diff against the live OpenNMS state before syncing, serialized per-Foreign-Source background jobs, and a drift reconciler that clears only the requisitions the plugin owns.
- Connect OpenNMS — a permission-gated page to verify the configured connection.
Requirements
NetBox 4.6.1+ · Python 3.12+ · OpenNMS Horizon 36
Install
pip install netbox-opennms-plugin
Add netbox_opennms to PLUGINS, set PLUGINS_CONFIG, run manage.py migrate, and restart NetBox + its worker. Kubernetes/Helm and a quickstart demo are in the README.
Verified in CI: lint + the 608-test unit suite and the live OpenNMS Horizon 36 round-trip all green.