From 01273f8dfc053822c4773918ce20d0d71fc5787a Mon Sep 17 00:00:00 2001 From: ernestohc21 Date: Thu, 6 Nov 2025 12:07:22 -0600 Subject: [PATCH] Remove __pycache__ files and update nodes.py to enhance sync status logic --- .gitignore | 1 + sync_api/__pycache__/main.cpython-312.pyc | Bin 10878 -> 0 bytes .../models/__pycache__/__init__.cpython-312.pyc | Bin 147 -> 0 bytes .../__pycache__/sync_models.cpython-312.pyc | Bin 6786 -> 0 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 148 -> 0 bytes .../routers/__pycache__/health.cpython-312.pyc | Bin 6649 -> 0 bytes .../routers/__pycache__/nodes.cpython-312.pyc | Bin 18799 -> 0 bytes sync_api/routers/nodes.py | 13 ++++++++++--- 8 files changed, 11 insertions(+), 3 deletions(-) create mode 100644 .gitignore delete mode 100644 sync_api/__pycache__/main.cpython-312.pyc delete mode 100644 sync_api/models/__pycache__/__init__.cpython-312.pyc delete mode 100644 sync_api/models/__pycache__/sync_models.cpython-312.pyc delete mode 100644 sync_api/routers/__pycache__/__init__.cpython-312.pyc delete mode 100644 sync_api/routers/__pycache__/health.cpython-312.pyc delete mode 100644 sync_api/routers/__pycache__/nodes.cpython-312.pyc diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ba0430d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +__pycache__/ \ No newline at end of file diff --git a/sync_api/__pycache__/main.cpython-312.pyc b/sync_api/__pycache__/main.cpython-312.pyc deleted file mode 100644 index 2a40d5f14c0f9b7fe72e8f13e821fe9a372598e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10878 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 diff --git a/sync_api/models/__pycache__/__init__.cpython-312.pyc b/sync_api/models/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 4ee179e80cba018e3322f4f0309098706d7dcef7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 147 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 QaZE9R{RbKyrpf&He-)#|)Bpeg diff --git a/sync_api/routers/nodes.py b/sync_api/routers/nodes.py index 4101b30..3df9740 100644 --- a/sync_api/routers/nodes.py +++ b/sync_api/routers/nodes.py @@ -72,11 +72,18 @@ def determine_sync_status(node_name: str, last_restore_date: Optional[datetime] # Si la última sincronización es más reciente que el archivo if last_restore_date > file_mod_time: return EstadoSincronizacion.ACTUALIZADA.value + + # Si la última restauración fue hace más de 5 horas, continuar + if datetime.now() - last_restore_date > timedelta(hours=5): + # Pasaron más de 5 horas, continuar el proceso + pass + else: + # Aún dentro de las 5 horas → seguir procesando + return EstadoSincronizacion.PROCESANDO.value + except OSError: # Si hay error leyendo el archivo, asumir procesando - pass - - return EstadoSincronizacion.PROCESANDO.value + return EstadoSincronizacion.PROCESANDO.value # Si no existe en ninguna ruta SFTP, usar lógica basada en fechas de restauración if last_restore_date is None: