aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/Makefile3
-rw-r--r--docs/rpki-db-schema.pdfbin5498 -> 5329 bytes
-rw-r--r--docs/rpki-db-schema.sql44
-rw-r--r--scripts/rpki/left_right.py11
-rw-r--r--scripts/rpki/sql.py11
5 files changed, 21 insertions, 48 deletions
diff --git a/docs/Makefile b/docs/Makefile
index 7a784475..ce3561ef 100644
--- a/docs/Makefile
+++ b/docs/Makefile
@@ -1,8 +1,5 @@
# $Id$
-all::
- xmllint --noout left-right-xml
-
all:: rpki-db-schema.pdf
rpki-db-schema.pdf: rpki-db-schema.sql
diff --git a/docs/rpki-db-schema.pdf b/docs/rpki-db-schema.pdf
index 077ad3d5..ffdafa27 100644
--- a/docs/rpki-db-schema.pdf
+++ b/docs/rpki-db-schema.pdf
Binary files differ
diff --git a/docs/rpki-db-schema.sql b/docs/rpki-db-schema.sql
index 76da26dd..aef7608c 100644
--- a/docs/rpki-db-schema.sql
+++ b/docs/rpki-db-schema.sql
@@ -86,18 +86,19 @@ CREATE TABLE ca (
DROP TABLE IF EXISTS ca_detail;
CREATE TABLE ca_detail (
- ca_detail_id SERIAL NOT NULL,
- public_key LONGBLOB,
- private_key_handle LONGBLOB,
- latest_crl LONGBLOB,
- latest_ca_cert_over_public_key LONGBLOB,
- manifest_ee_private_key_handle LONGBLOB,
- manifest_ee_public_key LONGBLOB,
- latest_manifest_ee_cert LONGBLOB,
- latest_manifest LONGBLOB,
- ca_id BIGINT unsigned NOT NULL,
- PRIMARY KEY (ca_detail_id),
- FOREIGN KEY (ca_id) REFERENCES ca
+ ca_detail_id SERIAL NOT NULL,
+ public_key LONGBLOB,
+ private_key_handle LONGBLOB,
+ latest_crl LONGBLOB,
+ latest_ca_cert_over_public_key LONGBLOB,
+ manifest_ee_private_key_handle LONGBLOB,
+ manifest_ee_public_key LONGBLOB,
+ latest_manifest_ee_cert LONGBLOB,
+ latest_manifest LONGBLOB,
+ state ENUM ('active', 'deprecated', 'pending') NOT NULL,
+ ca_id BIGINT unsigned NOT NULL,
+ PRIMARY KEY (ca_detail_id),
+ FOREIGN KEY (ca_id) REFERENCES ca
);
DROP TABLE IF EXISTS child;
@@ -112,27 +113,18 @@ CREATE TABLE child (
FOREIGN KEY (self_id) REFERENCES self
);
-DROP TABLE IF EXISTS child_ca_certificate;
+DROP TABLE IF EXISTS child_cert;
-CREATE TABLE child_ca_certificate (
+CREATE TABLE child_cert (
+ child_cert_id SERIAL NOT NULL,
+ cert LONGBLOB NOT NULL,
child_id BIGINT unsigned NOT NULL,
ca_detail_id BIGINT unsigned NOT NULL,
- cert LONGBLOB NOT NULL,
- PRIMARY KEY (child_id, ca_detail_id),
+ PRIMARY KEY (child_cert_id),
FOREIGN KEY (ca_detail_id) REFERENCES ca_detail,
FOREIGN KEY (child_id) REFERENCES child
);
-DROP TABLE IF EXISTS child_ca_link;
-
-CREATE TABLE child_ca_link (
- ca_id BIGINT unsigned NOT NULL,
- child_id BIGINT unsigned NOT NULL,
- PRIMARY KEY (ca_id, child_id),
- FOREIGN KEY (child_id) REFERENCES child,
- FOREIGN KEY (ca_id) REFERENCES ca
-);
-
DROP TABLE IF EXISTS route_origin;
CREATE TABLE route_origin (
diff --git a/scripts/rpki/left_right.py b/scripts/rpki/left_right.py
index b6f899ac..f3353026 100644
--- a/scripts/rpki/left_right.py
+++ b/scripts/rpki/left_right.py
@@ -351,21 +351,16 @@ class child_elt(data_elt):
self.certs = {}
def sql_fetch_hook(self, db, cur):
- self.cas = rpki.sql.fetch_column(cur, "SELECT ca_id FROM child_ca_link WHERE child_id = %s", self.child_id)
- cur.execute("SELECT ca_detail_id, cert FROM child_ca_certificate WHERE child_id = %s", self.child_id)
+ cur.execute("SELECT ca_detail_id, cert FROM child_cert WHERE child_id = %s", self.child_id)
self.certs = dict((ca_detail_id, rpki.x509.X509(DER=cert)) for (ca_detail_id, cert) in cur.fetchall())
def sql_insert_hook(self, db, cur):
- if self.cas:
- cur.executemany("INSERT child_ca_link (ca_id, child_id) VALUES (%s, %s)",
- ((x.ca_id, self.child_id) for x in self.cas))
if self.certs:
- cur.executemany("INSERT child_ca_certificate (child_id, ca_detail_id, cert) VALUES (%s, %s, %s)",
+ cur.executemany("INSERT child_cert (child_id, ca_detail_id, cert) VALUES (%s, %s, %s)",
((self.child_id, ca_detail_id, cert.get_DER()) for (ca_detail_id, cert) in self.certs.items()))
def sql_delete_hook(self, db, cur):
- cur.execute("DELETE FROM child_ca_link where child_id = %s", self.child_id)
- cur.execute("DELETE FROM child_ca_certificate where child_id = %s", self.child_id)
+ cur.execute("DELETE FROM child_cert where child_id = %s", self.child_id)
def serve_post_save_hook(self, q_pdu, r_pdu):
if self.reissue:
diff --git a/scripts/rpki/sql.py b/scripts/rpki/sql.py
index c67062f2..d74be7fb 100644
--- a/scripts/rpki/sql.py
+++ b/scripts/rpki/sql.py
@@ -196,14 +196,3 @@ class ca_obj(sql_persistant):
"""Internal CA object."""
sql_template = template("ca", "ca_id", "last_crl_sn", "next_crl_update", "last_issued_sn", "last_manifest_sn", "next_manifest_update", "sia_uri", "parent_id")
-
- def sql_fetch_hook(self, db, cur):
- self.children = fetch_column(cur, "SELECT child_id FROM child_ca_link WHERE ca_id = %s", self.ca_id)
-
- def sql_insert_hook(self, db, cur):
- if self.children:
- cur.executemany("INSERT child_ca_link (ca_id, child_id) VALUES (%s, %s)",
- ((self.ca_id, x.child_id) for x in self.children))
-
- def sql_delete_hook(self, db, cur):
- cur.execute("DELETE FROM child_ca_link where ca_id = %s", self.ca_id)