From 0cb3e1749b2369e639332edc42b504942f2c3b15 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Wed, 15 Nov 2017 12:37:08 -0500 Subject: [PATCH] Fixes #1717: Fixed inteface validation for virtual machines --- netbox/dcim/models.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/netbox/dcim/models.py b/netbox/dcim/models.py index 84d4dc39c..003bc408a 100644 --- a/netbox/dcim/models.py +++ b/netbox/dcim/models.py @@ -1120,6 +1120,8 @@ class ConsoleServerPort(models.Model): def clean(self): # Check that the parent device's DeviceType is a console server + if self.device is None: + raise ValidationError("Console server ports must be assigned to devices.") device_type = self.device.device_type if not device_type.is_console_server: raise ValidationError("The {} {} device type not support assignment of console server ports.".format( @@ -1194,6 +1196,8 @@ class PowerOutlet(models.Model): def clean(self): # Check that the parent device's DeviceType is a PDU + if self.device is None: + raise ValidationError("Power outlets must be assigned to devices.") device_type = self.device.device_type if not device_type.is_pdu: raise ValidationError("The {} {} device type not support assignment of power outlets.".format( @@ -1257,11 +1261,12 @@ class Interface(models.Model): def clean(self): # Check that the parent device's DeviceType is a network device - device_type = self.device.device_type - if not device_type.is_network_device: - raise ValidationError("The {} {} device type not support assignment of network interfaces.".format( - device_type.manufacturer, device_type - )) + if self.device is not None: + device_type = self.device.device_type + if not device_type.is_network_device: + raise ValidationError("The {} {} device type not support assignment of network interfaces.".format( + device_type.manufacturer, device_type + )) # An Interface must belong to a Device *or* to a VirtualMachine if self.device and self.virtual_machine: