import os import sys import subprocess sys.path.append('/opt/opengnsys/lib/engine/bin') import SystemLib import InventoryLib import NetLib import ogGlobals PROG = os.path.basename(__file__) REDUCED = "no" if len(sys.argv) > 1 and sys.argv[1] == "-r": REDUCED = "yes" sys.argv.pop(1) if len(sys.argv) != 3: SystemLib.ogRaiseError(ogGlobals.OG_ERR_FORMAT, f"{ogGlobals.MSG_FORMAT}: {PROG} ndisco nparticion") sys.exit(1) # Directorio del servidor donde se exportan los ficheros de registro. SERVERLOGDIR = subprocess.run( ["awk", "-v", f"d={ogGlobals.OGLOG}", 'BEGIN {FS="[: ]"} {if ($4==d) dir=$2} END {print dir}'], capture_output=True, text=True, check=True, ).stdout.strip() # Fichero de listado: soft-IP-ndisco-npart SOFTFILE = f"soft-{NetLib.ogGetIpAddress()}-{sys.argv[1]}-{sys.argv[2]}" # Redirigir salida al fichero de listado. if REDUCED == "no": if subprocess.run(["ogListSoftware", sys.argv[1], sys.argv[2]], stdout=open(f"{ogGlobals.OGLOG}/{SOFTFILE}", "w")).returncode != 0: sys.exit(1) else: if subprocess.run(["ogListSoftware", sys.argv[1], sys.argv[2]], stdout=subprocess.PIPE).returncode == 0: with open(f"{ogGlobals.OGLOG}/{SOFTFILE}", "w") as f: f.write(subprocess.run(["egrep", "-v", "\(KB[0-9]{6}\)"], input=subprocess.PIPE).stdout.decode()) else: sys.exit(1) # Salid: camino del fichero de listado en el servidor de repositorio. print(f"{ogGlobals.OGLOG}/{SOFTFILE}")