Esempio n. 1
0
 def test_creates_event_for_node_with_bridge_interface(self):
     event_type = factory.make_EventType()
     node = factory.make_Node(interface=True)
     eth0 = node.get_boot_interface()
     # Create a bridge with the same MAC as the boot interface.
     factory.make_Interface(
         INTERFACE_TYPE.BRIDGE,
         node=node,
         mac_address=eth0.mac_address,
         parents=[node.get_boot_interface()],
     )
     description = factory.make_name("description")
     timestamp = datetime.datetime.utcnow()
     ip = factory.make_StaticIPAddress()
     for interface in node.interface_set.all():
         ip.interface_set.add(interface)
     events.send_event_ip_address(ip.ip, event_type.name, description,
                                  timestamp)
     # Doesn't raise a DoesNotExist error.
     Event.objects.get(
         node=node,
         type=event_type,
         description=description,
         created=timestamp,
     )
Esempio n. 2
0
 def test__silent_when_no_node(self):
     event_type = factory.make_EventType()
     description = factory.make_name('description')
     # Exception should not be raised.
     events.send_event_ip_address(factory.make_ip_address(),
                                  event_type.name, description,
                                  datetime.datetime.utcnow())
Esempio n. 3
0
 def test_register_event_and_event_type_registers_event(self):
     # EvenType exists
     node = factory.make_Node()
     event_type = factory.make_EventType()
     Event.objects.register_event_and_event_type(system_id=node.system_id,
                                                 type_name=event_type.name)
     self.assertIsNotNone(Event.objects.get(node=node))
Esempio n. 4
0
 def test_silent_when_no_node(self):
     event_type = factory.make_EventType()
     description = factory.make_name("description")
     # Exception should not be raised.
     events.send_event(
         factory.make_name("system_id"),
         event_type.name,
         description,
         datetime.datetime.utcnow(),
     )
Esempio n. 5
0
 def test_register_event_and_event_type_registers_event_with_datetime(self):
     # EvenType exists
     node = factory.make_Node()
     event_type = factory.make_EventType()
     created = factory.make_date()
     event = Event.objects.register_event_and_event_type(
         system_id=node.system_id,
         type_name=event_type.name,
         created=created)
     self.assertEqual(created, event.created)
Esempio n. 6
0
    def test_level_str_returns_level_description(self):
        events_and_levels = [(
            level,
            factory.make_Event(type=factory.make_EventType(level=level)),
        ) for level in LOGGING_LEVELS]

        self.assertEqual(
            [event.type.level_str for level, event in events_and_levels],
            [LOGGING_LEVELS[level] for level, event in events_and_levels],
        )
Esempio n. 7
0
    def test_GET_query_with_log_level_AUDIT_returns_only_that_level(self):
        user = factory.make_User()
        node = factory.make_Node(owner=user)
        audit_description = "Testing audit events for '%(username)s'."
        generic_description = factory.make_name('desc')
        event1 = factory.make_Event(type=factory.make_EventType(level=AUDIT),
                                    user=user,
                                    description=audit_description)
        factory.make_Event(type=factory.make_EventType(level=logging.DEBUG),
                           node=node,
                           user=user,
                           description=generic_description)

        response = self.client.get(reverse('events_handler'), {
            'op': 'query',
            'level': 'AUDIT',
        })
        self.assertEqual(http.client.OK, response.status_code)
        parsed_result = json_load_bytes(response.content)
        self.assertEqual([event1.id], extract_event_ids(parsed_result))
Esempio n. 8
0
 def test__creates_event_for_node(self):
     event_type = factory.make_EventType()
     node = factory.make_Node()
     description = factory.make_name('description')
     timestamp = datetime.datetime.utcnow()
     events.send_event(node.system_id, event_type.name, description,
                       timestamp)
     # Doesn't raise a DoesNotExist error.
     Event.objects.get(node=node,
                       type=event_type,
                       description=description,
                       created=timestamp)
Esempio n. 9
0
 def test__creates_event_for_node(self):
     event_type = factory.make_EventType()
     node = factory.make_Node(interface=True)
     description = factory.make_name('description')
     timestamp = datetime.datetime.utcnow()
     mac_address = node.interface_set.first().mac_address
     events.send_event_mac_address(mac_address, event_type.name,
                                   description, timestamp)
     # Doesn't raise a DoesNotExist error.
     Event.objects.get(node=node,
                       type=event_type,
                       description=description,
                       created=timestamp)
Esempio n. 10
0
 def test_creates_event_for_node(self):
     event_type = factory.make_EventType()
     node = factory.make_Node(interface=True)
     description = factory.make_name("description")
     timestamp = datetime.datetime.utcnow()
     ip = factory.make_StaticIPAddress(interface=node.interface_set.first())
     events.send_event_ip_address(ip.ip, event_type.name, description,
                                  timestamp)
     # Doesn't raise a DoesNotExist error.
     Event.objects.get(
         node=node,
         type=event_type,
         description=description,
         created=timestamp,
     )
Esempio n. 11
0
    def test_GET_query_with_log_level_returns_that_level_and_greater(self):
        events = [
            make_events(type=factory.make_EventType(level=level))
            for level_name, level in self.log_levels
        ]

        for idx, (level_name, level) in enumerate(self.log_levels):
            response = self.client.get(reverse('events_handler'), {
                'op': 'query',
                'level': level_name,
            })
            self.assertEqual(http.client.OK, response.status_code)
            parsed_result = json_load_bytes(response.content)
            # Events of the same or higher level are returned.
            self.assertItemsEqual(
                (event.id for event in chain.from_iterable(events[:idx + 1])),
                extract_event_ids(parsed_result))
Esempio n. 12
0
    def test_GET_query_with_default_log_level_is_info(self):
        for level_name, level in self.log_levels:
            make_events(type=factory.make_EventType(level=level))

        info_response = self.client.get(reverse("events_handler"), {
            "op": "query",
            "level": "INFO"
        })
        self.assertEqual(http.client.OK, info_response.status_code)
        info_result = json_load_bytes(info_response.content)

        default_response = self.client.get(reverse("events_handler"),
                                           {"op": "query"})
        self.assertEqual(http.client.OK, default_response.status_code)
        default_result = json_load_bytes(default_response.content)

        self.assertSequenceEqual(default_result["events"],
                                 info_result["events"])
Esempio n. 13
0
    def test_GET_query_with_default_log_level_is_info(self):
        for level_name, level in self.log_levels:
            make_events(type=factory.make_EventType(level=level))

        info_response = self.client.get(reverse('events_handler'), {
            'op': 'query',
            'level': 'INFO',
        })
        self.assertEqual(http.client.OK, info_response.status_code)
        info_result = json_load_bytes(info_response.content)

        default_response = self.client.get(reverse('events_handler'), {
            'op': 'query',
        })
        self.assertEqual(http.client.OK, default_response.status_code)
        default_result = json_load_bytes(default_response.content)

        self.assertSequenceEqual(default_result['events'],
                                 info_result['events'])
Esempio n. 14
0
 def create_event_type(self, params=None):
     if params is None:
         params = {}
     return factory.make_EventType(**params)
Esempio n. 15
0
 def test_displays_event_type_description(self):
     event_type = factory.make_EventType()
     self.assertIn(event_type.description, "%s" % event_type)