@@ -565,12 +565,31 @@ def add_folder_hierarchy(folder_hierarchy, dataset_v2, headers):
565565 hierarchy_parts = hierarchy_parts [1 :]
566566 current_parent = None
567567 for part in hierarchy_parts :
568- result = create_folder_if_not_exists_or_get (
568+ result = create_dataset_folder_if_not_exists_or_get (
569569 part , current_parent , dataset_v2 , headers
570570 )
571571 if result :
572572 current_parent = result ["id" ]
573573
574+ # for creating a folder for a dataset
575+ def create_dataset_folder_if_not_exists_or_get (folder , parent , dataset_v2 , headers ):
576+ """Create a folder if it does not exist or return the existing folder."""
577+ # current_folders = get_folder_and_subfolders(dataset_v2, headers)
578+ current_all_folders = get_all_folder_and_subfolders (dataset_v2 , headers )
579+ folder_data = (
580+ {"name" : folder , "parent_folder" : parent } if parent else {"name" : folder }
581+ )
582+
583+ for existing_folder in current_all_folders :
584+ if existing_folder ["name" ] == folder :
585+ return existing_folder
586+
587+ response = requests .post (
588+ f"{ CLOWDER_V2 } /api/v2/datasets/{ dataset_v2 } /folders" ,
589+ json = folder_data ,
590+ headers = headers ,
591+ )
592+ return response .json ()
574593
575594def create_folder_if_not_exists_or_get (folder , parent , parent_type , dataset_v2 , headers ):
576595 """Create a folder if it does not exist or return the existing folder."""
@@ -1307,6 +1326,7 @@ def process_user_and_resources_collections(user_v1, USER_MAP, DATASET_MAP, COLLE
13071326 if MIGRATE_DATASET :
13081327 dataset_v2_id = create_v2_dataset (dataset , user_headers_v2 )
13091328 DATASET_MAP [dataset ["id" ]] = dataset_v2_id
1329+ #
13101330 add_dataset_metadata (dataset , dataset_v2_id , base_headers_v1 , user_headers_v2 )
13111331 add_dataset_folders (dataset , dataset_v2_id , user_headers_v2 )
13121332 print ("Created folders in the new dataset" )
0 commit comments