1 from django.db import models
2 from utils.whois import *
3 from django.contrib.auth.models import User
5 # Create your models here.
6 class PeerRange(models.Model):
7 network = models.CharField(max_length=128)
11 db_table = u'peer_range'
13 # Create your models here.
14 class Peer(models.Model):
15 peer_id = models.IntegerField(primary_key=True)
16 peer_name = models.CharField(max_length=128)
17 peer_as = models.IntegerField()
18 peer_tag = models.CharField(max_length=64)
19 domain_name = models.CharField(max_length=128, null=True, blank=True)
20 networks = models.ManyToManyField(PeerRange, null=True, blank=True)
22 def __unicode__(self):
26 ordering = ['peer_name']
29 def fill_networks(self):
32 peer_as = "AS%s" %self.peer_as
33 network_range = whois(peer_as)
35 for network_item in network_range:
36 range, created = PeerRange.objects.get_or_create(network=network_item.compressed)
37 networks_list.append(range)
38 # if not range.network in self.networks.all():
39 # self.networks.add(range)
40 self.networks = networks_list
45 techcmails = PeerTechc.objects.get(peer_id=self).emails
50 class PeerTechc(models.Model):
51 peer_id = models.OneToOneField(Peer, primary_key=True,
52 db_column="peer_id", parent_link=True)
53 emails = models.CharField(max_length=352, db_column="emails")
55 def __unicode__(self):
56 return "%s %s" %(self.peer_id.peer_name, self.emails)
58 def get_peer_name(self):
59 return "%s" %self.peer_id.peer_name
62 db_table="v_tech_c_peers"