make sure every interface attribute is ok

This commit is contained in:
Solvik Blum 2019-08-07 19:09:09 +02:00
commit ab660b4fcf
No known key found for this signature in database
GPG key ID: CC12B3DC262B6C47

View file

@ -93,7 +93,7 @@ class Network():
))
for slave in nic['bonding_slaves']:
slave_nic = next(item for item in self.nics if item['name'] == slave)
slave_int = self.get_netbox_network_card(slave_nic)
slave_int = self.get_netbox_network_card(slave_nic)
logging.debug('Settting interface {name} as slave of {master}'.format(
name=slave_int.name, master=bond_int.name
))
@ -224,6 +224,23 @@ class Network():
interface=interface, name=nic['name']))
interface.name = nic['name']
if nic['vlan'] is None and interface.mode is not None:
logging.info('Interface is not tagged, reseting mode')
nic_update = True
interface.mode = None
type = self.get_netbox_type_for_nic(nic)
if type != interface.type.value:
logging.info('Interface type is wrong, resetting')
nic_update = True
interface.type = type
if interface.lag is not None:
if nic['name'] not in self.nics[interface.lag.name]['bonding_slaves']:
logging.info('Interface has no LAG, resetting')
nic_update = True
interface.lag = None
if nic['ip']:
# sync local IPs
for ip in nic['ip']: