From 3dc415211dc4e52beaf836b9eb28a37488ec7219 Mon Sep 17 00:00:00 2001 From: udir Date: Sun, 10 May 2026 11:52:43 +0300 Subject: [PATCH 1/3] PIM-7684: Recover raises RecoverError when files_processed is 0 Override _task_complete in Recover to detect edge case where portal reports task as completed but processed zero files, ensuring RecoverError is raised consistently for all failure modes. Co-authored-by: Cursor --- cterasdk/cio/core/commands.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cterasdk/cio/core/commands.py b/cterasdk/cio/core/commands.py index 91b8b856..abfedcd1 100644 --- a/cterasdk/cio/core/commands.py +++ b/cterasdk/cio/core/commands.py @@ -1043,6 +1043,11 @@ class Recover(MultiResourceCommand): def _progress_str(self): return 'Recovering' + def _task_complete(self, task): + if getattr(task, 'files_processed', None) == 0: + return self._task_error(task) + return super()._task_complete(task) + def _task_error(self, task): cursor = task.cursor raise exceptions.io.core.RecoverError(self.paths, cursor) From 29463a31c75091c1b989265b980e189c5373ab88 Mon Sep 17 00:00:00 2001 From: udir Date: Mon, 11 May 2026 10:39:20 +0300 Subject: [PATCH 2/3] PIM-7684: Fix async handle() signature to match sync version The consolidation in 932ed19 made `objects` a required parameter in the async CloudDrive.handle() but optional in the sync version. This broke callers that use handle(path) for single-file reads. Co-authored-by: Cursor --- cterasdk/asynchronous/core/files/browser.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cterasdk/asynchronous/core/files/browser.py b/cterasdk/asynchronous/core/files/browser.py index 3b8a7ff4..0df346c8 100644 --- a/cterasdk/asynchronous/core/files/browser.py +++ b/cterasdk/asynchronous/core/files/browser.py @@ -11,7 +11,7 @@ class FileBrowser(BaseCommand): """Async File Browser API.""" - async def handle(self, path, objects): + async def handle(self, path, objects=None): """ Get a file handle. From 0bae359ed4c994adf00cee5af2de3f424ffd0232 Mon Sep 17 00:00:00 2001 From: udir Date: Mon, 11 May 2026 11:32:16 +0300 Subject: [PATCH 3/3] Revert "PIM-7684: Fix async handle() signature to match sync version" This reverts commit 29463a31c75091c1b989265b980e189c5373ab88. --- cterasdk/asynchronous/core/files/browser.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cterasdk/asynchronous/core/files/browser.py b/cterasdk/asynchronous/core/files/browser.py index 0df346c8..3b8a7ff4 100644 --- a/cterasdk/asynchronous/core/files/browser.py +++ b/cterasdk/asynchronous/core/files/browser.py @@ -11,7 +11,7 @@ class FileBrowser(BaseCommand): """Async File Browser API.""" - async def handle(self, path, objects=None): + async def handle(self, path, objects): """ Get a file handle.