models.py 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. from django.db import models
  2. import datetime
  3. ##############################################################################
  4. class Trap(models.Model):
  5. traptime = models.DateTimeField(null=True, default=datetime.datetime.now)
  6. trapoid = models.CharField(max_length=255)
  7. hostname = models.CharField(max_length=255)
  8. agentip = models.GenericIPAddressField(unpack_ipv4=True, null=True)
  9. agent = models.CharField(max_length=255)
  10. trapname = models.CharField(max_length=255, blank=True, default='')
  11. category = models.CharField(max_length=255, blank=True, default='')
  12. severity = models.CharField(max_length=255, blank=True, default='')
  13. enterprise = models.CharField(max_length=255, blank=True, default='')
  14. community = models.CharField(max_length=255, blank=True, default='')
  15. uptime = models.CharField(max_length=255, blank=True, default='')
  16. eventid = models.CharField(max_length=255, blank=True, default='')
  17. #FIXME: Umbenennen auf "read" - inkompatibel mit NagTrap
  18. trapread = models.BooleanField(default=False)
  19. def __unicode__(self):
  20. #return u'%s: %s - %s - %s - %s' % (self.id, self.hostname, self.severity, self.eventid, self.traptime)
  21. return u'%s: %s - %s - %s - %s' % (self.id, self.hostname, self.severity, self.trapoid, self.traptime)
  22. def short(self):
  23. #return u'%s/%s/%s' % (self.id, self.hostname, self.eventid)
  24. return u'%s/%s/%s' % (self.id, self.hostname, self.trapoid)
  25. def eventname(self):
  26. '''Return trapname, be compatible with Snmptt'''
  27. return self.trapname
  28. class TrapVarbind(models.Model):
  29. trap = models.ForeignKey(Trap)
  30. oid = models.CharField(max_length=255)
  31. oidname = models.CharField(max_length=255, blank=True, default='')
  32. value = models.CharField(max_length=255)
  33. valuename = models.CharField(max_length=255, blank=True, default='')
  34. def __unicode__(self):
  35. return u'%s -> %s: %s' % (self.trap.short(), self.oid, self.value)
  36. def nice_oid(self):
  37. return u'%s' % (self.oidname or self.oid)
  38. class CfgTrap(models.Model):
  39. trapoid = models.CharField(max_length=255, unique=True)
  40. trapname = models.CharField(max_length=255, blank=True, default='')
  41. category = models.CharField(max_length=255, blank=True, default='')
  42. severity = models.CharField(max_length=255, blank=True, default='')
  43. # FIXME: Mehrere, aktiv/inaktiv