models.py 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. from django.db import models
  2. from traps.models import Trap
  3. ##############################################################################
  4. class CfgState(models.Model):
  5. name = models.CharField(max_length=255)
  6. sub_varbind = models.CharField(max_length=255, null=True)
  7. category = models.CharField(max_length=255, blank=True, default='')
  8. severity = models.CharField(max_length=255, blank=True, default='')
  9. def __unicode__(self):
  10. return u'%s' % self.name
  11. class CfgStateStartEvent(models.Model):
  12. trapoid = models.CharField(max_length=255, blank=True)
  13. state = models.ForeignKey(CfgState, related_name='startevents')
  14. def __unicode__(self):
  15. return u'%s (%s)' % (self.state, self.trapoid)
  16. class CfgStateStopEvent(models.Model):
  17. trapoid = models.CharField(max_length=255, blank=True)
  18. state = models.ForeignKey(CfgState, related_name='stopevents')
  19. def __unicode__(self):
  20. return u'%s (%s)' % (self.state, self.trapoid)
  21. class State(models.Model):
  22. hostname = models.CharField(max_length=100, blank=True)
  23. state = models.ForeignKey(CfgState)
  24. sub = models.CharField(max_length=100, default=None, null=True)
  25. start = models.ForeignKey(Trap, related_name='trap_start', blank=True, null=True)
  26. start_time = models.DateTimeField(blank=True, null=True)
  27. stop = models.ForeignKey(Trap, related_name='trap_stop', blank=True, null=True)
  28. stop_time = models.DateTimeField(blank=True, null=True)
  29. category = models.CharField(max_length=255, blank=True, default='')
  30. severity = models.CharField(max_length=255, blank=True, default='')
  31. read = models.BooleanField(default=False)
  32. def __unicode__(self):
  33. return u'%s:%s %s' % (self.hostname, self.state, self.statetype())
  34. def statetype(self):
  35. if self.start and self.stop:
  36. statetype = u'finished'
  37. elif self.start and not self.stop:
  38. statetype = u'active'
  39. elif not self.start and self.stop:
  40. statetype = u'weird finished'
  41. else:
  42. statetype = u'empty'
  43. return statetype
  44. class CorrelatorMemory(models.Model):
  45. tag = models.CharField(max_length=255)
  46. maxid = models.IntegerField(default=0)
  47. def __unicode__(self):
  48. return u'%s: %s' % (self.tag, self.maxid)