diff options
author | Michael Elkins <melkins@tislabs.com> | 2011-06-14 19:02:25 +0000 |
---|---|---|
committer | Michael Elkins <melkins@tislabs.com> | 2011-06-14 19:02:25 +0000 |
commit | 9bfb5b58e179dc995606c7c9fcc534dd06b48a78 (patch) | |
tree | 65eae00f0de4e741013f1b64b5bf71c5d158530e /rpkid/rpki/gui/cacheview/models.py | |
parent | f9c0ff28cd7b84ec6bc17ed358a252adefd79695 (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.py | 34 |
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 |