Skip to content

Commit

Permalink
fix: 🐛 tweak device loading and creation in nautobot
Browse files Browse the repository at this point in the history
bile0026 committed Dec 19, 2024
1 parent f3573c1 commit 6f7db5e
Showing 2 changed files with 11 additions and 8 deletions.
Original file line number Diff line number Diff line change
@@ -88,11 +88,9 @@ def load_device(self):
device_id=_device_id,
location=nb_device.location.name,
status=nb_device.status.name,
device_type=nb_device.device_type.display.split(f"{nb_device.platform.manufacturer.name}", 1)[
1
].strip(),
device_type=nb_device.device_type.model,
role=nb_device.role.name,
manufacturer=nb_device.platform.manufacturer.name,
manufacturer=nb_device.device_type.manufacturer.name,
platform=nb_device.platform.name,
os_version=_software_version,
serial_no=nb_device.serial,
13 changes: 9 additions & 4 deletions nautobot_ssot/integrations/librenms/diffsync/models/nautobot.py
Original file line number Diff line number Diff line change
@@ -33,12 +33,16 @@ def ensure_role(role_name: str, content_type):
def ensure_platform(platform_name: str, manufacturer: str):
"""Safely returns a Platform that support Devices."""
try:
_manufacturer = ORMManufacturer.objects.get_or_create(name=manufacturer)[0]
_manufacturer, _ = ORMManufacturer.objects.get_or_create(name=manufacturer)
_platform = ORMPlatform.objects.get(name=platform_name, manufacturer=_manufacturer)
return _platform
except ORMPlatform.DoesNotExist:
_platform = verify_platform(platform_name=platform_name, manu=_manufacturer.id)
return _platform
try:
_platform = ORMPlatform.objects.get(name=platform_name)
return _platform
except ORMPlatform.DoesNotExist:
_platform = verify_platform(platform_name=platform_name, manu=_manufacturer.id)
return _platform


def ensure_software_version(platform: ORMPlatform, manufacturer: str, version: str, device_type: DeviceType):
@@ -119,7 +123,8 @@ def create(cls, adapter, ids, attrs):
_manufacturer = ORMManufacturer.objects.get_or_create(name=os_manufacturer_map[attrs["platform"]])[0]
_platform = ensure_platform(platform_name=attrs["platform"], manufacturer=_manufacturer.name)
_device_type = DeviceType.objects.get_or_create(model=attrs["device_type"], manufacturer=_manufacturer)[0]
adapter.job.logger.debug(f'Device Location {attrs["location"]}')
if adapter.job.debug:
adapter.job.logger.debug(f'Device Location {attrs["location"]}')
new_device = ORMDevice(
name=ids["name"],
device_type=_device_type,

0 comments on commit 6f7db5e

Please sign in to comment.