refs #2733 Check files in try except block
parent
4301fb4635
commit
1256229340
|
@ -67,33 +67,50 @@ def check_files():
|
|||
continue
|
||||
# Comprobamos si existe un archivo ".info" asociado a la imagen actual:
|
||||
info_file = f"{img_path}.info"
|
||||
if os.path.exists(info_file):
|
||||
# Si la fecha de modificación del archivo ".info" es anterior a la de la imagen, lo eliminamos (porque estará desactualizado):
|
||||
if os.path.getmtime(info_file) < os.path.getmtime(img_path):
|
||||
os.remove(info_file)
|
||||
print(f"Warning: Deleted outdated file {info_file}")
|
||||
try:
|
||||
if os.path.exists(info_file):
|
||||
# Si la fecha de modificación del archivo ".info" es anterior a la de la imagen, lo eliminamos (porque estará desactualizado):
|
||||
if os.path.getmtime(info_file) < os.path.getmtime(img_path):
|
||||
os.remove(info_file)
|
||||
print(f"Warning: Deleted outdated file {info_file}")
|
||||
# En caso contrario, almacenamos el contenido del archivo ".info" (del tipo "PARTCLONE:LZOP:EXTFS:8500000:Ubuntu_20") en la variable "data":
|
||||
else:
|
||||
with open(info_file, 'r') as file:
|
||||
info_data = file.read()
|
||||
# Almacenamos el contenido de los archivos ".size", ".sum" y ".full.sum":
|
||||
with open(f"{img_path}.size", 'r') as file:
|
||||
size = file.read().strip('\n')
|
||||
with open(f"{img_path}.sum", 'r') as file:
|
||||
_sum = file.read().strip('\n')
|
||||
with open(f"{img_path}.full.sum", 'r') as file:
|
||||
fullsum = file.read().strip('\n')
|
||||
# Llamamos a la función "add_to_json", para que inserte la información de la imagen en el archivo json
|
||||
# (pasándole el nombre de la imagen, la extensión, y los datos extraídos del archivo ".info"):
|
||||
img_name = os.path.relpath(img_path, repo_path)
|
||||
add_to_json(os.path.splitext(img_name)[0], os.path.splitext(img_name)[1][1:], info_data, size, _sum, fullsum)
|
||||
else:
|
||||
with open(info_file, 'r') as file:
|
||||
info_data = file.read()
|
||||
# Almacenamos el contenido de los archivos ".size", ".sum" y ".full.sum":
|
||||
with open(f"{img_path}.size", 'r') as file:
|
||||
size = file.read().strip('\n')
|
||||
with open(f"{img_path}.sum", 'r') as file:
|
||||
sum = file.read().strip('\n')
|
||||
with open(f"{img_path}.full.sum", 'r') as file:
|
||||
fullsum = file.read().strip('\n')
|
||||
|
||||
# Renombramos el archivo ".info" a ".info.checked", para que ya no se añada la información que contiene
|
||||
# (originalmente se eliminaba el archivo, pero creo que es mejor mantenerlo):
|
||||
os.rename(info_file, f"{info_file}.checked")
|
||||
# Renombramos el archivo ".info" a ".info.checked", para que ya no se añada la información que contiene
|
||||
# (originalmente se eliminaba el archivo, pero creo que es mejor mantenerlo):
|
||||
os.rename(info_file, f"{info_file}.checked")
|
||||
|
||||
# Llamamos a la función "add_to_json", para que inserte la información de la imagen en el archivo json
|
||||
# (pasándole el nombre de la imagen, la extensión, y los datos extraídos del archivo ".info"):
|
||||
img_name = os.path.relpath(img_path, repo_path)
|
||||
add_to_json(os.path.splitext(img_name)[0], os.path.splitext(img_name)[1][1:], info_data, size, sum, fullsum)
|
||||
|
||||
|
||||
def add_to_json(image_name, image_type, data, size, _sum, fullsum):
|
||||
except (IOError, OSError, PermissionError) as e:
|
||||
# Si hay algún error leyendo los archivos, registramos el error y continuamos con la siguiente imagen
|
||||
journal.send(f"updateRepoInfo.py: Error processing files for {img_path}: {str(e)}", PRIORITY=journal.LOG_WARNING, SYSLOG_IDENTIFIER="ogrepo-api_DEBUG")
|
||||
print(f"Warning: Could not process files for {item}: {str(e)}")
|
||||
continue
|
||||
except ValueError as e:
|
||||
# Si hay algún error con el formato de los datos en los archivos
|
||||
journal.send(f"updateRepoInfo.py: Data format error for {img_path}: {str(e)}", PRIORITY=journal.LOG_WARNING, SYSLOG_IDENTIFIER="ogrepo-api_DEBUG")
|
||||
print(f"Warning: Data format error for {item}: {str(e)}")
|
||||
continue
|
||||
except Exception as e:
|
||||
# Para cualquier otra excepción inesperada
|
||||
journal.send(f"updateRepoInfo.py: Unexpected error processing {img_path}: {str(e)}", PRIORITY=journal.LOG_ERR, SYSLOG_IDENTIFIER="ogrepo-api_DEBUG")
|
||||
print(f"Error: Unexpected error processing {item}: {str(e)}")
|
||||
continue
|
||||
|
||||
def add_to_json(image_name, image_type, data, size, sum, fullsum):
|
||||
""" Esta función añade al archivo "repoinfo.json" la información de las imágenes que aun no ha sido introducida en él (imágenes nuevas, básicamente).
|
||||
"""
|
||||
# Almacenamos el contenido de la variable "data" (del tipo "PARTCLONE:LZOP:EXTFS:8500000:Ubuntu_20") en variables separadas:
|
||||
|
@ -109,7 +126,7 @@ def add_to_json(image_name, image_type, data, size, _sum, fullsum):
|
|||
"filesystem": fstype.upper(),
|
||||
"datasize": int(datasize) * 1024, # Convertimos el valor a bytes (desde KB)
|
||||
"size": int(size),
|
||||
"sum": _sum,
|
||||
"sum": sum,
|
||||
"fullsum": fullsum
|
||||
}
|
||||
# Almacenamos el contenido del archivo "repoinfo.json" en la variable "info_data"
|
||||
|
|
Loading…
Reference in New Issue