示例#1
0
    def test_save_anomalies(self):
        """
        How create anomalies: a lots of event + compute stress
        """

        # start test
        ANOMALIES_AMOUNT = 50
        pollute_events_for_testing(ANOMALIES_AMOUNT)

        anomaly.compute_activity_level()

        anomdet = GLSettings.RecentAnomaliesQ.values()[0]
        self.assertEqual(len(GLSettings.RecentAnomaliesQ.keys()), 1)
        original_date = datetime_to_ISO8601(GLSettings.RecentAnomaliesQ.keys()[0])

        self.assertTrue(isinstance(anomdet, list))
        self.assertTrue(len(anomdet), 2)

        # alarm level was 2, right ?
        self.assertEqual(anomdet[1], 2, "Alarm raised is not 2 anymore ?")

        # every stuff need to be ANOMALIES_AMOUNT * 2, because
        # pollute function put two event each
        for event, amount in anomdet[0].iteritems():
            self.assertEqual(amount, ANOMALIES_AMOUNT * 2)

        # scheduler happen to save these anomalies, along with stats
        yield StatisticsSchedule().operation()

        # now if we get our anomalies, we expect the same 10, right ?
        AH = yield get_anomaly_history(limit=10)
        self.assertEqual(original_date, AH[0]['date'])
示例#2
0
    def test_event_accouting(self):
        anomaly.compute_activity_level()

        # create one event per type.
        for event_obj in event.outcoming_event_monitored:
            event.EventTrack(event_obj, 1.0)

        x = event.EventTrackQueue.take_current_snapshot()
        self.assertTrue(len(x) > 1)
示例#3
0
    def setUp(self):
        yield helpers.TestGL.setUp(self)

        # This is at the beginning
        event.EventTrackQueue.reset()

        pollute_events_for_testing()
        yield anomaly.compute_activity_level()
示例#4
0
    def test_compute_activity_level(self):
        """
        remind: activity level is called every 30 seconds by
        """
        pollute_events_for_testing()
        previous_len = len(event.EventTrackQueue.take_current_snapshot())

        pollute_events_for_testing()
        self.assertEqual(len(
            event.EventTrackQueue.take_current_snapshot()
        ), previous_len * 2)

        activity_level = yield anomaly.compute_activity_level()
        self.assertEqual(activity_level, 2)

        # Has not slow comeback to 0
        activity_level = yield anomaly.compute_activity_level()
        self.assertEqual(activity_level, 0)
示例#5
0
    def operation(self):
        """
        The routine periodically checks is checked if the system is having some anomalies
        If the alarm has been raises, it is logged in the db.
        """
        yield compute_activity_level()

        free_disk_bytes, total_disk_bytes = get_workingdir_space()
        free_ramdisk_bytes, total_ramdisk_bytes = get_ramdisk_space()

        Alarm().check_disk_anomalies(free_disk_bytes, total_disk_bytes, free_ramdisk_bytes, total_ramdisk_bytes)
示例#6
0
    def setUp(self):
        yield helpers.TestGL.setUp(self)

        # This is at the beginning
        event.EventTrackQueue.reset()

        pollute_events_for_testing()
        yield anomaly.compute_activity_level()

        # Token submission
        st = Token('submission')
        st.generate_token_challenge()
示例#7
0
    def setUp(self):
        yield helpers.TestGL.setUp(self)

        # This is at the beginning
        event.EventTrackQueue.reset()

        pollute_events_for_testing()
        yield anomaly.compute_activity_level()

        # Token submission
        st = Token('submission')
        st.generate_token_challenge()
示例#8
0
    def test_post(self):
        event.EventTrackQueue.reset()

        yield anomaly.compute_activity_level()

        handler = self.request({'type': 'submission'})

        yield handler.post()

        token = self.responses[0]

        self.assert_default_token_values(token)
示例#9
0
    def test_post(self):
        event.EventTrackQueue.reset()

        yield anomaly.compute_activity_level()

        handler = self.request({'type': 'submission'})

        yield handler.post()

        token = self.responses[0]

        self.assert_default_token_values(token)
示例#10
0
    def test_admin_alarm_generate_mail(self):
        a = anomaly.Alarm()

        # Remind, these two has to be done to get an event matrix meaningful
        pollute_events_for_testing()
        activity_level = yield anomaly.compute_activity_level()

        x = yield a.admin_alarm_generate_mail(
            event_matrix = {
                'wb_comments': 100,
                'noise': 12345
            }
        )
示例#11
0
    def test_put_right_answer(self):
        event.EventTrackQueue.reset()

        pollute_events_for_testing()
        yield anomaly.compute_activity_level()

        token = Token('submission')

        token.human_captcha = {'question': 'XXX', 'answer': 1}

        request_payload = token.serialize()

        request_payload['human_captcha_answer'] = 1

        handler = self.request(request_payload)
        yield handler.put(token.id)

        self.assertEqual(self.responses[0]['human_captcha'], False)
示例#12
0
    def test_put_right_answer(self):
        event.EventTrackQueue.reset()

        pollute_events_for_testing()
        yield anomaly.compute_activity_level()

        token = Token('submission')

        token.human_captcha = {'question': 'XXX','answer': 1}

        request_payload = token.serialize()

        request_payload['human_captcha_answer'] = 1

        handler = self.request(request_payload)
        yield handler.put(token.id)

        self.assertEqual(self.responses[0]['human_captcha'], False)
示例#13
0
    def test_put_wrong_answer(self):
        event.EventTrackQueue.reset()

        pollute_events_for_testing()
        yield anomaly.compute_activity_level()

        token = Token('submission')

        token.human_captcha = {'question': 'XXX', 'answer': 1}
        token.proof_of_work = False

        request_payload = token.serialize()

        request_payload['human_captcha_answer'] = 2

        handler = self.request(request_payload)
        yield handler.put(token.id)

        self.assertNotEqual(self.responses[0]['human_captcha'], False)

        # verify that the question is changed
        self.assertNotEqual(self.responses[0]['human_captcha'], 'XXX')
示例#14
0
    def test_put_wrong_answer(self):
        event.EventTrackQueue.reset()

        pollute_events_for_testing()
        yield anomaly.compute_activity_level()

        token = Token('submission')

        token.human_captcha = {'question': 'XXX','answer': 1}
        token.proof_of_work = False

        request_payload = token.serialize()

        request_payload['human_captcha_answer'] = 2

        handler = self.request(request_payload)
        yield handler.put(token.id)

        self.assertNotEqual(self.responses[0]['human_captcha'], False)

        # verify that the question is changed
        self.assertNotEqual(self.responses[0]['human_captcha'], 'XXX')
示例#15
0
 def operation(self):
     """
     The routine periodically checks is checked if the system is having some anomalies
     If the alarm has been raises, it is logged in the db.
     """
     yield compute_activity_level()
示例#16
0
 def operation(self):
     """
     The routine periodically checks is checked if the system is having some anomalies
     If the alarm has been raises, it is logged in the db.
     """
     yield compute_activity_level()