95 lines
2.6 KiB
Python
95 lines
2.6 KiB
Python
#!/usr/bin/env python3
|
|
import os
|
|
import subprocess
|
|
import sys
|
|
import time
|
|
import resource
|
|
|
|
|
|
|
|
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 logging
|
|
import DiskLib
|
|
import NetLib
|
|
|
|
|
|
|
|
from gitlib import OpengnsysGitLibrary, NTFSImplementation
|
|
|
|
|
|
def create_image(disk_num, partition_num, repo, image_name, tagName):
|
|
|
|
ntfs_impl = NTFSImplementation.NTFS3G
|
|
og_git = OpengnsysGitLibrary(ntfs_implementation = ntfs_impl)
|
|
device = DiskLib.ogDiskToDev(disk_num, partition_num)
|
|
if og_git.initRepo(device, image_name):
|
|
return 0
|
|
#if tagName:
|
|
# og_git.tag(device = device, tagName = tagName, commit = "HEAD", message = "Image created")
|
|
else:
|
|
return 1
|
|
|
|
|
|
def main():
|
|
if len(sys.argv) != 6:
|
|
sys.exit(SystemLib.ogRaiseError([], ogGlobals.OG_ERR_FORMAT, "Incorrect number of arguments. Usage: CrearImagenGit.py disk_num partition_num image_name repo tag"))
|
|
|
|
disk_num, partition_num, image_name, repo, tag = sys.argv[1:6]
|
|
|
|
|
|
opengnsys_log_dir = "/opt/opengnsys/log"
|
|
ip_address = NetLib.ogGetIpAddress()
|
|
logFilePath = f"{opengnsys_log_dir}/{ip_address}.CrearImagenGit.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 CrearImagenGit")
|
|
|
|
|
|
retval = create_image(disk_num, partition_num, repo, image_name, tag)
|
|
|
|
|
|
|
|
sys.exit(retval)
|
|
|
|
if __name__ == "__main__":
|
|
main()
|