aboutsummaryrefslogtreecommitdiff
path: root/rpki/rcynicdb/models.py
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2016-01-10 00:04:01 +0000
committerRob Austein <sra@hactrn.net>2016-01-10 00:04:01 +0000
commit3fc7afd194bde8b049e2ea07b8e9bc0a2b9926e8 (patch)
tree7d20cf47be1d3d4877425b3437b2acd16901946d /rpki/rcynicdb/models.py
parent1683d8fb0fa58162d15b2877fba477e505340545 (diff)
First apparently-working version of rcynicng using database instead of
disk files. rcynic.xml output looks reasonable. Don't yet have any other tools which know how to walk the result database, so can't (yet) compare results with rcynic. Does not yet do any cleanup of old data, so will eventually consume all disk space in the universe until this is fixed. svn path=/branches/tk705/; revision=6219
Diffstat (limited to 'rpki/rcynicdb/models.py')
-rw-r--r--rpki/rcynicdb/models.py33
1 files changed, 14 insertions, 19 deletions
diff --git a/rpki/rcynicdb/models.py b/rpki/rcynicdb/models.py
index 318f87e3..32b894fc 100644
--- a/rpki/rcynicdb/models.py
+++ b/rpki/rcynicdb/models.py
@@ -32,16 +32,17 @@ from django.db import models
# be specific to the original poster's desired semantics.
class Retrieval(models.Model):
- uri = models.TextField()
- started = models.DateTimeField()
- finished = models.DateTimeField()
+ uri = models.TextField()
+ started = models.DateTimeField()
+ finished = models.DateTimeField()
successful = models.BooleanField()
# Collection of validated objects (like current
# rsync-data/authenticated.yyyy-mm-ddTHH:MM:SS/ tree)
class Authenticated(models.Model):
- timestamp = models.DateTimeField()
+ started = models.DateTimeField()
+ finished = models.DateTimeField(null = True)
# One instance of an RRDP snapshot.
#
@@ -55,24 +56,18 @@ class Authenticated(models.Model):
class RRDPSnapshot(models.Model):
timestamp = models.DateTimeField()
- uuid = models.UUIDField()
- serial = models.BigIntegerField()
+ uuid = models.UUIDField()
+ serial = models.BigIntegerField()
retrieved = models.OneToOneField(Retrieval)
# RPKI objects.
class RPKIObject(models.Model):
- der = models.BinaryField(unique = True)
- uri = models.TextField()
- aki = models.SlugField(max_length = 40) # hex SHA-1
- ski = models.SlugField(max_length = 40) # hex SHA-1
- hash = models.SlugField(max_length = 64) # hex SHA-256
- retrieved = models.ForeignKey(Retrieval)
+ der = models.BinaryField(unique = True)
+ uri = models.TextField()
+ aki = models.SlugField(max_length = 40) # hex SHA-1
+ ski = models.SlugField(max_length = 40) # hex SHA-1
+ sha256 = models.SlugField(max_length = 64) # hex SHA-256
+ retrieved = models.ForeignKey(Retrieval)
authenticated = models.ManyToManyField(Authenticated)
- snapshot = models.ManyToManyField(RRDPSnapshot)
-
-# No exact analogue to current unauthenticated tree. Generally, when
-# we would have looked in the unauthenticated tree we want the most
-# recently retrieved copy of a particular object, but particular
-# object gets a little weird in RRDP universe. See Tim's draft, not
-# gospel but best worked example available to date.
+ snapshot = models.ManyToManyField(RRDPSnapshot)