from django.db import models import datetime ############################################################################## class Trap(models.Model): traptime = models.DateTimeField(null=True, default=datetime.datetime.now) trapoid = models.CharField(max_length=255) hostname = models.CharField(max_length=255) agentip = models.GenericIPAddressField(unpack_ipv4=True, null=True) agent = models.CharField(max_length=255) trapname = models.CharField(max_length=255, blank=True, default='') category = models.CharField(max_length=255, blank=True, default='') severity = models.CharField(max_length=255, blank=True, default='') enterprise = models.CharField(max_length=255, blank=True, default='') community = models.CharField(max_length=255, blank=True, default='') uptime = models.CharField(max_length=255, blank=True, default='') eventid = models.CharField(max_length=255, blank=True, default='') #FIXME: Umbenennen auf "read" - inkompatibel mit NagTrap trapread = models.BooleanField(default=False) def __unicode__(self): #return u'%s: %s - %s - %s - %s' % (self.id, self.hostname, self.severity, self.eventid, self.traptime) return u'%s: %s - %s - %s - %s' % (self.id, self.hostname, self.severity, self.trapoid, self.traptime) def short(self): #return u'%s/%s/%s' % (self.id, self.hostname, self.eventid) return u'%s/%s/%s' % (self.id, self.hostname, self.trapoid) def eventname(self): '''Return trapname, be compatible with Snmptt''' return self.trapname class TrapVarbind(models.Model): trap = models.ForeignKey(Trap) oid = models.CharField(max_length=255) oidname = models.CharField(max_length=255, blank=True, default='') value = models.CharField(max_length=255) valuename = models.CharField(max_length=255, blank=True, default='') def __unicode__(self): return u'%s -> %s: %s' % (self.trap.short(), self.oid, self.value) def nice_oid(self): return u'%s' % (self.oidname or self.oid) class CfgTrap(models.Model): trapoid = models.CharField(max_length=255, unique=True) trapname = models.CharField(max_length=255, blank=True, default='') category = models.CharField(max_length=255, blank=True, default='') severity = models.CharField(max_length=255, blank=True, default='') # FIXME: Mehrere, aktiv/inaktiv