示例#1
0
    def validate_record(record_file):
        """Validate the record file."""
        # Check the validity of a cyber record file according to header info.
        record_reader = RecordReader(record_file)
        header_msg = record_reader.get_headerstring()
        header = record_pb2.Header()
        header.ParseFromString(header_msg)
        print(f"header is {header}")

        if not header.is_complete:
            print(f'Record file: {record_file} is not completed.')
            return False
        if header.size == 0:
            print(f'Record file: {record_file}. size is 0.')
            return False
        if header.major_version != 1 and header.minor_version != 0:
            print(
                f'Record file: {record_file}. version [{header.major_version}: '
                f'{header.minor_version}] is wrong.')
            return False
        if header.begin_time >= header.end_time:
            print(
                f'Record file: {record_file}. begin time [{header.begin_time}] '
                f'is equal or larger than end time [{header.end_time}].')
            return False

        if header.message_number < 1 or header.channel_number < 1:
            print(
                f'Record file: {record_file}. [message:channel] number '
                f'[{header.message_number}:{header.channel_number}] is invalid.'
            )
            return False

        # There should be at least one sensor channel
        sensor_channels = Extractor.get_sensor_channel_list(record_file)
        if len(sensor_channels) < 1:
            print(f'Record file: {record_file}. cannot find sensor channels.')
            return False

        return True
示例#2
0
def validate_record(record_file):
    """Validate the record file."""
    # Check the validity of a cyber record file according to header info.
    record_reader = RecordReader(record_file)
    header_msg = record_reader.get_headerstring()
    header = record_pb2.Header()
    header.ParseFromString(header_msg)
    print("header is {}".format(header))

    if not header.is_complete:
        print('Record file: %s is not completed.' % record_file)
        return False
    if header.size == 0:
        print('Record file: %s. size is 0.' % record_file)
        return False
    if header.major_version != 1 and header.minor_version != 0:
        print('Record file: %s. version [%d:%d] is wrong.' %
              (record_file, header.major_version, header.minor_version))
        return False
    if header.begin_time >= header.end_time:
        print('Record file: %s. begin time [%s] is equal or larger than '
              'end time [%s].' %
              (record_file, header.begin_time, header.end_time))
        return False

    if header.message_number < 1 or header.channel_number < 1:
        print('Record file: %s. [message:channel] number [%d:%d] is invalid.' %
              (record_file, header.message_number, header.channel_number))
        return False

    # There should be at least one sensor channel
    sensor_channels = get_sensor_channel_list(record_file)
    if len(sensor_channels) < 1:
        print('Record file: %s. cannot find sensor channels.' % record_file)
        return False

    return True