refs #1402 add listSoftwareInfo.py

pull/1/head
Natalia Serrano 2025-01-29 18:33:36 +01:00
parent fab9fe7ddb
commit 451fa584b5
1 changed files with 27 additions and 29 deletions

View File

@ -1,41 +1,39 @@
#!/usr/bin/python3
# Scirpt de ejemplo para almacenear en fichero temporal el listado de software.
# Nota: se usa como base para el programa de recogida de listado de software de OpenGnsys Admin.
# Formato: listSoftwareInfo [-r] ndisk npart
# -r listado reducido (sin parches de Windows)
import os import os
import sys import sys
sys.path.append('/opt/opengnsys/lib/engine/bin') import re
import argparse
import ogGlobals
import SystemLib import SystemLib
import InventoryLib import InventoryLib
import NetLib import NetLib
import ogGlobals
PROG = os.path.basename(__file__) prog = os.path.basename (sys.argv[0])
REDUCED = "no"
if len(sys.argv) > 1 and sys.argv[1] == "-r": def main (disk, par, reduced):
REDUCED = "yes" ip = NetLib.ogGetIpAddress()
sys.argv.pop(1) softfile = f'{ogGlobals.OGLOG}/soft-{ip}-{disk}-{par}'
software_list = InventoryLib.ogListSoftware (disk, par)
if len(sys.argv) != 3: if reduced:
SystemLib.ogRaiseError("session", ogGlobals.OG_ERR_FORMAT, f"{ogGlobals.MSG_FORMAT}: {PROG} ndisco nparticion") software_list = [line for line in software_list if not re.search (r'(KB[0-9]{6})', line)]
sys.exit(1)
SOFTFILE = f"soft-{NetLib.ogGetIpAddress()}-{sys.argv[1]}-{sys.argv[2]}" with open (softfile, 'w') as f:
softfile_path = os.path.join(ogGlobals.OGLOG, SOFTFILE) for line in software_list:
f.write (f'{line}\n')
try: print (softfile)
software_list = InventoryLib.ogListSoftware(int(sys.argv[1]), int(sys.argv[2]))
if REDUCED == "no": if __name__ == '__main__':
with open(softfile_path, "w") as f: parser = argparse.ArgumentParser (add_help=False)
for line in software_list: parser.add_argument ('-r', '--reduced', action='store_true', default=False)
f.write(f"{line}\n") parser.add_argument ('disk')
else: parser.add_argument ('par')
filtered_list = [line for line in software_list if "(KB" not in line] args = parser.parse_args()
with open(softfile_path, "w") as f: main (args.disk, args.par, args.reduced)
for line in filtered_list:
f.write(f"{line}\n")
print(softfile_path)
except Exception as e:
SystemLib.ogRaiseError("session", ogGlobals.OG_ERR_FORMAT, f"Error al generar el listado de software: {e}")
sys.exit(1)