The freezer.utils.checksum Module

class freezer.utils.checksum.CheckSum(path, hasher_type='sha256', blocksize=1048576, exclude='', ignorelinks=False)[source]

Bases: object

Checksum a file or directory with sha256 or md5 algorithms.

This is used by backup and restore jobs to check for backup consistency.

  • parameters::
    param path:the path to the file or directory to checksum
    type path:string
    param hasher_type:
     the hashing algorithm to use for checksum
    type hasher_type:
     string
    param hasher:hasher object for the specified hasher_type
    type hasher:hashlib object
    param blocksize:
     the max. size of block to read when hashing a file
    type blocksize:integer
    param exclude:pattern of files to exclude
    type exclude:string
    param checksum:final result for checksum computing
    type checksum:string
    param real_checksum:
     checksum without filename appended if unique file
    type real_checksum:
     string
    param count:number of files checksummed
    type count:int
compare(checksum)[source]

Compute the checksum for the object path and compare with the given checksum. :return: boolean

compute()[source]

Compute the checksum for the given path. If a single file is provided, the result is its checksum concatenated with its name. If a directory is provided, the result is the checksum of the checksum concatenation for each file. :return: string

get_files_hashes_in_path()[source]

Walk the files in path computing the checksum for each one and updates the concatenation checksum for the final result

get_hash(filepath)[source]

Open filename and calculate its hash. Append the hash to the previous result and stores the checksum for this concatenation :param filepath: path to file :type filepath: string :return: string containing the hash of the given file

hashes = []
hashfile(afile)[source]

Checksum a single file with the chosen algorithm. The file is read in chunks of self.blocksize. :return: string

hashstring(string)[source]
Returns:the hash for a given string
set_hasher(hasher_type)[source]

Sets the hasher from hashlib according to the chosen hasher_type. Also sets the size of the expected output