Browse Source

Fixes #26: Added rack height validation

Jeremy Stretch 9 years ago
parent
commit
7cf437e11b
1 changed files with 10 additions and 0 deletions
  1. 10 0
      netbox/dcim/models.py

+ 10 - 0
netbox/dcim/models.py

@@ -183,6 +183,16 @@ class Rack(CreatedUpdatedModel):
     def get_absolute_url(self):
         return reverse('dcim:rack', args=[self.pk])
 
+    def clean(self):
+
+        # Validate that Rack is tall enough to house the installed Devices
+        if self.pk:
+            top_device = Device.objects.filter(rack=self).order_by('-position').first()
+            min_height = top_device.position + top_device.device_type.u_height - 1
+            if self.u_height < min_height:
+                raise ValidationError("Rack must be at least {}U tall with currently installed devices."
+                                      .format(min_height))
+
     def to_csv(self):
         return ','.join([
             self.site.name,