Browse Source

Added Prefix.new_subnet property

Jeremy Stretch 9 years ago
parent
commit
337815f81d
1 changed files with 12 additions and 1 deletions
  1. 12 1
      netbox/ipam/models.py

+ 12 - 1
netbox/ipam/models.py

@@ -1,4 +1,4 @@
-from netaddr import cidr_merge
+from netaddr import IPNetwork, cidr_merge
 
 from django.core.exceptions import ValidationError
 from django.core.urlresolvers import reverse
@@ -214,6 +214,17 @@ class Prefix(models.Model):
             self.family = self.prefix.version
         super(Prefix, self).save(*args, **kwargs)
 
+    @property
+    def new_subnet(self):
+        if self.family == 4:
+            if self.prefix.prefixlen <= 30:
+                return IPNetwork('{}/{}'.format(self.prefix.network, self.prefix.prefixlen + 1))
+            return None
+        if self.family == 6:
+            if self.prefix.prefixlen <= 126:
+                return IPNetwork('{}/{}'.format(self.prefix.network, self.prefix.prefixlen + 1))
+            return None
+
 
 class IPAddress(models.Model):
     """