[340] | 1 | from django.db import models
|
---|
| 2 | from django.db.models import Q
|
---|
| 3 |
|
---|
| 4 | # Create your models here.
|
---|
| 5 |
|
---|
| 6 | MODE_CHOICES = (
|
---|
| 7 | ('master', 'master'),
|
---|
| 8 | ('managed','managed'),
|
---|
| 9 | )
|
---|
| 10 |
|
---|
| 11 | PORT_CHOICES = (
|
---|
| 12 | ('vr0','vr0'),
|
---|
| 13 | ('vr1','vr1'),
|
---|
| 14 | ('vr2','vr2'),
|
---|
| 15 | ('ue0','ue0'),
|
---|
| 16 | ('ue1','ue1'),
|
---|
| 17 | ('sis0','sis0'),
|
---|
| 18 | ('sis1','sis1'),
|
---|
| 19 | )
|
---|
| 20 |
|
---|
| 21 | MODEL_CHOICES = (
|
---|
| 22 | ('Ethernet', 'Ethernet'),
|
---|
| 23 | ('Bullet2', 'NanoStation2'),
|
---|
| 24 | ('NanoStation2', 'NanoStation2'),
|
---|
| 25 | ('NanoStationM2', 'NanoStationM2'),
|
---|
| 26 | ('NanoStation5', 'NanoStation5'),
|
---|
| 27 | ('NanoStationM5', 'NanoStationM5'),
|
---|
| 28 | )
|
---|
| 29 |
|
---|
| 30 | NETMASK_CHOICES = zip(range(12,31),range(12,31))
|
---|
| 31 | class IPBlock(models.Model):
|
---|
| 32 | network = models.IPAddressField(default="172.16.",unique=True)
|
---|
| 33 | netmask = models.IntegerField(choices=NETMASK_CHOICES,default=29)
|
---|
| 34 | def __unicode__(self):
|
---|
| 35 | return "%s/%s" % (self.network, self.netmask)
|
---|
| 36 |
|
---|
| 37 | DEFAULT_IPBLOCK = lambda: IPBlock.objects.get_or_create(network='0.0.0.0',netmask=0)[0].id
|
---|
| 38 |
|
---|
| 39 | class Node(models.Model):
|
---|
| 40 | name = models.CharField(max_length="100")
|
---|
| 41 | def __unicode__(self):
|
---|
| 42 | return self.name
|
---|
| 43 |
|
---|
| 44 |
|
---|
| 45 | class Interface(models.Model):
|
---|
| 46 | node = models.ForeignKey(Node)
|
---|
| 47 | port = models.CharField(max_length="100", choices=PORT_CHOICES, default="vr0")
|
---|
| 48 | model = models.CharField(max_length="100", choices=MODEL_CHOICES, default="Ethernet")
|
---|
| 49 | mode = models.CharField(max_length="100", choices=MODE_CHOICES, default="master")
|
---|
| 50 | def __unicode__(self):
|
---|
| 51 | return "%s - %s - %s - %s" % (self.node, self.port, self.model, self.mode)
|
---|
| 52 |
|
---|
| 53 | class Link(models.Model):
|
---|
| 54 | ip_block = models.ForeignKey(IPBlock,unique=True,default=DEFAULT_IPBLOCK)
|
---|
| 55 | interfaces = models.ManyToManyField(Interface)
|
---|
| 56 | def __unicode__(self):
|
---|
| 57 | return "%s : %s" % (self.ip_block, '|'.join(map(str,self.interfaces.all())))
|
---|
| 58 |
|
---|
| 59 |
|
---|