Admin files cleanup and reordering
[flowspy] / peers / models.py
1 from django.db import models
2 from utils.whois import *
3 from django.contrib.auth.models import User
4
5 # Create your models here.
6 class PeerRange(models.Model):
7     network = models.CharField(max_length=128)
8     def __unicode__(self):
9         return self.network
10     class Meta:
11         db_table = u'peer_range'
12         ordering = ['network']
13
14 # Create your models here.
15 class Peer(models.Model):
16     peer_id = models.IntegerField(primary_key=True)
17     peer_name = models.CharField(max_length=128)
18     peer_as = models.IntegerField()
19     peer_tag = models.CharField(max_length=64)
20     domain_name = models.CharField(max_length=128, null=True, blank=True)
21     networks = models.ManyToManyField(PeerRange, null=True, blank=True)
22
23     def __unicode__(self):
24         return self.peer_name
25     class Meta:
26         db_table = u'peer'
27         ordering = ['peer_name']
28
29         
30     def fill_networks(self):
31         network_range = []
32         networks_list = []
33         peer_as = "AS%s" %self.peer_as
34         network_range = whois(peer_as)
35         if network_range:
36             for network_item in network_range:
37                 range, created = PeerRange.objects.get_or_create(network=network_item.compressed)
38                 networks_list.append(range)
39 #                if not range.network in self.networks.all():
40 #                    self.networks.add(range)
41             self.networks = networks_list
42             self.save()
43
44     def techc(self):
45         try:
46             techcmails = PeerTechc.objects.get(peer_id=self).emails
47         except:
48             techcmails = None
49         return techcmails
50
51 class PeerTechc(models.Model):
52     peer_id = models.OneToOneField(Peer, primary_key=True,
53             db_column="peer_id", parent_link=True)
54     emails = models.CharField(max_length=352, db_column="emails")
55
56     def __unicode__(self):
57         return "%s %s" %(self.peer_id.peer_name, self.emails)
58
59     def get_peer_name(self):
60         return "%s" %self.peer_id.peer_name
61
62     class Meta:
63         db_table="v_tech_c_peers"