fix_checked_file #43

Merged
narenas merged 4 commits from fix_checked_file into main 2025-09-01 16:48:04 +02:00
Collaborator

📝 Descripción

Este PR corrige la lógica de validación de archivos y mejora el manejo de errores en los scripts del repositorio, específicamente para la validación de archivos .info y .info.checked.

🔧 Cambios realizados

api/repo_api.py

  • Endpoint create_torrent_sum: Corregida la lógica de validación para verificar que existe al menos uno de los archivos .info.checked o .info
  • Mejorados los mensajes de log para ser más descriptivos y consistentes
  • Simplificada la lógica de verificación eliminando la lista missed_files innecesaria
  • Añadidos logs informativos cuando se encuentran los archivos requeridos

bin/createTorrentSum.py

  • Función main(): Corregida la validación para aceptar que existe la imagen Y al menos uno de los archivos info
  • Cambiada la lógica de and a or en la condición de validación de archivos .info
  • Mejorados los mensajes de error para ser más claros sobre qué archivos se requieren
  • Añadidos logs específicos con systemd.journal para facilitar el debugging

bin/updateRepoInfo.py

  • Función check_files(): Añadido manejo robusto de excepciones durante el procesamiento de archivos
  • El script ahora continúa procesando otras imágenes si una falla al leer sus archivos
  • Implementadas diferentes categorías de excepciones (IOError, OSError, PermissionError, ValueError)
  • Añadido continue tras eliminar archivos desactualizados para evitar procesamiento posterior

🐛 Problemas resueltos

  1. Lógica de validación incorrecta: Los scripts originalmente requerían que ambos archivos .info.checked Y .info existieran simultáneamente, cuando en realidad solo necesita uno de los dos.

  2. Falta de robustez: updateRepoInfo.py fallaba completamente si no podía leer algún archivo (permisos, archivo corrupto, etc.), interrumpiendo el procesamiento de todas las demás imágenes.

  3. Mensajes inconsistentes: Los logs no eran coherentes entre la validación y los mensajes de error.

🧪 Casos de prueba verificados

  • Validación correcta: Script acepta imágenes cuando existe .info.checked pero no .info
  • Validación correcta: Script acepta imágenes cuando existe .info pero no .info.checked
  • Validación correcta: Script rechaza imágenes cuando no existe ninguno de los dos archivos
  • Robustez: updateRepoInfo.py continúa procesando otras imágenes cuando una falla
  • Logging: Se registran logs apropiados en systemd journal para debugging

🔄 Lógica de validación actualizada

Antes (requerir ambos archivos):

if not file_a_exists and not file_b_exists:  # Ambos deben existir

📋 Checklist
Los cambios siguen las convenciones de código del proyecto
Se mantiene la funcionalidad existente para casos válidos
Se han mejorado los mensajes de error y logging
La lógica de validación es coherente entre scripts
El manejo de errores es más robusto
Los mensajes son descriptivos y útiles para debugging
🔗 Compatibilidad
Estos cambios son totalmente compatibles con versiones anteriores. La nueva lógica es menos restrictiva (acepta más casos válidos) y más robusta (maneja mejor los errores), sin afectar el comportamiento correcto existente.

💡 Beneficios
Mayor flexibilidad: Los scripts ahora aceptan el formato estándar de archivos info del sistema
Mayor robustez: Errores en archivos individuales no interrumpen el procesamiento completo
Mejor debugging: Logs más descriptivos facilitan la identificación de problemas
Consistencia: Lógica de validación coherente entre todos los scripts involucrados

## 📝 Descripción Este PR corrige la lógica de validación de archivos y mejora el manejo de errores en los scripts del repositorio, específicamente para la validación de archivos `.info` y `.info.checked`. ## 🔧 Cambios realizados ### `api/repo_api.py` - ✅ **Endpoint `create_torrent_sum`**: Corregida la lógica de validación para verificar que existe **al menos uno** de los archivos `.info.checked` o `.info` - ✅ Mejorados los mensajes de log para ser más descriptivos y consistentes - ✅ Simplificada la lógica de verificación eliminando la lista `missed_files` innecesaria - ✅ Añadidos logs informativos cuando se encuentran los archivos requeridos ### `bin/createTorrentSum.py` - ✅ **Función `main()`**: Corregida la validación para aceptar que existe la imagen **Y** al menos uno de los archivos info - ✅ Cambiada la lógica de `and` a `or` en la condición de validación de archivos `.info` - ✅ Mejorados los mensajes de error para ser más claros sobre qué archivos se requieren - ✅ Añadidos logs específicos con `systemd.journal` para facilitar el debugging ### `bin/updateRepoInfo.py` - ✅ **Función `check_files()`**: Añadido manejo robusto de excepciones durante el procesamiento de archivos - ✅ El script ahora continúa procesando otras imágenes si una falla al leer sus archivos - ✅ Implementadas diferentes categorías de excepciones (`IOError`, `OSError`, `PermissionError`, `ValueError`) - ✅ Añadido `continue` tras eliminar archivos desactualizados para evitar procesamiento posterior ## 🐛 Problemas resueltos 1. **Lógica de validación incorrecta**: Los scripts originalmente requerían que **ambos** archivos `.info.checked` Y `.info` existieran simultáneamente, cuando en realidad solo necesita **uno de los dos**. 2. **Falta de robustez**: `updateRepoInfo.py` fallaba completamente si no podía leer algún archivo (permisos, archivo corrupto, etc.), interrumpiendo el procesamiento de todas las demás imágenes. 3. **Mensajes inconsistentes**: Los logs no eran coherentes entre la validación y los mensajes de error. ## 🧪 Casos de prueba verificados - ✅ **Validación correcta**: Script acepta imágenes cuando existe `.info.checked` pero no `.info` - ✅ **Validación correcta**: Script acepta imágenes cuando existe `.info` pero no `.info.checked` - ✅ **Validación correcta**: Script rechaza imágenes cuando no existe ninguno de los dos archivos - ✅ **Robustez**: `updateRepoInfo.py` continúa procesando otras imágenes cuando una falla - ✅ **Logging**: Se registran logs apropiados en systemd journal para debugging ## 🔄 Lógica de validación actualizada **Antes** (requerir ambos archivos): ```python if not file_a_exists and not file_b_exists: # Ambos deben existir ``` 📋 Checklist Los cambios siguen las convenciones de código del proyecto Se mantiene la funcionalidad existente para casos válidos Se han mejorado los mensajes de error y logging La lógica de validación es coherente entre scripts El manejo de errores es más robusto Los mensajes son descriptivos y útiles para debugging 🔗 Compatibilidad Estos cambios son totalmente compatibles con versiones anteriores. La nueva lógica es menos restrictiva (acepta más casos válidos) y más robusta (maneja mejor los errores), sin afectar el comportamiento correcto existente. 💡 Beneficios Mayor flexibilidad: Los scripts ahora aceptan el formato estándar de archivos info del sistema Mayor robustez: Errores en archivos individuales no interrumpen el procesamiento completo Mejor debugging: Logs más descriptivos facilitan la identificación de problemas Consistencia: Lógica de validación coherente entre todos los scripts involucrados
narenas added 4 commits 2025-09-01 16:47:23 +02:00
narenas merged commit 49f72febf8 into main 2025-09-01 16:48:04 +02:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: opengnsys/ogrepository#43
There is no content yet.