Statistics
| Branch: | Tag: | Revision:

root / peers / models.py @ e9d46ce1

History | View | Annotate | Download (1.2 kB)

1
from django.db import models
2
from utils.whois import *
3

    
4
# Create your models here.
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

    
12
# Create your models here.
13
class Peer(models.Model):
14
    peer_id = models.IntegerField(primary_key=True)
15
    peer_name = models.CharField(max_length=128)
16
    peer_as = models.IntegerField()
17
    peer_tag = models.CharField(max_length=64)
18
    domain_name = models.CharField(max_length=128)
19
    networks = models.ManyToManyField(PeerRange, null=True, blank=True)
20
    def __unicode__(self):
21
        return self.peer_name
22
    class Meta:
23
        db_table = u'peer'
24
        
25
    def fill_networks(self):
26
        network_range = []
27
        peer_as = "AS%s" %self.peer_as
28
        network_range = whois(peer_as)
29
        if network_range:
30
            for network_item in network_range:
31
                range, created = PeerRange.objects.get_or_create(network=network_item.compressed)
32
                if not range.network in self.networks.all():
33
                    self.networks.add(range)
34
            self.save()
35
                    
36
            
37
        
38