Add missing restoration script

ogrepository-fixes
Vadim vtroshchinskiy 2025-06-18 13:32:35 +02:00
parent 043828c6bc
commit 50e5c57b71
1 changed files with 85 additions and 0 deletions

View File

@ -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 <disk> <partition> <repo> <ip> <ref> <protocol>")
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.")