aboutsummaryrefslogtreecommitdiff
path: root/portal-gui/rpki/myrpki/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'portal-gui/rpki/myrpki/models.py')
-rw-r--r--portal-gui/rpki/myrpki/models.py68
1 files changed, 68 insertions, 0 deletions
diff --git a/portal-gui/rpki/myrpki/models.py b/portal-gui/rpki/myrpki/models.py
new file mode 100644
index 00000000..3a923ab3
--- /dev/null
+++ b/portal-gui/rpki/myrpki/models.py
@@ -0,0 +1,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 )