Example #1
0
 def setUp(self):
     super(EventTest, self).setUp()
     self.source_host = Host(name='Host', ipv4='1.2.3.4', user=self.user,timezone = 'Asia/Kolkata')
     self.source_host.save()
     
    
     
     event_type = EventType(name='INFO', user=self.user)
     event_type.save()
     
     event_data = {
         'message': 'Message',
         'short_message': 'short message',
         'event_type': event_type,
         'timestamp': '%s' % str(datetime.datetime.now()),
         'source_host': self.source_host
     }
     self.event = Event.objects.create(**event_data)
Example #2
0
 def setUp(self):
     self.username = '******'
     self.password = '******'
     
     #set up Django user
     self.user = User(username=self.username)
     self.user.set_password(self.password)
     self.user.save()
     
     #set up Django testing client
     self.client = Client()
     self.client.login(username=self.username, password=self.password)
     
     #set up events types
     for name in ['INFO', 'WARNING', 'CRITICAL', 'ERROR']:
         event_type = EventType(name=name, user=self.user,
                                alert_level=1)
         event_type.save()
     
     #set up some hosts
     for i in xrange(10):
         h = Host(name='host_%i' % i,
                  description='description number %i' % i,
                  ipv4='127.0.0.%i' % (i+1),
                  ipv6='0:0:0:0:0:0:7f00:%i' % (i+1),
                  user=self.user)
         h.save()
         
     types = EventType.objects.all()
     hosts = Host.objects.all()
     for i in xrange(10):
         e = Event(message='event_%i' % i,
             short_message='short message #%i' % i,
             event_type=random.choice(types),
             protocol='SMTP',
             timestamp='%s' % str(datetime.datetime.now()),
             source_host = hosts[i],
             fields_class='Class%i' % i,
             fields_data=''
         )
         e.save()
Example #3
0
 def setUp(self):
     self.client = Client()
     self.user = User.objects.create_user('user', '*****@*****.**', 'userpassword')
     self.user.save()
     self.client.login(username='******', password='******')
     
     self.source_host = Host(name='Host', ipv4='1.2.3.4', user=self.user)
     self.source_host.save()
     
     event_type = EventType(name='INFO', user=self.user)
     event_type.save()
     
     event_data = {
         'message': 'Message',
         'short_message': 'short message',
         'event_type': event_type,
         'timestamp': '%s' % str(datetime.datetime.now()),
         'source_host': self.source_host
     }
     self.event = Event(**event_data)
     self.event.save()
Example #4
0
    def setUp(self):
        self.username = '******'
        self.password = '******'

        #set up Django user
        self.user = User(username=self.username)
        self.user.set_password(self.password)
        self.user.save()

        #set up Django testing client
        self.client = Client()
        self.client.login(username=self.username, password=self.password)

        #set up events types
        for name in ['INFO', 'WARNING', 'CRITICAL', 'ERROR']:
            event_type = EventType(name=name, user=self.user, alert_level=1)
            event_type.save()

        #set up some hosts
        for i in xrange(10):
            h = Host(name='host_%i' % i,
                     description='description number %i' % i,
                     ipv4='127.0.0.%i' % (i + 1),
                     ipv6='0:0:0:0:0:0:7f00:%i' % (i + 1),
                     user=self.user)
            h.save()

        types = EventType.objects.all()
        hosts = Host.objects.all()
        for i in xrange(10):
            e = Event(message='event_%i' % i,
                      short_message='short message #%i' % i,
                      event_type=random.choice(types),
                      protocol='SMTP',
                      timestamp='%s' % str(datetime.datetime.now()),
                      source_host=hosts[i],
                      fields_class='Class%i' % i,
                      fields_data='')
            e.save()
Example #5
0
def get_event_data(request, event_dict):
    """
    Creates dictionary with parameters for Event's __init__ method. If needed
    function also creates host and event type and saves them. If function
    cannot find obligatory fields in event_dict, it raises EventParseError
    exception.
    """
    required_fields = [
        'timestamp', 'protocol', 'fields_class', 'event_type', 'description',
        'short_description'
    ]
    base_fields = required_fields + [
        'is_report', 'hostname', 'source_host_ipv6', 'source_host_ipv4'
    ]

    # make sure that event_dict contains all fields we need
    # (also make sure that these fields aren't empty)
    for field_name in required_fields:
        if field_name not in event_dict:
            raise EventParseError("Following field is not specified: %s" \
                                    % field_name)
        if not event_dict[field_name]:
            raise EventParseError("Following field must not be empty: %s" \
                                    % field_name)

    message = event_dict['description']
    short_message = event_dict['short_description']
    timestamp = event_dict['timestamp']
    protocol = event_dict['protocol']
    event_type_name = event_dict['event_type']
    fields_class = event_dict['fields_class']

    ipv4 = event_dict.get('source_host_ipv4')
    ipv6 = event_dict.get('source_host_ipv6')
    hostname = event_dict.get('hostname')

    try:
        if hostname:
            source_host = Host.objects.get(name=hostname, user=request.user)
        else:
            if ipv4 and ipv6:
                source_host = Host.objects.get(ipv4=ipv4,
                                               ipv6=ipv6,
                                               user=request.user)
            elif ipv4:
                source_host = Host.objects.get(ipv4=ipv4, user=request.user)
            elif ipv6:
                source_host = Host.objects.get(ipv6=ipv6, user=request.user)
            else:
                source_host = None
    except Host.DoesNotExist:
        source_host = Host(name=hostname,
                           ipv4=ipv4,
                           ipv6=ipv6,
                           user=request.user)
        source_host.save()

    try:
        event_type = EventType.objects.get(name=event_type_name,
                                           user=request.user)
    except EventType.DoesNotExist:
        event_type = EventType(name=event_type_name, user=request.user)
        event_type.save()

    fields_data_dict = {}
    for field in event_dict:
        if field not in base_fields:
            fields_data_dict[field] = event_dict[field]
    fields_data = json.dumps(fields_data_dict)

    event_data = {
        'message': message,
        'short_message': short_message,
        'timestamp': datetime.datetime.fromtimestamp(float(timestamp)),
        'protocol': protocol,
        'fields_class': fields_class,
        'fields_data': fields_data,
        'source_host': source_host,
        'event_type': event_type
    }

    return event_data
Example #6
0
def get_event_data(request, event_dict):
    """
    Creates dictionary with parameters for Event's __init__ method. If needed
    function also creates host and event type and saves them. If function
    cannot find obligatory fields in event_dict, it raises EventParseError
    exception.
    """
    required_fields = ['timestamp', 'protocol', 'fields_class', 'event_type',
                       'description', 'short_description']
    base_fields = required_fields + ['is_report', 'hostname',
                                     'source_host_ipv6', 'source_host_ipv4']
    
    # make sure that event_dict contains all fields we need
    # (also make sure that these fields aren't empty)
    for field_name in required_fields:
        if field_name not in event_dict:
            raise EventParseError("Following field is not specified: %s" \
                                    % field_name)
        if not event_dict[field_name]:
            raise EventParseError("Following field must not be empty: %s" \
                                    % field_name)
        
    message = event_dict['description']
    short_message = event_dict['short_description']
    timestamp = event_dict['timestamp']
    protocol = event_dict['protocol']
    event_type_name = event_dict['event_type']
    fields_class = event_dict['fields_class']
    
    ipv4 = event_dict.get('source_host_ipv4')
    ipv6 = event_dict.get('source_host_ipv6')
    hostname = event_dict.get('hostname')
    
    try:
        if hostname:
            source_host = Host.objects.get(name=hostname, user=request.user)
        else:
            if ipv4 and ipv6:
                source_host = Host.objects.get(ipv4=ipv4, ipv6=ipv6,
                                               user=request.user)
            elif ipv4:
                source_host = Host.objects.get(ipv4=ipv4, user=request.user)
            elif ipv6:
                source_host = Host.objects.get(ipv6=ipv6, user=request.user)
            else:
                source_host = None
    except Host.DoesNotExist:
        source_host = Host(name=hostname, ipv4=ipv4, ipv6=ipv6,
                           user=request.user)
        source_host.save()
    
    try:
        event_type = EventType.objects.get(name=event_type_name,
                                           user=request.user)
    except EventType.DoesNotExist:
        event_type = EventType(name=event_type_name, user=request.user)
        event_type.save()
        
    fields_data_dict = {}
    for field in event_dict:
        if field not in base_fields:
            fields_data_dict[field] = event_dict[field]
    fields_data = json.dumps(fields_data_dict)
        
    event_data = {
        'message': message,
        'short_message': short_message,
        'timestamp': datetime.datetime.fromtimestamp(float(timestamp)),
        'protocol': protocol,
        'fields_class': fields_class,
        'fields_data': fields_data,
        'source_host': source_host,
        'event_type': event_type
    }
    
    return event_data