From 5e56b83f461d51754c7a745b0a9ecb3c7499bb8c Mon Sep 17 00:00:00 2001 From: ggil Date: Mon, 11 Nov 2024 12:22:14 +0100 Subject: [PATCH] refs #631 - Modify some scripts and API --- api/repo_api.py | 18 ++++++++++++++---- bin/deleteImage.py | 4 ++-- bin/exportImage.py | 6 +++--- bin/importImage.py | 6 +++--- bin/recoverImage.py | 4 ++-- 5 files changed, 24 insertions(+), 14 deletions(-) diff --git a/api/repo_api.py b/api/repo_api.py index 665133f..6544a53 100644 --- a/api/repo_api.py +++ b/api/repo_api.py @@ -502,15 +502,25 @@ def delete_image(imageId): # Evaluamos los parámetros obtenidos, para construir la llamada al script, o para devover un error si no se ha encontrado la imagen: if param_dict: if 'subdir' in param_dict: - if method == "trash": + if method == "permanent": + cmd = ['sudo', 'python3', f"{script_path}/deleteImage.py", f"{param_dict['subdir']}/{param_dict['name']}.{param_dict['extension']}", '-p'] + elif method == "trash": cmd = ['sudo', 'python3', f"{script_path}/deleteImage.py", f"{param_dict['subdir']}/{param_dict['name']}.{param_dict['extension']}"] else: - cmd = ['sudo', 'python3', f"{script_path}/deleteImage.py", f"{param_dict['subdir']}/{param_dict['name']}.{param_dict['extension']}", '-p'] + return jsonify({ + "success": False, + "error": "Incorrect method (must be 'permanent' or 'trash')" + }), 400 else: - if method == "trash": + if method == "permanent": + cmd = ['sudo', 'python3', f"{script_path}/deleteImage.py", f"{param_dict['name']}.{param_dict['extension']}", '-p'] + elif method == "trash": cmd = ['sudo', 'python3', f"{script_path}/deleteImage.py", f"{param_dict['name']}.{param_dict['extension']}"] else: - cmd = ['sudo', 'python3', f"{script_path}/deleteImage.py", f"{param_dict['name']}.{param_dict['extension']}", '-p'] + return jsonify({ + "success": False, + "error": "Incorrect method (must be 'permanent' or 'trash')" + }), 400 else: return jsonify({ "success": False, diff --git a/bin/deleteImage.py b/bin/deleteImage.py index d51f0f1..15ca10c 100644 --- a/bin/deleteImage.py +++ b/bin/deleteImage.py @@ -224,10 +224,10 @@ def main(): # Evaluamos la cantidad de barras que hay en la ruta de la imagen, para diferenciar entre imágenes "normales" y basadas en OU # (y llamamos a la función correspondiente para eliminarla): - if file_path.count('/') == 4: + if file_path.count('/') == 5: print("Deleting normal image...") delete_normal_image(file_path, method, extensions) - elif file_path.count('/') == 5: + elif file_path.count('/') == 6: print("Deleting OU based image...") delete_ou_image(file_path, method, extensions) diff --git a/bin/exportImage.py b/bin/exportImage.py index c54bfdb..ddbbb36 100644 --- a/bin/exportImage.py +++ b/bin/exportImage.py @@ -145,10 +145,10 @@ def export_image(file_path, remote_host, remote_user): except IOError: print("As expected, image doesn't exist on remote repository.") - # Evaluamos si la ruta de la imagen tiene 5 barras, en cuyo caso corresponderá a una imagen basada en OU, + # Evaluamos si la ruta de la imagen tiene 6 barras, en cuyo caso corresponderá a una imagen basada en OU, # y almacenamos el nombre del directorio correspondiente a la OU: - if file_path.count('/') == 5: - ou_subdir = file_path.split('/')[4] + if file_path.count('/') == 6: + ou_subdir = file_path.split('/')[5] # Comprobamos si el directorio de OU existe en el equipo remoto, y en caso contrario lo creamos: try: sftp_client.stat(f"{repo_path}{ou_subdir}") diff --git a/bin/importImage.py b/bin/importImage.py index 227c86c..e6798b7 100644 --- a/bin/importImage.py +++ b/bin/importImage.py @@ -195,10 +195,10 @@ def main(): remote_host = sys.argv[2] remote_user = sys.argv[3] - # Evaluamos si la ruta de la imagen tiene 5 barras, en cuyo caso corresponderá a una imagen basada en OU, + # Evaluamos si la ruta de la imagen tiene 6 barras, en cuyo caso corresponderá a una imagen basada en OU, # y almacenamos el nombre del directorio correspondiente a la OU: - if file_path.count('/') == 5: - ou_subdir = file_path.split('/')[4] + if file_path.count('/') == 6: + ou_subdir = file_path.split('/')[5] # Si no existe un directorio correspondiente a la OU en el repo local, lo creamos: if not os.path.exists(f"{repo_path}{ou_subdir}"): os.mkdir(f"{repo_path}{ou_subdir}", 0o755) diff --git a/bin/recoverImage.py b/bin/recoverImage.py index e68b683..e83f306 100644 --- a/bin/recoverImage.py +++ b/bin/recoverImage.py @@ -176,10 +176,10 @@ def main(): # Evaluamos la cantidad de barras que hay en la ruta de la imagen, para diferenciar entre imágenes "normales" y basadas en OU # (y llamamos a la función correspondiente para recuperarla): - if file_path.count('/') == 4: + if file_path.count('/') == 5: print("Recovering normal image...") recover_normal_image(file_path, extensions) - elif file_path.count('/') == 5: + elif file_path.count('/') == 6: print("Recovering OU based image...") recover_ou_image(file_path, extensions)