diff options
author | Håkon Solbjørg <hakon@solbj.org> | 2023-04-01 21:49:08 +0200 |
---|---|---|
committer | Håkon Solbjørg <hakon@solbj.org> | 2023-04-01 22:01:22 +0200 |
commit | 9dc77047216125bb1a092b6181cf8e2412c03d3d (patch) | |
tree | 9cd42a8dc8b839b2176c9ab1a4927f29cdde54ec /tools/netbox/scripts/planning2netbox/planning2netbox.py | |
parent | 4c927739a1ebbfe1c884f830c4a1d99f3ea30d5c (diff) |
chore(planning2netbox): Clean up unused stuff
Diffstat (limited to 'tools/netbox/scripts/planning2netbox/planning2netbox.py')
-rw-r--r-- | tools/netbox/scripts/planning2netbox/planning2netbox.py | 35 |
1 files changed, 10 insertions, 25 deletions
diff --git a/tools/netbox/scripts/planning2netbox/planning2netbox.py b/tools/netbox/scripts/planning2netbox/planning2netbox.py index d96f4cb..ea7d392 100644 --- a/tools/netbox/scripts/planning2netbox/planning2netbox.py +++ b/tools/netbox/scripts/planning2netbox/planning2netbox.py @@ -1,36 +1,25 @@ from django.contrib.contenttypes.models import ContentType -from django.utils.text import slugify -from dcim.choices import DeviceStatusChoices, InterfaceModeChoices, InterfaceTypeChoices, SiteStatusChoices -from dcim.models import Cable, CableTermination, Device, DeviceRole, DeviceType, Interface, Manufacturer, Site +from dcim.choices import InterfaceModeChoices, InterfaceTypeChoices +from dcim.models import Cable, CableTermination, Device, DeviceRole, DeviceType, Interface, Site from extras.models import Tag from extras.scripts import * -from ipam.models import IPAddress, Prefix, VLAN, VLANGroup, Role -from ipam.choices import PrefixStatusChoices, IPAddressFamilyChoices +from ipam.models import IPAddress, Prefix, VLAN, VLANGroup from netaddr import IPNetwork -import random - -from utilities.exceptions import AbortScript # Used for getting existing types/objects from Netbox. -DISTRIBUTION_SWITCH_DEVICE_ROLE = 'distribution-switch' # match the name or the slug -ROUTER_DEVICE_ROLE = 'router' -CORE_DEVICE_ROLE = 'core' ACCESS_SWITCH_DEVICE_ROLE = DeviceRole.objects.get(name='Access Switch') DEFAULT_SITE = Site.objects.get(slug='floor') DEFAULT_DEVICE_TYPE = DeviceType.objects.get(model='EX2200-48T') -TAGS = [Tag.objects.get(name='dhcp-client')] FLOOR_MGMT_VLAN = VLAN.objects.get(name="edge-mgmt.floor.r1.tele") VLAN_GROUP_FLOOR = VLANGroup.objects.get(slug="floor") MULTIRATE_DEVICE_TYPE = DeviceType.objects.get(model="EX4300-48MP") CORE_DEVICE = Device.objects.get(name="r1.tele") CORE_INTERFACE_FLOOR = Interface.objects.get(device=CORE_DEVICE, description="d1.roof") - # Copied from examples/tg19/netbox_tools/switchestxt2netbox.py -def parse_switches_txt(switches_txt_lines, logger): - distros = {} +def parse_switches_txt(switches_txt_lines): switches = {} for switch in switches_txt_lines: # example: @@ -47,13 +36,12 @@ def parse_switches_txt(switches_txt_lines, logger): 'mgmt6': switch[4], 'vlan_id': int(switch[5]), 'distro_name': switch[6], - 'is_distro': False, 'device_type': DEFAULT_DEVICE_TYPE, 'lag_name': "ae0", } return switches -def parse_patchlist_txt(patchlist_txt_lines, switches, logger): +def parse_patchlist_txt(patchlist_txt_lines, switches): for patchlist in patchlist_txt_lines: columns = patchlist.split() switch_name = columns[0] @@ -100,12 +88,11 @@ class Planning2Netbox(Script): for i in range(0, len(patchlist_txt_lines)-1): patchlist_txt_lines[i] = patchlist_txt_lines[i].strip() - switches = parse_switches_txt(switches_txt_lines, self.log_debug) - patchlist = parse_patchlist_txt(patchlist_txt_lines, switches, self.log_debug) + switches = parse_switches_txt(switches_txt_lines) + # this modifies 'switches' 🙈 + parse_patchlist_txt(patchlist_txt_lines, switches) - self.log_info(f"Configuring {len(switches)} switches") - - self.log_info("Importing switches") + self.log_info(f"Importing {len(switches)} switches") for switch_name in switches: data = switches[switch_name] self.log_debug(f"Creating switch {switch_name} from {data}") @@ -121,7 +108,7 @@ class Planning2Netbox(Script): distro = Device.objects.get(name=data['distro_name']) mgmt_vlan = FLOOR_MGMT_VLAN ae_interface = None - ae_interface, created_ae_interface = Interface.objects.get_or_create( + ae_interface, _created_ae_interface = Interface.objects.get_or_create( device=switch, name=f"{data['lag_name']}", description=distro.name, @@ -161,7 +148,6 @@ class Planning2Netbox(Script): # patchlist switch_uplinks = data['uplinks'] - #self.log_debug(f"uplinks: {switch_uplinks}") # from planning we always cable from port 44 and upwards # except for multirate then we always use 47 and 48 @@ -229,7 +215,6 @@ class Planning2Netbox(Script): #self.log_debug(f"Cabled switch port {b} to distro port {a}") uplink_port += 1 - # Set mgmt ip mgmt_addr_v4, _ = IPAddress.objects.get_or_create( |