def _get_hash(self, f): """ Computes the hash of the file f. """ fullpath = os.path.join(self.project_path, f) # If the file has no write permission, set it. self._add_perm(fullpath, stat.S_IWUSR) # Verifies if all parent directories of the fullpath is created. create_missing_dirs(fullpath) # If the file does not exist, create it if not os.path.exists(fullpath): open(fullpath, 'w+b').close() if os.path.isfile(fullpath): # Computes the block checksums and add the result to the # all_hashes list. with open(fullpath, 'rb') as unpatched: return (f, pyrsync.blockchecksums(unpatched, blocksize=8192))
def _get_hashes(self): """ Computes the delta hashes for each file in the files list and return the future rsync payload to send. """ # Sets the future socket response dict. ret = { 'sid': self.sid, 'rid': self.rid } # A list of hashes. all_hashes = [] for relpath in self.files: fullpath = os.path.join(self.project_path, relpath) # If the file has no write permission, set it. self._add_perm(fullpath, stat.S_IWUSR) # Verifies if all parent directories of the fullpath is # created. create_missing_dirs(fullpath) # If the file does not exist, create it if not os.path.exists(fullpath): open(fullpath, 'w+b').close() if os.path.isfile(fullpath): # Computes the block checksums and add the result to the # all_hashes list. with open(fullpath, 'rb') as unpatched: hashes = pyrsync.blockchecksums(unpatched) data = (relpath, hashes) all_hashes.append(data) # Adds the hashes list in the ret dict. ret['hashes'] = all_hashes return ret
def _get_hashes(self): """ Computes the delta hashes for each file in the files list and return the future rsync payload to send. """ # Sets the future proxy_socket response dict. ret = {'sid': self.sid, 'rid': self.rid} # A list of hashes. all_hashes = [] for relpath in self.files: fullpath = os.path.join(self.project_path, relpath) # If the file has no write permission, set it. self._add_perm(fullpath, stat.S_IWUSR) # Verifies if all parent directories of the fullpath is # created. create_missing_dirs(fullpath) # If the file does not exist, create it if not os.path.exists(fullpath): open(fullpath, 'w+b').close() if os.path.isfile(fullpath): # Computes the block checksums and add the result to the # all_hashes list. with open(fullpath, 'rb') as unpatched: hashes = pyrsync.blockchecksums(unpatched) data = (relpath, hashes) all_hashes.append(data) # Adds the hashes list in the ret dict. ret['hashes'] = all_hashes return ret