Skip to content

Commit 9355cba

Browse files
committed
Add support for platform and serial update on an existing device
1 parent 3131cdd commit 9355cba

File tree

2 files changed

+26
-8
lines changed

2 files changed

+26
-8
lines changed

netbox_onboarding/onboard.py

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -429,22 +429,17 @@ def ensure_device_instance(self, default_status=PLUGIN_SETTINGS["default_device_
429429
default_status (str) : status assigned to a new device by default.
430430
"""
431431
try:
432-
device = Device.objects.get(
433-
name=self.netdev.hostname,
434-
device_type=self.device_type,
435-
device_role=self.netdev.ot.role,
436-
site=self.netdev.ot.site,
437-
)
432+
device = Device.objects.get(name=self.netdev.hostname, site=self.netdev.ot.site)
438433
except Device.DoesNotExist:
439434
device = Device.objects.create(
440435
name=self.netdev.hostname,
436+
site=self.netdev.ot.site,
441437
device_type=self.device_type,
442438
device_role=self.netdev.ot.role,
443-
platform=self.netdev.ot.platform,
444-
site=self.netdev.ot.site,
445439
status=default_status,
446440
)
447441

442+
device.platform = self.netdev.ot.platform
448443
device.serial = self.netdev.serial_number
449444
device.save()
450445

netbox_onboarding/tests/test_onboard.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,9 +122,32 @@ def test_ensure_device_instance_not_exist(self):
122122
nbk.ensure_device_instance(default_status="planned")
123123
self.assertIsInstance(nbk.device, Device)
124124
self.assertEqual(nbk.device.status, "planned")
125+
self.assertEqual(nbk.device.platform, self.platform1)
125126
self.assertEqual(nbk.device, nbk.netdev.ot.created_device)
126127
self.assertEqual(nbk.device.serial, "123456")
127128

129+
def test_ensure_device_instance_exist(self):
130+
"""Verify ensure_device_instance function."""
131+
132+
device = Device.objects.create(
133+
name=self.ndk2.hostname,
134+
site=self.site1,
135+
device_type=self.device_type1,
136+
device_role=self.device_role1,
137+
status="planned",
138+
serial="987654",
139+
)
140+
141+
nbk = NetboxKeeper(self.ndk2)
142+
nbk.netdev.ot = self.onboarding_task3
143+
self.assertEqual(nbk.device, None)
144+
nbk.ensure_device_instance(default_status="active")
145+
self.assertIsInstance(nbk.device, Device)
146+
self.assertEqual(nbk.device.status, "planned")
147+
self.assertEqual(nbk.device.platform, self.platform1)
148+
self.assertEqual(nbk.device, device)
149+
self.assertEqual(nbk.device.serial, "123456")
150+
128151
def test_ensure_interface_not_exist(self):
129152
"""Verify ensure_interface function when the interface do not exist."""
130153
nbk = NetboxKeeper(self.ndk2)

0 commit comments

Comments
 (0)