fix: add backwards compatible support for mac_address field #62
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.
This fix adds backwards compatible support for specifying interface mac addresses as
mac_addressin the diode apply changeset api fordcim.interfaceandvirtualization.vminterface. In netbox 4.2 there is really a list of mac addresses associated with an interface and one can be specified as the primary. Until this is supported in diode, themac_addressfield specified when applying a change set is treated as the specification of the primary mac address for the object being created or updated.caveats
This does not disassociate any mac addresses ... it just ensures that the specified mac address is present and promotes it to the primary mac address. So a changing mac address would leave a set of old mac addresses associated until multiple associations are supported directly. Alternatively we could make the specified mac address the only associated address? Not sure which is better.
etc
This pull request introduces a new method to handle backward compatibility for MAC addresses in interfaces and updates the relevant tests to ensure this functionality works correctly. The most important changes include adding the
_handle_interface_mac_address_compatmethod, updating thepostmethod to use this new method, and adding new test cases to verify the backward compatibility.Backward Compatibility for MAC Addresses:
netbox_diode_plugin/api/views.py: Added the_handle_interface_mac_address_compatmethod to handle backward compatibility for MAC addresses in interfaces.Updates to the
postMethod:netbox_diode_plugin/api/views.py: Updated thepostmethod to call_handle_interface_mac_address_compatfordcim.interfaceandvirtualization.vminterfaceobject types.Test Enhancements:
netbox_diode_plugin/tests/test_api_apply_change_set.py: ImportedVMInterfaceandVirtualMachinemodels to test backward compatibility.netbox_diode_plugin/tests/test_api_apply_change_set.py: Added setup forVirtualMachineinstances.netbox_diode_plugin/tests/test_api_apply_change_set.py: Added test casestest_create_and_update_interface_with_compat_mac_address_fieldandtest_create_and_update_vminterface_with_compat_mac_address_fieldto verify the backward compatibility for MAC addresses.