some refacto
This commit is contained in:
parent
35379e5a1e
commit
348d80e4da
2 changed files with 26 additions and 54 deletions
|
@ -20,11 +20,6 @@ class Network(object):
|
|||
self.lldp = LLDP() if config.network.lldp else None
|
||||
self.nics = self.scan()
|
||||
self.ipmi = None
|
||||
if self.get_network_type() == 'server':
|
||||
self.ipmi = self.get_ipmi()
|
||||
if self.ipmi:
|
||||
self.nics.append(self.ipmi)
|
||||
|
||||
self.dcim_choices = {}
|
||||
dcim_c = nb.dcim.choices()
|
||||
|
||||
|
@ -44,25 +39,6 @@ class Network(object):
|
|||
def get_network_type():
|
||||
return NotImplementedError
|
||||
|
||||
def get_netbox_network_cards(self):
|
||||
return self.nb_net.interfaces.filter(
|
||||
**self.custom_arg_id,
|
||||
)
|
||||
|
||||
def get_netbox_network_card(self, nic):
|
||||
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,
|
||||
)
|
||||
return interface
|
||||
|
||||
def scan(self):
|
||||
nics = []
|
||||
for interface in os.listdir('/sys/class/net/'):
|
||||
|
@ -155,6 +131,25 @@ class Network(object):
|
|||
def get_network_cards(self):
|
||||
return self.nics
|
||||
|
||||
def get_netbox_network_card(self, nic):
|
||||
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,
|
||||
)
|
||||
return interface
|
||||
|
||||
def get_netbox_network_cards(self):
|
||||
return self.nb_net.interfaces.filter(
|
||||
**self.custom_arg_id,
|
||||
)
|
||||
|
||||
def get_netbox_type_for_nic(self, nic):
|
||||
if config.virtual.enabled:
|
||||
return self.dcim_choices['interface:type']['Virtual']
|
||||
|
@ -347,29 +342,10 @@ class Network(object):
|
|||
netbox_ip.save()
|
||||
return netbox_ip
|
||||
|
||||
def create_netbox_network_cards(self):
|
||||
logging.debug('Creating NIC...')
|
||||
for nic in self.nics:
|
||||
interface = self.get_netbox_network_card(nic)
|
||||
# if network doesn't exist we create it
|
||||
if not interface:
|
||||
new_interface = self.create_netbox_nic(
|
||||
nic,
|
||||
mgmt=True if 'ipmi' in nic.keys() else False
|
||||
)
|
||||
if nic['ip']:
|
||||
# for each ip, we try to find it
|
||||
# assign the device's interface to it
|
||||
# or simply create it
|
||||
for ip in nic['ip']:
|
||||
self.create_or_update_netbox_ip_on_interface(ip, new_interface)
|
||||
self._set_bonding_interfaces()
|
||||
logging.debug('Finished creating NIC!')
|
||||
|
||||
def update_netbox_network_cards(self):
|
||||
def create_or_update_netbox_network_cards(self):
|
||||
if config.update_all is None or config.update_network is None:
|
||||
return None
|
||||
logging.debug('Updating NIC...')
|
||||
logging.debug('Creating/Updating NIC...')
|
||||
|
||||
# delete unknown interface
|
||||
nb_nics = self.get_netbox_network_cards()
|
||||
|
@ -454,6 +430,9 @@ class Network(object):
|
|||
class ServerNetwork(Network):
|
||||
def __init__(self, server, *args, **kwargs):
|
||||
super(ServerNetwork, self).__init__(server, args, kwargs)
|
||||
self.ipmi = self.get_ipmi()
|
||||
if self.ipmi:
|
||||
self.nics.append(self.ipmi)
|
||||
self.server = server
|
||||
self.device = self.server.get_netbox_server()
|
||||
self.nb_net = nb.dcim
|
||||
|
@ -467,13 +446,6 @@ class ServerNetwork(Network):
|
|||
ipmi = IPMI().parse()
|
||||
return ipmi
|
||||
|
||||
def get_netbox_ipmi(self):
|
||||
ipmi = self.get_ipmi()
|
||||
mac = ipmi['MAC Address']
|
||||
return self.nb_net.interfaces.get(
|
||||
mac=mac
|
||||
)
|
||||
|
||||
def connect_interface_to_switch(self, switch_ip, switch_interface, nb_server_interface):
|
||||
logging.info('Interface {} is not connected to switch, trying to connect..'.format(
|
||||
nb_server_interface.name
|
||||
|
|
|
@ -244,7 +244,7 @@ class ServerBase():
|
|||
self._netbox_create_server(datacenter, rack)
|
||||
|
||||
self.network = ServerNetwork(server=self)
|
||||
self.network.create_netbox_network_cards()
|
||||
self.network.create_or_update_netbox_network_cards()
|
||||
|
||||
self.power = PowerSupply(server=self)
|
||||
self.power.create_or_update_power_supply()
|
||||
|
@ -330,7 +330,7 @@ class ServerBase():
|
|||
# check network cards
|
||||
if config.update_all or config.update_network:
|
||||
self.network = ServerNetwork(server=self)
|
||||
self.network.update_netbox_network_cards()
|
||||
self.network.create_or_update_netbox_network_cards()
|
||||
# update inventory
|
||||
if config.update_all or config.update_inventory:
|
||||
self.inventory = Inventory(server=self)
|
||||
|
|
Loading…
Reference in a new issue