diff --git a/pype/modules/sync_server/providers/abstract_provider.py b/pype/modules/sync_server/providers/abstract_provider.py new file mode 100644 index 0000000000..f0935c22fb --- /dev/null +++ b/pype/modules/sync_server/providers/abstract_provider.py @@ -0,0 +1,44 @@ +from abc import ABCMeta, abstractmethod + + +class AbstractProvider(metaclass=ABCMeta): + + @abstractmethod + def upload_file(self, source_path, target_path, overwrite=True): + """ + Copy file from 'source_path' to 'target_path' on provider. + Use 'overwrite' boolean to rewrite existing file on provider + :param source_path: absolute path on local system + :param target_path: absolute path on provider (GDrive etc.) + :param overwrite: True if overwite existing + :return: file_id of created file, raises exception + """ + pass + + @abstractmethod + def download_file(self, source_path, local_path): + """ + Download file from provider into local system + :param source_path: absolute path on provider + :param local_path: absolute path on local + :return: + """ + pass + + @abstractmethod + def delete_file(self, path): + """ + Deletes file from 'path'. Expects path to specific file. + :param path: absolute path to particular file + :return: None + """ + pass + + @abstractmethod + def list_folder(self, folder_path): + """ + List all files and subfolders of particular path non-recursively. + :param folder_path: absolut path on provider + :return: + """ + pass \ No newline at end of file diff --git a/pype/modules/sync_server/providers/gdrive.py b/pype/modules/sync_server/providers/gdrive.py index 8d91887f3a..b1aba3eb9f 100644 --- a/pype/modules/sync_server/providers/gdrive.py +++ b/pype/modules/sync_server/providers/gdrive.py @@ -192,6 +192,9 @@ class GDriveHandler(AbstractProvider): return file["id"] + def download_file(self, source_path, local_path): + pass + def delete_folder(self, path, force=False): """ Deletes folder on GDrive. Checks if folder contains any files or diff --git a/pype/modules/sync_server/sync_server.py b/pype/modules/sync_server/sync_server.py index 6a5fc0a488..d23c2befd7 100644 --- a/pype/modules/sync_server/sync_server.py +++ b/pype/modules/sync_server/sync_server.py @@ -214,7 +214,8 @@ class SynchServerThread(threading.Thread): while self.is_running: sync_representations = self.module.get_sync_representations() - + import time + start_time = time.time() for provider in lib.factory.providers: # TODO clumsy for sync in sync_representations: files = sync.get("files") or {} @@ -227,7 +228,8 @@ class SynchServerThread(threading.Thread): await self.module.upload(file, sync, provider) if status == SyncStatus.DO_DOWNLOAD: await self.module.download(file, sync, provider) - + duration = time.time() - start_time + log.info("One loop took {}".format(duration)) await asyncio.sleep(60) def stop(self):