From 50e5c57b71d00b8bb69e06f91d4ae5a6c3aa2ef9 Mon Sep 17 00:00:00 2001 From: Vadim Troshchinskiy Date: Wed, 18 Jun 2025 13:32:35 +0200 Subject: [PATCH] Add missing restoration script --- interfaceAdm/RestaurarImagenGit.py | 85 ++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100755 interfaceAdm/RestaurarImagenGit.py diff --git a/interfaceAdm/RestaurarImagenGit.py b/interfaceAdm/RestaurarImagenGit.py new file mode 100755 index 0000000..3738a72 --- /dev/null +++ b/interfaceAdm/RestaurarImagenGit.py @@ -0,0 +1,85 @@ +#!/usr/bin/env python3 +import sys +import subprocess +import resource +import os +import logging + + + +soft, hard = resource.getrlimit(resource.RLIMIT_NOFILE) +try: + # Usamos el mínimo entre 65536 y el límite hard disponible + new_limit = min(65536, hard) + resource.setrlimit(resource.RLIMIT_NOFILE, (new_limit, hard)) + print(f"RLIMIT_NOFILE establecido a: {resource.getrlimit(resource.RLIMIT_NOFILE)}") +except ValueError as e: + print(f"No se pudo aumentar el límite de archivos abiertos: {e}") + +# Añadir rutas personalizadas de forma segura +extra_paths = [ + "/opt/opengnsys/interfaceAdm/git/", + "/opt/opengnsys/ogrepository/oggit/lib/" +] + + +# Si estás completamente seguro de que esta ruta no interfiere con la stdlib +# y contiene todos los módulos necesarios, puedes añadirla AL FINAL del path. +path_maybe_problematic = "/opt/oglive/rootfs/opt/opengnsys/lib/python3/" +if os.path.isdir(path_maybe_problematic): + sys.path.append(path_maybe_problematic) + + for path in extra_paths: + if os.path.isdir(path): + sys.path.append(path) + + +import NetLib +import ogGlobals +import SystemLib +import DiskLib + +from gitlib import OpengnsysGitLibrary, NTFSImplementation + +if __name__ == "__main__": + if len(sys.argv) < 6: + print("Usage: python RestaurarImagenGit.py ") + sys.exit(1) + + disk = sys.argv[1] + partition = sys.argv[2] + repo = sys.argv[3] + ipaddr = sys.argv[4] + gitref = sys.argv[5] + proto = sys.argv[6] + + opengnsys_log_dir = "/opt/opengnsys/log" + ip_address = NetLib.ogGetIpAddress() + logFilePath = f"{opengnsys_log_dir}/{ip_address}.RestaurarImagenGit.log" + + fileLog = logging.FileHandler(logFilePath) + fileLog.setLevel(logging.DEBUG) + + formatter = logging.Formatter('%(asctime)s - %(name)24s - [%(levelname)5s] - %(message)s') + + fileLog.setFormatter(formatter) + + logger = logging.getLogger(__package__) + logger.setLevel(logging.DEBUG) + logger.addHandler(fileLog) + + logger.info("Starting RestaurarImagenGit") + + + + + ntfs_impl = NTFSImplementation.NTFS3G + og_git = OpengnsysGitLibrary(ntfs_implementation = ntfs_impl) + + device = DiskLib.ogDiskToDev(disk, partition) + + og_git.cloneRepo(repo, device, device) + + logger.info("RestaurarImagenGit Finished.") + +