Skip to content

Commit 2fb33c4

Browse files
committed
the folder hierarchy part is not working for v2
1 parent a00e600 commit 2fb33c4

File tree

1 file changed

+46
-3
lines changed

1 file changed

+46
-3
lines changed

scripts/migration/migrate.py

Lines changed: 46 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -219,13 +219,13 @@ def process_collection_descendants(collection, headers_v1,headers_v2, v2_parent_
219219
print(f"Now we need to add the sub folders of this dataset")
220220
# TODO get DATASET FOLDERS HERE FROM v1
221221
process_dataset_folders(dataset, headers_v1, headers_v2, new_folder['id'], v2_dataset_id)
222-
process_dataset_files(dataset, headers_v1, headers_v2, new_folder['id'], v2_dataset_id)
222+
process_dataset_files(dataset, headers_v1, headers_v2, 'folder', new_folder['id'], v2_dataset_id)
223223
else:
224224
print(f"Parent is a folder")
225225
new_folder = create_folder_if_not_exists_or_get(dataset["name"], v2_parent_id, v2_dataset_id, headers_v2)
226226
# TODO GET DATASET FOLDERS HERE FROM v1
227227
process_dataset_folders(dataset, headers_v1, headers_v2, new_folder['id'], v2_dataset_id)
228-
process_dataset_files(dataset, headers_v1, headers_v2, new_folder['id'], v2_dataset_id)
228+
process_dataset_files(dataset, headers_v1, headers_v2, 'folder', new_folder['id'], v2_dataset_id)
229229

230230

231231

@@ -235,10 +235,40 @@ def process_dataset_folders(dataset, headers_v1, headers_v2, parent_type, parent
235235
folder_json = folder_response.json()
236236
print(f"Got dataset folders")
237237

238-
def process_dataset_files(dataset, headers_v1, headers_v2, parent_type, parent_id):
238+
def get_v1_dataset_folders(dataset, headers_v1, headers_v2, parent_type, parent_id):
239+
folder_endpoint = f"{CLOWDER_V1}/api/datasets/{dataset['id']}/folders"
240+
folder_response = requests.get(folder_endpoint, headers=headers_v1)
241+
folder_json = folder_response.json()
242+
return folder_json
243+
244+
def process_dataset_files(dataset, headers_v1, headers_v2, parent_type, parent_id, dataset_v2_id):
245+
dataset_v1_folders = get_v1_dataset_folders(dataset, headers_v1, headers_v2, parent_type, parent_id)
246+
247+
for folder_v1 in dataset_v1_folders:
248+
current_folder_hierarchy = folder_v1['name']
249+
new_parent = add_folder_hierarchy_to_migration_folder(folder_hierarchy=current_folder_hierarchy,
250+
dataset_v2=dataset_v2_id,
251+
folder_id_v2=parent_id,
252+
headers=headers_v2
253+
)
254+
parent_id = new_parent
255+
print(f"This is the folder")
256+
239257
files_endpoint = f"{CLOWDER_V1}/api/datasets/{dataset['id']}/files"
240258
files_response = requests.get(files_endpoint, headers=headers_v1)
241259
files_json = files_response.json()
260+
for file in files_json:
261+
if 'folders' in file:
262+
print(f"This file is in a folder")
263+
# TODO get folder
264+
folder_endpoint = f"{CLOWDER_V1}/api/datasets/{dataset['id']}/files"
265+
else:
266+
print(f"This file is not in a folder")
267+
# TODO upload it to the folder
268+
if parent_type == "dataset":
269+
print(f"Upload to a dataset")
270+
if parent_type == "folder":
271+
print(f"Upload to a folder")
242272
print(f"Got dataset files")
243273

244274

@@ -517,6 +547,19 @@ def create_v2_group(space, headers):
517547
response = requests.post(group_in_v2_endpoint, json=group, headers=headers)
518548
return response.json()["id"]
519549

550+
# TODO try this
551+
def add_folder_hierarchy_to_migration_folder(folder_hierarchy, dataset_v2, folder_id_v2, headers):
552+
"""Add folder hierarchy to a dataset in Clowder v2."""
553+
hierarchy_parts = folder_hierarchy.split("/")
554+
if hierarchy_parts[0] == '':
555+
hierarchy_parts = hierarchy_parts[1:]
556+
current_parent = folder_id_v2
557+
for part in hierarchy_parts:
558+
result = create_folder_if_not_exists_or_get(
559+
part, current_parent, dataset_v2, headers
560+
)
561+
if result:
562+
current_parent = result["id"]
520563

521564
def add_folder_hierarchy(folder_hierarchy, dataset_v2, headers):
522565
"""Add folder hierarchy to a dataset in Clowder v2."""

0 commit comments

Comments
 (0)