diff --git a/orchestration/sharepoint_renamer_orchestrator.py b/orchestration/sharepoint_renamer_orchestrator.py index 3159a607b..b5206f0ee 100644 --- a/orchestration/sharepoint_renamer_orchestrator.py +++ b/orchestration/sharepoint_renamer_orchestrator.py @@ -77,6 +77,7 @@ class SharepointRenamerOrchestrator: return [BASE_PATH, *batch_roots] def run(self) -> None: + roots = self._discover_roots() with open(self._csv_path, newline="", encoding="utf-8-sig") as f: reader = csv.DictReader(f) required = {"UPRN", "Address", "Postcode"} @@ -89,20 +90,22 @@ class SharepointRenamerOrchestrator: uprn = row["UPRN"].strip() address = row["Address"].strip() postcode = row["Postcode"].strip() - folder_path = ( - f"{BASE_PATH}/{address}, {postcode}" - f"/{SharepointSubfolders.ASSESSMENT.value}/{ASSESSMENT_SUBFOLDER}" - ) - self._process_folder(folder_path, uprn, address, postcode) + for root in roots: + folder_path = ( + f"{root}/{address}, {postcode}" + f"/{SharepointSubfolders.ASSESSMENT.value}/{ASSESSMENT_SUBFOLDER}" + ) + if self._process_folder(folder_path, uprn, address, postcode): + break def _process_folder( self, folder_path: str, uprn: str, address: str, postcode: str - ) -> None: + ) -> bool: try: contents = self._sp_client.get_folders_in_path(folder_path) except ValueError: logger.warning(f"Missing folder for UPRN {uprn}: {folder_path}") - return + return False for item in contents.get("value", []): if "folder" in item: @@ -134,3 +137,4 @@ class SharepointRenamerOrchestrator: logger.error( f'Failed to rename "{original_name}" → "{new_name}" (UPRN: {uprn}): {e}' ) + return True