Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update MAC address on pre-existing interfaces #166

Open
nrhtr opened this issue Sep 1, 2020 · 0 comments
Open

Update MAC address on pre-existing interfaces #166

nrhtr opened this issue Sep 1, 2020 · 0 comments
Labels
need testing type: enhancement New feature or request

Comments

@nrhtr
Copy link

nrhtr commented Sep 1, 2020

Describe the bug
If a device already has interfaces with no MAC set (e.g. device type template interfaces) netbox-agent bails out. It seems it can't find the interface because it's searching by mac&name. I think it should be searching by device&name since this is enough to uniquely identify interfaces.

Expected behavior
MAC address should be updated for existing interfaces.

Configuration file
N/A

Environment:
N/A

Additional context
This is the patch I applied to get it to work for me. This probably breaks other stuff but at least shows what I mean.

# diff /usr/local/lib/python3.6/site-packages/netbox_agent/network.old.py /usr/local/lib/python3.6/site-packages/netbox_agent/network.py
145,155c145,149
<         if nic['mac'] is None:
<             interface = self.nb_net.interfaces.get(
<                 name=nic['name'],
<                 **self.custom_arg_id,
<             )
<         else:
<             interface = self.nb_net.interfaces.get(
<                 mac_address=nic['mac'],
<                 name=nic['name'],
<                 **self.custom_arg_id,
<             )
---
> 	# Should/can this query by device&name?
>         interface = self.nb_net.interfaces.get(
>             name=nic['name'],
>             **self.custom_arg_id,
>         )
409a404,409
>                 nic_update += 1
>
>             if nic['mac'] != getattr(interface, 'mac_address', ''):
>                 logging.info('Updating interface {interface} mac to: {mac}'.format(
>                     interface=interface, mac=nic['mac']))
>                 interface.mac_address = nic['mac']
@Solvik Solvik added need testing type: enhancement New feature or request labels Nov 28, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
need testing type: enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants