File diff 9296d8c23a54 → f397b9db8183
conntrackt/models.py
Show inline comments
 
# Django-specific imports
 
# Django imports.
 
from django.core.exceptions import ValidationError
 
from django.db import models
 

	
 
# Create your models here.
 

	
 
class Project(models.Model):
 
    """
 
    Implements a model with information about a project. A project has some
 
@@ -15,8 +15,8 @@ class Project(models.Model):
 
      description - Free-form description of the project.
 
    """
 

	
 
    name = models.CharField(max_length = 100)
 
    description = models.TextField(blank = True)
 
    name = models.CharField(max_length=100)
 
    description = models.TextField(blank=True)
 

	
 
    def __unicode__(self):
 
        """
 
@@ -26,6 +26,7 @@ class Project(models.Model):
 

	
 
        return self.name
 

	
 

	
 
class Location(models.Model):
 
    """
 
    Implements a model with information about location. Locations can further be
 
@@ -50,8 +51,8 @@ class Location(models.Model):
 
      description - Free-form description of a location.
 
    """
 

	
 
    name = models.CharField(max_length = 100)
 
    description = models.TextField(blank = True)
 
    name = models.CharField(max_length=100)
 
    description = models.TextField(blank=True)
 

	
 
    def __unicode__(self):
 
        """
 
@@ -61,6 +62,7 @@ class Location(models.Model):
 

	
 
        return self.name
 

	
 

	
 
class Entity(models.Model):
 
    """
 
    Models an entity in a project. An entity can be a server, router, or any
 
@@ -81,8 +83,8 @@ class Entity(models.Model):
 
      located.
 
    """
 

	
 
    name = models.CharField(max_length = 100)
 
    description = models.TextField(blank = True)
 
    name = models.CharField(max_length=100)
 
    description = models.TextField(blank=True)
 
    project = models.ForeignKey(Project)
 
    location = models.ForeignKey(Location)
 

	
 
@@ -106,6 +108,7 @@ class Entity(models.Model):
 

	
 
        return "%s (%s - %s)" % (self.name, self.project, self.location)
 

	
 

	
 
class Interface(models.Model):
 
    """
 
    Models a representation of an interface on an entity. It can be used for
 
@@ -126,11 +129,11 @@ class Interface(models.Model):
 
      denoting the network netmask.
 
    """
 

	
 
    name = models.CharField(max_length = 100, default = 'eth0')
 
    description = models.TextField(blank = True, default = 'Main network interface.')
 
    name = models.CharField(max_length=100, default='eth0')
 
    description = models.TextField(blank=True, default='Main network interface.')
 
    entity = models.ForeignKey(Entity)
 
    address = models.IPAddressField()
 
    netmask = models.IPAddressField(default = '255.255.255.255')
 
    netmask = models.IPAddressField(default='255.255.255.255')
 

	
 
    def __unicode__(self):
 
        """
 
@@ -145,6 +148,7 @@ class Interface(models.Model):
 
        else:
 
            return '%s (%s/%s)' % (self.entity.name, self.address, self.netmask)
 

	
 

	
 
class Communication(models.Model):
 
    """
 
    Models a representation of allowed network communication. This lets the user
 
@@ -183,11 +187,11 @@ class Communication(models.Model):
 
        ('ICMP', 'ICMP'),
 
        )
 

	
 
    source = models.ForeignKey(Interface, related_name = 'source_set')
 
    destination = models.ForeignKey(Interface, related_name = 'destination_set')
 
    protocol = models.CharField(max_length = 10, choices = PROTOCOL_CHOICES)
 
    port = models.IntegerField(default = 0)
 
    description = models.TextField(blank = True)
 
    source = models.ForeignKey(Interface, related_name='source_set')
 
    destination = models.ForeignKey(Interface, related_name='destination_set')
 
    protocol = models.CharField(max_length=10, choices=PROTOCOL_CHOICES)
 
    port = models.IntegerField(default=0)
 
    description = models.TextField(blank=True)
 

	
 
    def __unicode__(self):
 
        """