示例#1
0
 def func4(sflow_entry):
     uuid = sflow_entry["uuid"]
     if uuid not in sflow_entry_cache:
         sflow_entry_cache[uuid] = (sflow_entry, int(time.time()))
     else:
         curr_time = int(time.time())
         last_sflow_entry = sflow_entry_cache[uuid][0]
         last_time = sflow_entry_cache[uuid][1]
         in_pps_diff = int(sflow_entry["in_pps"] - last_sflow_entry["in_pps"])
         velocity = int(in_pps_diff / (curr_time - last_time))
         if velocity > int(config.CONF.alarm.pps_threshold):
             record = models.AbnormalRecord()
             record.uuid = uuid
             record.start = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(curr_time))
             record.stats = json.dumps(sflow_entry)
             api.abnormal_record_insert(record)
示例#2
0
 def func4(sflow_entry):
     uuid = sflow_entry["uuid"]
     if uuid not in sflow_entry_cache:
         sflow_entry_cache[uuid] = (sflow_entry, int(time.time()))
     else:
         curr_time = int(time.time())
         last_sflow_entry = sflow_entry_cache[uuid][0]
         last_time = sflow_entry_cache[uuid][1]
         in_pps_diff = int(sflow_entry["in_pps"] -
                           last_sflow_entry["in_pps"])
         velocity = int(in_pps_diff / (curr_time - last_time))
         if velocity > int(config.CONF.alarm.pps_threshold):
             record = models.AbnormalRecord()
             record.uuid = uuid
             record.start = time.strftime("%Y-%m-%d %H:%M:%S",
                                          time.localtime(curr_time))
             record.stats = json.dumps(sflow_entry)
             api.abnormal_record_insert(record)
示例#3
0
    def test_abnormal_record_get_set(self):
        #TODO
        ar = models.AbnormalRecord()

        letter_digits = string.ascii_letters + string.digits
        ar.uuid = ''.join([letter_digits[random.randint(0,35)] for i in range(0,36)])
        ar.start = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())
        ar.end = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())
        ar.stats = 'test,this is just a test'

        api.abnormal_record_insert(ar)

        ret = api.abnormal_record_get_all()
        uuid_set = set(map(lambda x:x.uuid, ret))
        assert(ar.uuid in uuid_set)
        #import pdb
        #pdb.set_trace()
        api.abnormal_record_delete(ar.uuid)

        ret = api.abnormal_record_get_all()
        uuid_set = set(map(lambda x:x.uuid, ret))
        assert(ar.uuid not in uuid_set)
示例#4
0
    def test_abnormal_record_get_set(self):
        #TODO
        ar = models.AbnormalRecord()

        letter_digits = string.ascii_letters + string.digits
        ar.uuid = ''.join(
            [letter_digits[random.randint(0, 35)] for i in range(0, 36)])
        ar.start = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
        ar.end = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
        ar.stats = 'test,this is just a test'

        api.abnormal_record_insert(ar)

        ret = api.abnormal_record_get_all()
        uuid_set = set(map(lambda x: x.uuid, ret))
        assert (ar.uuid in uuid_set)
        #import pdb
        #pdb.set_trace()
        api.abnormal_record_delete(ar.uuid)

        ret = api.abnormal_record_get_all()
        uuid_set = set(map(lambda x: x.uuid, ret))
        assert (ar.uuid not in uuid_set)