コード例 #1
0
ファイル: tests.py プロジェクト: umitproject/network-admin
 def setUp(self):
     self.user_a = User.objects.create_user('user_a', '*****@*****.**', 'userpassword')
     self.user_a.save()
     
     self.user_b = User.objects.create_user('user_b', '*****@*****.**', 'userpassword')
     self.user_b.save()
     
     self.host = Host(name='Host', ipv4='1.2.3.4', user=self.user_a)
     self.host.save()
コード例 #2
0
ファイル: tests.py プロジェクト: umitproject/network-admin
 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)
コード例 #3
0
    def setUp(self):
        self.client = Client()
        self.user = User.objects.create_user('user', '*****@*****.**',
                                             'userpassword')
        self.client.login(username='******', password='******')

        self.host = Host(name='Host',
                         description='Description',
                         ipv4='1.2.3.4',
                         ipv6='',
                         user=self.user)
        self.host.save()

        self.network = Network(name='Network',
                               description='Description',
                               user=self.user)
        self.network.save()

        self.net_host = NetworkHost(network=self.network, host=self.host)
        self.net_host.save()
コード例 #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()
コード例 #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
コード例 #6
0
ファイル: tests.py プロジェクト: umitproject/network-admin
    def setUp(self):
        self.owner = self.create_user('owner', 'pass')
        self.friend = self.create_user('friend', 'pass')

        self.host = Host(name='Host', ipv4='1.2.3.4', user=self.owner)
        self.host.save()