aboutsummaryrefslogtreecommitdiff
path: root/rpki/rpkidb/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'rpki/rpkidb/models.py')
-rw-r--r--rpki/rpkidb/models.py24
1 files changed, 17 insertions, 7 deletions
diff --git a/rpki/rpkidb/models.py b/rpki/rpkidb/models.py
index d71fdbc3..b1e66a8b 100644
--- a/rpki/rpkidb/models.py
+++ b/rpki/rpkidb/models.py
@@ -537,9 +537,24 @@ class Repository(models.Model):
raise tornado.gen.Return(r_msg)
-@xml_hooks
-class Parent(models.Model):
+# https://docs.djangoproject.com/en/1.9/topics/db/models/#multi-table-inheritance
+
+class Turtle(models.Model):
+
+ # The parent-specific names here will need to change, but first
+ # step is testing whether the magic of multi-table inheritance
+ # causes all of this to Just Work until we change the field names.
+
parent_handle = models.SlugField(max_length = 255)
+ tenant = models.ForeignKey(Tenant, related_name = "parents")
+ repository = models.ForeignKey(Repository, related_name = "parents")
+
+ class Meta:
+ unique_together = ("tenant", "parent_handle")
+
+
+@xml_hooks
+class Parent(Turtle):
bpki_cert = CertificateField(null = True)
bpki_glue = CertificateField(null = True)
peer_contact_uri = models.TextField(null = True)
@@ -547,14 +562,9 @@ class Parent(models.Model):
sender_name = models.TextField(null = True)
recipient_name = models.TextField(null = True)
last_cms_timestamp = SundialField(null = True)
- tenant = models.ForeignKey(Tenant, related_name = "parents")
bsc = models.ForeignKey(BSC, related_name = "parents")
- repository = models.ForeignKey(Repository, related_name = "parents")
objects = XMLManager()
- class Meta:
- unique_together = ("tenant", "parent_handle")
-
xml_template = XMLTemplate(
name = "parent",
handles = (BSC, Repository),