From e2420c291925e997628b81c17e77ca986783bcf5 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Wed, 23 Sep 2020 12:45:47 +0200 Subject: [PATCH] Fix - modified handling of failed syncs of files --- pype/modules/sync_server/sync_server.py | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/pype/modules/sync_server/sync_server.py b/pype/modules/sync_server/sync_server.py index f2912ff5d7..7dd11337de 100644 --- a/pype/modules/sync_server/sync_server.py +++ b/pype/modules/sync_server/sync_server.py @@ -121,9 +121,7 @@ class SyncServer(): (list) """ # retry_cnt - number of attempts to sync specific file before giving up - retries_str = "null," + \ - ",".join([str(i) - for i in range(self.presets["retry_cnt"])]) + retries_arr = self._get_retries_arr() active_providers_str = ",".join(self.active_provider_names) query = { "type": "representation", @@ -140,7 +138,7 @@ class SyncServer(): "$elemMatch": { "name": {"$in": [active_providers_str]}, "created_dt": {"$exists": False}, - "tries": {"$nin": [retries_str]} + "tries": {"$in": retries_arr} } } }]}, @@ -150,7 +148,7 @@ class SyncServer(): "$elemMatch": { "name": self.presets["local_id"], "created_dt": {"$exists": False}, - "tries": {"$nin": [retries_str]} + "tries": {"$in": retries_arr} } }}, { "files.sites": { @@ -536,6 +534,20 @@ class SyncServer(): target_root = '/{}'.format(root_name) return file.get("path", "").replace('{root}', target_root) + def _get_retries_arr(self): + """ + Returns array with allowed values in 'tries' field. If repre + contains these values, it means it was tried to be synchronized + but failed. We try up to 'self.presets["retry_cnt"]' times before + giving up and skipping representation. + Returns: + (list) + """ + arr = [i for i in range(self.presets["retry_cnt"])] + arr.append(None) + + return arr + class SynchServerThread(threading.Thread): """