aboutsummaryrefslogtreecommitdiff
path: root/rpkid/rpki/gui/cacheview/models.py
diff options
context:
space:
mode:
authorMichael Elkins <melkins@tislabs.com>2011-06-14 19:02:25 +0000
committerMichael Elkins <melkins@tislabs.com>2011-06-14 19:02:25 +0000
commit9bfb5b58e179dc995606c7c9fcc534dd06b48a78 (patch)
tree65eae00f0de4e741013f1b64b5bf71c5d158530e /rpkid/rpki/gui/cacheview/models.py
parentf9c0ff28cd7b84ec6bc17ed358a252adefd79695 (diff)
extrude validation status lables from the rcynic XML file and shove into django db
color code validation status in signed object detail views to make problems stand out svn path=/rpkid/portal-gui/scripts/rpkigui-rcynic.py; revision=3873
Diffstat (limited to 'rpkid/rpki/gui/cacheview/models.py')
-rw-r--r--rpkid/rpki/gui/cacheview/models.py34
1 files changed, 27 insertions, 7 deletions
diff --git a/rpkid/rpki/gui/cacheview/models.py b/rpkid/rpki/gui/cacheview/models.py
index b00a1933..afdd2c74 100644
--- a/rpkid/rpki/gui/cacheview/models.py
+++ b/rpkid/rpki/gui/cacheview/models.py
@@ -73,6 +73,26 @@ class ASRange(models.Model):
def get_absolute_url(self):
return ('rpki.gui.cacheview.views.asrange_detail', [str(self.pk)])
+kinds = ( (0, 'good'), (1, 'warn'), (2, 'bad') )
+
+class ValidationStatus(models.Model):
+ """
+ Represents a specific error condition defined in the rcynic XML
+ output file.
+ """
+ label = models.CharField(max_length=30, db_index=True, unique=True)
+ status = models.CharField(max_length=255)
+ kind = models.PositiveSmallIntegerField(choices=kinds)
+
+ def __unicode__(self):
+ return self.label
+
+ def kind_as_str(self):
+ return kinds[self.kind][1]
+
+ class Meta:
+ verbose_name_plural = 'ValidationStatuses'
+
class SignedObject(models.Model):
"""
Abstract class to hold common metadata for all signed objects.
@@ -80,16 +100,16 @@ class SignedObject(models.Model):
value for the 'related_name' attribute.
"""
# attributes from rcynic's output XML file
- uri = models.URLField(unique=True, db_index=True)
- timestamp = models.DateTimeField()
- ok = models.BooleanField()
- status = models.CharField(max_length=255)
+ uri = models.URLField(unique=True, db_index=True)
+ timestamp = models.DateTimeField()
+ ok = models.BooleanField()
+ status = models.ForeignKey('ValidationStatus')
- mtime = models.PositiveIntegerField(default=0)
+ mtime = models.PositiveIntegerField(default=0)
# validity period from EE cert which signed object
- not_before = models.DateTimeField()
- not_after = models.DateTimeField()
+ not_before = models.DateTimeField()
+ not_after = models.DateTimeField()
class Meta:
abstract = True