Skip to content

v1.9.1 - #578

Merged
semx merged 16 commits into
mainfrom
development
Oct 9, 2026
Merged

v1.9.1#578
semx merged 16 commits into
mainfrom
development

Conversation

@semx

@semx semx commented Oct 5, 2026 •

Copy link
Copy Markdown
Collaborator

Fixes global prefix matching (#586, fixes #579), the CDP/LLDP neighbor queries (#581, fixes #580), interface matching by the primary MAC on NetBox >= 4.2 (#585, fixes #584) and the 'module' relation errors on VMware-only runs (#576, fixes #575); stops publishing the image to Docker Hub (#577). Adds the check_redfish option skip_os_reported_ips (#583, fixes #582).

marcin-zieba-git and others added 5 commits October 5, 2026 07:59
Interfaces and power ports reference their NetBox module. Only the
check_redfish source reads modules from NetBox. A VMware only run
therefore logged "Problems resolving relation 'module'" for every
interface and power port with a module. NetBox 3.3 to 4.2 has modules,
but the module type is only read from 4.3. There check_redfish logged
the same errors.

The inventory now records the object types read from NetBox. The
resolver resolves relations as before. It logs an error only when the
type was read and the object is still missing. Otherwise the value
stays as NetBox returned it.

The errors were log noise only. A VMware sync never sets or unsets the
module, so no request changes it.
fix: stops logging relations to types the run did not read as errors
ci: stop publishing the image to Docker Hub
@semx
semx requested a review from bb-Ricardo as a code owner October 5, 2026 08:44
tfoks and others added 2 commits October 7, 2026 13:16
QueryNetworkHint() expects an optional list of device names. Passing ""
makes vCenter look up a NIC with an empty name and raise
vim.fault.NotFound, which was silently ignored. As a result no CDP/LLDP
data was ever read: the neighbor info was missing from the pNIC
descriptions and sync_host_cables never created any cables.

Call QueryNetworkHint() without arguments and log a failing query
instead of discarding it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
tfoks and others added 9 commits October 7, 2026 14:55
Some BMCs (i.e. HPE iLO with AMS) report the IP addresses of the
operating system on the physical NICs. If the same server is also synced
by another source (i.e. as an ESXi host by the VMware source), both
sources move these IPs back and forth between the VMkernel interface and
the physical NIC on every run, and the primary IP of the device gets
unset each time.

The new option 'skip_os_reported_ips' (default: False) syncs only the IP
addresses of the BMC ports.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
From NetBox 4.2 on, sources only maintain the interface's primary MAC
address object. The legacy 'mac_address' field keeps the value NetBox
returned when the data was read and is never updated during a run.

map_object_interfaces_to_current_interfaces() still matched on that
field. If one source changed an interface's primary MAC address, the
next source still saw the old MAC address. With a VMware and a
check_redfish source syncing the same ESXi hosts, a BMC port (i.e.
Lenovo XCC) whose MAC address had ended up on vmk0 was merged into vmk0
on every run. The BMC IP moved to vmk0, the host's management IP was
removed and the primary IP of the device got unset.

Use the MAC address of the primary MAC address object on NetBox >= 4.2.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
An IP is matched against the prefixes of its site first and then against
the prefixes without a scope. Since 8f9fa01 (#397) that second pass goes
through NBPrefix.matches_site(), which returned False for site=None, so a
prefix without a scope was never found: the IP did not get the VRF and
tenant of the prefix, and an IP reported without a prefix length was
dropped with "Unable to add IP address to NetBox".

A prefix counts as global only without a scope type. A scope whose object
is not in the inventory resolves to None as well and must not turn such a
prefix into a global one.

Fixes #579
vcsim ignores the device argument of QueryNetworkHint(), so the suite
could not tell that "" makes vCenter raise NotFound (#580). The test
answers the call like vCenter does and fails on a device name the host
does not have.

The comments claiming the captures carry no CDP/LLDP data were wrong:
vc001 records CDP neighbors, their switches are just not in NetBox.
fix(VMware): query network hints of all host NICs
tests: query the network hints the way vCenter answers
netbox: match a prefix without a scope again
fix: match interfaces by the primary MAC address object on NetBox >= 4.2
feat(check_redfish): add option to skip OS reported IP addresses
@semx

semx commented Oct 8, 2026 •

Copy link
Copy Markdown
Collaborator Author

Three more fixes from the reports by @tfoks went in: #581 (CDP/LLDP neighbors were never read), #586 (global prefixes were never matched) and #585 (interfaces matched by a stale MAC on NetBox >= 4.2). #583 adds an option rather than a fix; it is in development as well, so it ships with 1.9.1 unless you want to hold it back. It is off by default and I ran the #582 scenario against a NetBox 4.7.2 with it on and off. Release notes updated; ready when you are.

@semx
semx merged commit 2a75e7a into main Oct 9, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment