1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
from django.db import models
from django.contrib.auth.models import Group
# TO DO:
# URL: text?
class HandleField( models.CharField ):
def __init__( self, **kwargs ):
models.CharField.__init__( self, max_length=255, **kwargs )
class IPAddressField( models.CharField ):
def __init__( self, **kwargs ):
models.CharField.__init__( self, max_length=40, **kwargs )
class Cert( models.Model ):
conf = models.ForeignKey( 'Conf' )
name = models.CharField( unique=True, max_length=255 )
data = models.TextField()
def __unicode__( self ):
return self.name
class Conf( models.Model ):
handle = HandleField( unique=True, db_index=True )
repository_bpki_cert = models.ForeignKey( Cert,
related_name='conf_bpki_cert' )
my_bpki_ta = models.ForeignKey( Cert, related_name='conf_my_ta' )
repository_handle = HandleField()
owner = models.OneToOneField( Group )
class Child( models.Model ):
conf = models.ForeignKey( Conf )
handle = HandleField()
validity = models.DateTimeField()
bpki_cert = models.ForeignKey( Cert )
class Prefix( models.Model ):
child = models.ForeignKey( Child )
lo = IPAddressField()
hi = IPAddressField()
class Asn( models.Model ):
child = models.ForeignKey( Child )
min = models.IntegerField()
max = models.IntegerField()
class Parent( models.Model ):
conf = models.ForeignKey( Conf )
handle = HandleField( unique=True )
service_uri = models.URLField( verify_exists=False )
cms_bpki_cert = models.ForeignKey( Cert, related_name='parent_cms' )
https_bpki_cert = models.ForeignKey( Cert, related_name='parent_https' )
my_handle = HandleField()
sia_base = models.URLField( verify_exists=False )
# This table is really owned by the publication server.
#class PubClient( models.Model ):
# handle = models.CharField( unique=True, max_length=255 )
# bpki_cert = models.ForeignKey( Cert )
# sia_base = models.URLField( verify_exists=False )
class Roa( models.Model ):
conf = models.ForeignKey( Conf )
prefix = IPAddressField()
len = models.IntegerField()
max_len = models.IntegerField()
asn = models.IntegerField()
active = models.BooleanField()
comments = models.TextField()
group = models.CharField( max_length=40 )
|