in perfmetrics/scripts/hns_rename_folders_metrics/generate_folders_and_files.py [0:0]
def _parse_and_generate_directory_structure(dir_str) -> int:
if not dir_str:
_logmessage("Directory structure not specified via config file.",LOG_ERROR)
return 1
else:
bucket_name = dir_str["name"]
# Making temporary folder and local bucket directory:
_logmessage('Making a temporary directory.\n',LOG_INFO)
subprocess.call(['mkdir', '-p', TEMPORARY_DIRECTORY])
# Creating a folder structure in gcs bucket.
if "folders" not in dir_str:
_logmessage("No folders specified in the config file",LOG_INFO)
else:
destination_url="gs://{}".format(bucket_name)
for folder in dir_str["folders"]["folder_structure"]:
# Create the folder at destination url.
exit_code = _create_folders(folder,destination_url)
if exit_code != 0:
_logmessage("Could not create files for folder {}".format(folder["name"]),LOG_ERROR)
_delete_temp_directory()
return exit_code
# Creating a nested folder structure in gcs bucket.
if "nested_folders" not in dir_str:
_logmessage("No nested folders specified in the config file",LOG_INFO)
else:
sub_folder_name = dir_str["nested_folders"]["folder_name"]
destination_url = 'gs://{}/{}'.format(bucket_name,sub_folder_name)
for folder in dir_str["nested_folders"]["folder_structure"]:
# Create the folder at destination url.
exit_code = _create_folders(folder,destination_url)
if exit_code != 0:
_logmessage("Could not create files for folder {}/{}".format(
sub_folder_name,folder["name"]),LOG_ERROR)
_delete_temp_directory()
return exit_code
# Deleting temporary folder if all file creation is successful:
exit_code = _delete_temp_directory()
return exit_code