diff --git a/uncloud/filescanner/main.py b/uncloud/filescanner/main.py index 9d2b2f6..cb5f2b7 100755 --- a/uncloud/filescanner/main.py +++ b/uncloud/filescanner/main.py @@ -14,6 +14,7 @@ from uncloud.shared import shared arg_parser = argparse.ArgumentParser('filescanner', add_help=False) +arg_parser.add_argument('--hostname', required=True) def sha512sum(file: str): @@ -41,7 +42,7 @@ def sha512sum(file: str): return None -def track_file(file, base_dir): +def track_file(file, base_dir, host): file_path = file.relative_to(base_dir) file_str = str(file) # Get Username @@ -60,6 +61,7 @@ def track_file(file, base_dir): 'sha512sum': sha512sum(file_str), 'creation_date': creation_date, 'size': str(bitmath.Byte(os.path.getsize(file_str)).to_MB()), + 'host': host } logger.info('Tracking %s', file_str) @@ -67,7 +69,7 @@ def track_file(file, base_dir): shared.etcd_client.put(entry_key, entry_value, value_in_json=True) -def main(debug=False): +def main(hostname, debug=False): base_dir = settings['storage']['file_dir'] # Recursively Get All Files and Folder below BASE_DIR files = glob.glob('{}/**'.format(base_dir), recursive=True) @@ -77,11 +79,8 @@ def main(debug=False): tracked_files = [ pathlib.Path(os.path.join(base_dir, f.value['owner'], f.value['filename'])) for f in shared.etcd_client.get_prefix(settings['etcd']['file_prefix'], value_in_json=True) + if f.value['host'] == hostname ] untracked_files = set(files) - set(tracked_files) for file in untracked_files: - track_file(file, base_dir) - - -if __name__ == '__main__': - main() + track_file(file, base_dir, hostname)