network: resolve primary_mac_address by MAC object id#406
Open
tomatomov wants to merge 1 commit into
Open
Conversation
On NetBox 4.2+ MAC addresses are first-class objects and the same MAC
string can legitimately exist on multiple interfaces (VLAN/VXLAN stacks
inherit the lower device's MAC, bonded slaves share the bond MAC, IPMI
sometimes overlaps with a regular NIC, etc.).
Sending `primary_mac_address = {"mac_address": "<str>"}` makes NetBox
resolve the FK by string, which fails as soon as more than one MAC
object matches:
400 Bad Request: {'primary_mac_address':
["Multiple objects match the provided attributes:
{'mac_address': 'A6:73:11:EE:F7:64'}"]}
Resolve the MAC object scoped to the current interface (which is always
unique) and assign primary_mac_address by its numeric id instead. Fall
back to the previous behaviour if the object can't be found.
Fixes: Solvik#371
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.
On NetBox 4.2+ MAC addresses are first-class objects and the same MAC string can legitimately exist on multiple interfaces (VLAN/VXLAN stacks inherit the lower device's MAC, bonded slaves share the bond MAC, IPMI sometimes overlaps with a regular NIC, etc.).
Sending
primary_mac_address = {"mac_address": "<str>"}makes NetBox resolve the FK by string, which fails as soon as more than one MAC object matches:Resolve the MAC object scoped to the current interface (which is always unique) and assign primary_mac_address by its numeric id instead. Fall back to the previous behaviour if the object can't be found.
Fixes: #371