aboutsummaryrefslogtreecommitdiff
path: root/rpkid/rpki/irdb/models.py
diff options
context:
space:
mode:
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")