def __init__(self, path, kdm=None, pkey=None): """ DCP constructor. Args: path (str): Absolute path to directory. kdm (str): Absolute path to KDM file. pkey (str): Absolute path to private key, this should be the KDM recipient private key. Raises: ClairMetaException: ``path`` directory not found. """ if not os.path.isdir(path): raise ClairMetaException("{} is not a valid folder".format(path)) self.path = os.path.normpath(path) self.kdm = os.path.normpath(kdm) if kdm else None self.pkey = os.path.normpath(pkey) if pkey else None self.schema = 'Unknown' self.package_type = 'Unknown' self.foreign_files = [] self.size = folder_size(path) self.log = get_log() self._probeb = False self._parsed = False
def cli_copy(args): dcp = DCP(args.source) dcp_size = dcp.size try: log = get_log() log.info("Copy {} to {}".format(args.source, args.dest)) start = time.time() progress = ConsoleProgress() progress._total_size = dcp_size with concurrent.futures.ThreadPoolExecutor(max_workers=1) as executor: future = executor.submit( shutil.copytree, args.source, args.dest, dirs_exist_ok=args.overwrite ) while future.running(): copy_size = folder_size(args.dest) elapsed = time.time() - start progress(args.source, copy_size, dcp_size, elapsed) time.sleep(1.0) future.result() progress(args.source, dcp_size, dcp_size, elapsed) log.info("Total time : {:.2f} sec".format(time.time() - start)) dcp_dst = DCP(args.dest) status, report = dcp.check(hash_callback=ConsoleProgress()) return status except Exception as e: print(str(e)) return False
def __init__(self, path): """ DCP constructor. Args: path (str): Absolute path to directory. Raises: ValueError: ``path`` directory not found. """ if not os.path.isdir(path): raise ValueError("{} is not a valid folder".format(path)) self.path = os.path.normpath(path) self.schema = 'Unknown' self.package_type = 'Unknown' self.foreign_files = [] self.size = folder_size(path) self.log = get_log() self._probeb = False self._parsed = False