Fixed invalid logo path
[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 class PeerRange(models.Model):
6     network = models.CharField(max_length=128)
7     def __unicode__(self):
8         return self.network
9     class Meta:
10         db_table = u'peer_range'
11         ordering = ['network']
12
13 class TechcEmail(models.Model):
14     email = models.CharField(max_length=352, db_column="email")
15     def __unicode__(self):
16         return self.email
17     class Meta:
18         db_table="techc_email"
19
20 class Peer(models.Model):
21     peer_id = models.IntegerField(primary_key=True)
22     peer_name = models.CharField(max_length=128)
23     peer_as = models.IntegerField()
24     peer_tag = models.CharField(max_length=64)
25     domain_name = models.CharField(max_length=128, null=True, blank=True)
26     networks = models.ManyToManyField(PeerRange, null=True, blank=True)
27     techc_emails = models.ManyToManyField(TechcEmail, null=True, blank=True)
28
29     def __unicode__(self):
30         return self.peer_name
31     class Meta:
32         db_table = u'peer'
33         ordering = ['peer_name']
34
35         
36     def fill_networks(self):
37         network_range = []
38         networks_list = []
39         peer_as = "AS%s" %self.peer_as
40         network_range = whois(peer_as)
41         if network_range:
42             for network_item in network_range:
43                 range, created = PeerRange.objects.get_or_create(network=network_item.compressed)
44                 networks_list.append(range)
45             self.networks = networks_list
46             self.save()
47
48