Example #1
0
def calculate_file_checksum(file_id):
    logger.info("Calculate file checksum for file:%s", file_id)
    try:
        f = File.objects.get(id=file_id)
    except File.DoesNotExist:
        return None
    else:
        try:
            checksum = sha1(f.path)
            f.checksum = checksum
            f.save(update_fields=['checksum'])
        except FailedToCalculateChecksum as e:
            logger.info("Failed to calculate checksum. Error:%s", f.path)
    return []
Example #2
0
def calculate_checksum(file_id, path):
    try:
        checksum = sha1(path)
    except FailedToCalculateChecksum as e:
        logger.info("Failed to calculate checksum for file: %s: %s", file_id, path)
        raise FailedToCalculateChecksum("Failed to calculate checksum. Error: File %s not found", file_id)
    try:
        f = File.objects.get(id=file_id)
        f.checksum = checksum
        f.save(update_fields=["checksum"])
    except File.DoesNotExist:
        logger.info("Failed to calculate checksum. Error: File %s not found", file_id)
        raise FailedToCalculateChecksum("Failed to calculate checksum. Error: File %s not found", file_id)
    return []
Example #3
0
def populate_file_checksums():
    logger.info("Calculating file checksum")
    files = File.objects.all()
    for f in files:
        logger.info("Processing file:%s checksum" % str(f.id))
        if not f.checksum:
            logger.debug("Calculating file:%s checksum" % str(f.id))
            try:
                checksum = sha1(f.path)
                f.checksum = checksum
                f.save()
            except FailedToCalculateChecksum as e:
                logger.info("Failed to calculate checksum. Error:%s", f.path)
            sleep(1)
    return []