aboutsummaryrefslogtreecommitdiff
path: root/rpkid/rpki/irdb/models.py
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2012-01-07 09:19:03 +0000
committerRob Austein <sra@hactrn.net>2012-01-07 09:19:03 +0000
commit39676701fc6c5dedde2248178b16b394e90d48b9 (patch)
tree17fbb58bdc1325e85f406d0ddcdc30b97b9d699e /rpkid/rpki/irdb/models.py
parent34a4fae432178c2a34dbc03376f149ed91bd4d1d (diff)
Checkpoint. rpkic and yamltest mostly work, but irdbd is still acting
weird. svn path=/branches/tk100/; revision=4146
Diffstat (limited to 'rpkid/rpki/irdb/models.py')
-rw-r--r--rpkid/rpki/irdb/models.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/rpkid/rpki/irdb/models.py b/rpkid/rpki/irdb/models.py
index 071e0918..1add3593 100644
--- a/rpkid/rpki/irdb/models.py
+++ b/rpkid/rpki/irdb/models.py
@@ -209,6 +209,7 @@ class CertificateManager(django.db.models.Manager):
return obj, changed
def _get_or_certify_keys(self, kwargs):
+ assert len(self.model._meta.unique_together) == 1
return dict((k, kwargs[k]) for k in self.model._meta.unique_together[0])
class ResourceHolderCAManager(CertificateManager):
@@ -452,6 +453,10 @@ class Child(CrossCertification):
name = django.db.models.TextField(null = True, blank = True)
valid_until = SundialField()
+ # This shouldn't be necessary
+ class Meta:
+ unique_together = ("issuer", "handle")
+
class ChildASN(django.db.models.Model):
child = django.db.models.ForeignKey(Child, related_name = "asns")
start_as = django.db.models.BigIntegerField()
@@ -477,6 +482,10 @@ class Parent(CrossCertification, Turtle):
referrer = HandleField(null = True, blank = True)
referral_authorization = SignedReferralField(null = True, blank = True)
+ # This shouldn't be necessary
+ class Meta:
+ unique_together = ("issuer", "handle")
+
class ROARequest(django.db.models.Model):
issuer = django.db.models.ForeignKey(ResourceHolderCA, related_name = "roa_requests")
asn = django.db.models.BigIntegerField()
@@ -503,7 +512,14 @@ class Repository(CrossCertification):
sia_base = django.db.models.TextField()
turtle = django.db.models.OneToOneField(Turtle, related_name = "repository")
+ # This shouldn't be necessary
+ class Meta:
+ unique_together = ("issuer", "handle")
+
class Client(CrossCertification):
issuer = django.db.models.ForeignKey(ServerCA, related_name = "clients")
sia_base = django.db.models.TextField()
+ # This shouldn't be necessary
+ class Meta:
+ unique_together = ("issuer", "handle")