aboutsummaryrefslogtreecommitdiff
path: root/scripts/rp-sqlite
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/rp-sqlite')
-rwxr-xr-xscripts/rp-sqlite39
1 files changed, 20 insertions, 19 deletions
diff --git a/scripts/rp-sqlite b/scripts/rp-sqlite
index 0d1e15bc..aca57d88 100755
--- a/scripts/rp-sqlite
+++ b/scripts/rp-sqlite
@@ -192,42 +192,39 @@ def initialize_database(db_name = "rp-sqlite.db",
db.text_factory = str
cur = db.cursor()
- cur.execute("PRAGMA foreign_keys = on")
+ cur.executescript('''
+ PRAGMA foreign_keys = on;
- cur.execute('''
- CREATE TABLE object (
+ CREATE TABLE object (
id INTEGER PRIMARY KEY NOT NULL,
der BLOB NOT NULL,
fn2 TEXT NOT NULL,
ski BLOB,
aki BLOB,
- UNIQUE (der))
- ''')
+ inherits BOOLEAN NOT NULL,
+ UNIQUE (der));
- cur.execute('''
- CREATE TABLE uri (
+ CREATE TABLE uri (
id INTEGER NOT NULL,
uri TEXT NOT NULL,
UNIQUE (uri),
FOREIGN KEY (id) REFERENCES object(id)
ON DELETE CASCADE
- ON UPDATE CASCADE)
- ''')
+ ON UPDATE CASCADE);
- cur.execute("CREATE INDEX uri_index ON uri(id)")
+ CREATE INDEX uri_index ON uri(id);
- cur.execute('''
- CREATE TABLE range (
+ CREATE TABLE range (
id INTEGER NOT NULL,
min RangeVal NOT NULL,
max RangeVal NOT NULL,
UNIQUE (id, min, max),
FOREIGN KEY (id) REFERENCES object(id)
ON DELETE CASCADE
- ON UPDATE CASCADE)
- ''')
+ ON UPDATE CASCADE);
- cur.execute("CREATE INDEX range_index ON range(min, max)")
+ CREATE INDEX range_index ON range(min, max);
+ ''')
nobj = 0
@@ -246,10 +243,13 @@ def initialize_database(db_name = "rp-sqlite.db",
nobj += 1
+ inherits = False
+
if fn2 == "crl":
ski = None
aki = buffer(obj.get_AKI())
cer = None
+ bag = None
else:
if fn2 == "cer":
@@ -261,13 +261,15 @@ def initialize_database(db_name = "rp-sqlite.db",
aki = buffer(cer.get_AKI())
except:
aki = None
+ bag = cer.get_3779resources()
+ inherits = bag.asn.inherit or bag.v4.inherit or bag.v6.inherit
der = buffer(obj.get_DER())
uri = "rsync://" + fn[len(rcynic_root) + 1:]
try:
- cur.execute("INSERT INTO object (der, fn2, ski, aki) VALUES (?, ?, ?, ?)",
- (der, fn2, ski, aki))
+ cur.execute("INSERT INTO object (der, fn2, ski, aki, inherits) VALUES (?, ?, ?, ?, ?)",
+ (der, fn2, ski, aki, inherits))
rowid = cur.lastrowid
except sqlite3.IntegrityError:
@@ -277,8 +279,7 @@ def initialize_database(db_name = "rp-sqlite.db",
assert len(rows) == 1
else:
- if cer is not None:
- bag = cer.get_3779resources()
+ if bag is not None:
for rset in (bag.asn, bag.v4, bag.v6):
if rset is not None:
cur.executemany("REPLACE INTO range (id, min, max) VALUES (?, ?, ?)",