Repository navigation
v1.9.1 - #578
Merged
Merged
v1.9.1#578
Conversation
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
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>
bb-Ricardo
force-pushed
the
development
branch
from
October 7, 2026 11:32
4a392be to
69caa8e
Compare
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
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. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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).