Merge pull request 'refs #1335 - Supress recursive image search' (#14) from add_python_scripts into main

Reviewed-on: #14
deb-packages opengnsys_devel-0.0.22
Gerardo GIl Elizeire 2025-01-10 12:43:37 +01:00
commit dc1659c52a
2 changed files with 63 additions and 69 deletions

View File

@ -51,50 +51,46 @@ def create_empty_json():
json.dump(json_data, file, indent=2) json.dump(json_data, file, indent=2)
def check_files(): def check_files():
""" Esta función recorre el directorio de imágenes, para buscar archivos con extensión ".img". """ Esta función recorre el directorio de imágenes, para buscar archivos con extensión ".img".
Llama a la función "add_to_json" para que esta añada información de las imágenes no bloqueadas (sin archivo ".lock"), Llama a la función "add_to_json" para que esta añada información de las imágenes no bloqueadas (sin archivo ".lock"),
que además tengan un archivo ".info" asociado (siempre que este no se haya modificado antes que la propia imagen). que además tengan un archivo ".info" asociado (siempre que este no se haya modificado antes que la propia imagen).
Originalmente eliminaba los archivos ".info" después de extraer la información, pero ahora los renombra (agrega ".checked"). Originalmente eliminaba los archivos ".info" después de extraer la información, pero ahora los renombra (agrega ".checked").
""" """
# Iteramos recursivamente todos los archivos y directorios de "/opt/opengnsys/ogrepository/images", # Iteramos todos los archivos y directorios de "/opt/opengnsys/ogrepository/images":
# y luego iteramos todos los archivos encontrados (en una iteración anidada): for item in os.listdir(repo_path):
for root, dirs, files in os.walk(repo_path): # Si el item actual acaba con ".img", construimos la ruta completa de la imagen ("img_path"):
for file in files: if item.endswith(".img"):
# Si la imagen actual tiene extensión ".img", construimos la ruta completa ("img_path"): img_path = os.path.join(repo_path, item)
if file.endswith(".img"): # Si existe un archivo ".lock" asociado a la imagen actual, pasamos a la siguiente:
img_path = os.path.join(root, file) if os.path.exists(f"{img_path}.lock"):
# Si existe un archivo ".lock" asociado a la imagen actual, pasamos a la siguiente: continue
if os.path.exists(f"{img_path}.lock"): # Comprobamos si existe un archivo ".info" asociado a la imagen actual:
continue info_file = f"{img_path}.info"
# Comprobamos si existe un archivo ".info" asociado a la imagen actual: if os.path.exists(info_file):
info_file = f"{img_path}.info" # Si la fecha de modificación del archivo ".info" es anterior a la de la imagen, lo eliminamos (porque estará desactualizado):
if os.path.exists(info_file): if os.path.getmtime(info_file) < os.path.getmtime(img_path):
# Si la fecha de modificación del archivo ".info" es anterior a la de la imagen, lo eliminamos (porque estará desactualizado): os.remove(info_file)
if os.path.getmtime(info_file) < os.path.getmtime(img_path): print(f"Warning: Deleted outdated file {info_file}")
os.remove(info_file) # En caso contrario, almacenamos el contenido del archivo ".info" (del tipo "PARTCLONE:LZOP:EXTFS:8500000:Ubuntu_20") en la variable "data":
print(f"Warning: Deleted outdated file {info_file}") else:
# En caso contrario, almacenamos el contenido del archivo ".info" (del tipo "PARTCLONE:LZOP:EXTFS:8500000:Ubuntu_20") en la variable "data": with open(info_file, 'r') as file:
else: info_data = file.read()
with open(info_file, 'r') as file: # Almacenamos el contenido de los archivos ".size", ".sum" y ".full.sum":
info_data = file.read() with open(f"{img_path}.size", 'r') as file:
# Almacenamos el contenido de los archivos ".size", ".sum" y ".full.sum": size = file.read().strip('\n')
with open(f"{img_path}.size", 'r') as file: with open(f"{img_path}.sum", 'r') as file:
size = file.read().strip('\n') _sum = file.read().strip('\n')
with open(f"{img_path}.sum", 'r') as file: with open(f"{img_path}.full.sum", 'r') as file:
_sum = file.read().strip('\n') fullsum = file.read().strip('\n')
with open(f"{img_path}.full.sum", 'r') as file: # Llamamos a la función "add_to_json", para que inserte la información de la imagen en el archivo json
fullsum = file.read().strip('\n') # (pasándole el nombre de la imagen, la extensión, y los datos extraídos del archivo ".info"):
# Llamamos a la función "add_to_json", para que inserte la información de la imagen en el archivo json img_name = os.path.relpath(img_path, repo_path)
# (pasándole el nombre de la imagen, la extensión, y los datos extraídos del archivo ".info"): add_to_json(os.path.splitext(img_name)[0], os.path.splitext(img_name)[1][1:], info_data, size, _sum, fullsum)
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)
# 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")
def add_to_json(image_name, image_type, data, size, _sum, fullsum): def add_to_json(image_name, image_type, data, size, _sum, fullsum):

View File

@ -73,38 +73,36 @@ def check_files():
Llama a la función "add_to_json" para que esta añada información de las imágenes no bloqueadas (sin archivo ".lock"), Llama a la función "add_to_json" para que esta añada información de las imágenes no bloqueadas (sin archivo ".lock"),
que además tengan un archivo ".info.checked" asociado (siempre que este no se haya modificado antes que la propia imagen). que además tengan un archivo ".info.checked" asociado (siempre que este no se haya modificado antes que la propia imagen).
""" """
# Iteramos recursivamente todos los archivos y directorios de "/opt/opengnsys/ogrepository/images_trash", # Iteramos todos los archivos y directorios de "/opt/opengnsys/ogrepository/images_trash":
# y luego iteramos todos los archivos encontrados (en una iteración anidada): for item in os.listdir(trash_path):
for root, dirs, files in os.walk(trash_path): # Si el item actual acaba con ".img", construimos la ruta completa de la imagen ("img_path"):
for file in files: if item.endswith(".img"):
# Si la imagen actual tiene extensión ".img", construimos la ruta completa ("img_path"): img_path = os.path.join(trash_path, item)
if file.endswith(".img"): # Si existe un archivo ".lock" asociado a la imagen actual, pasamos a la siguiente:
img_path = os.path.join(root, file) if os.path.exists(f"{img_path}.lock"):
# Si existe un archivo ".lock" asociado a la imagen actual, pasamos a la siguiente: continue
if os.path.exists(f"{img_path}.lock"): # Comprobamos si existe un archivo ".info.checked" asociado a la imagen actual:
continue info_file = f"{img_path}.info.checked"
# Comprobamos si existe un archivo ".info.checked" asociado a la imagen actual: if os.path.exists(info_file):
info_file = f"{img_path}.info.checked" # Si la fecha de modificación del archivo ".info.checked" es anterior a la de la imagen, lo eliminamos (porque estará desactualizado):
if os.path.exists(info_file): if os.path.getmtime(info_file) < os.path.getmtime(img_path):
# Si la fecha de modificación del archivo ".info.checked" es anterior a la de la imagen, lo eliminamos (porque estará desactualizado): os.remove(info_file)
if os.path.getmtime(info_file) < os.path.getmtime(img_path): print(f"Warning: Deleted outdated file {info_file}")
os.remove(info_file) # En caso contrario, almacenamos el contenido del archivo ".info.checked" (del tipo "PARTCLONE:LZOP:EXTFS:8500000:Ubuntu_20") en la variable "data":
print(f"Warning: Deleted outdated file {info_file}") else:
# En caso contrario, almacenamos el contenido del archivo ".info.checked" (del tipo "PARTCLONE:LZOP:EXTFS:8500000:Ubuntu_20") en la variable "data": with open(info_file, 'r') as file:
else: info_data = file.read()
with open(info_file, 'r') as file: # Almacenamos el contenido de los archivos ".size", ".sum" y ".full.sum":
info_data = file.read() with open(f"{img_path}.size", 'r') as file:
# Almacenamos el contenido de los archivos ".size", ".sum" y ".full.sum": size = file.read().strip('\n')
with open(f"{img_path}.size", 'r') as file: with open(f"{img_path}.sum", 'r') as file:
size = file.read().strip('\n') _sum = file.read().strip('\n')
with open(f"{img_path}.sum", 'r') as file: with open(f"{img_path}.full.sum", 'r') as file:
_sum = file.read().strip('\n') fullsum = file.read().strip('\n')
with open(f"{img_path}.full.sum", 'r') as file: # Llamamos a la función "add_to_json", para que inserte la información de la imagen en el archivo json
fullsum = file.read().strip('\n') # (pasándole el nombre de la imagen, la extensión, y los datos extraídos del archivo ".info.checked"):
# Llamamos a la función "add_to_json", para que inserte la información de la imagen en el archivo json img_name = os.path.relpath(img_path, trash_path)
# (pasándole el nombre de la imagen, la extensión, y los datos extraídos del archivo ".info.checked"): add_to_json(os.path.splitext(img_name)[0], os.path.splitext(img_name)[1][1:], info_data, size, _sum, fullsum)
img_name = os.path.relpath(img_path, trash_path)
add_to_json(os.path.splitext(img_name)[0], os.path.splitext(img_name)[1][1:], info_data, size, _sum, fullsum)