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 |
|