refs #1402 add listSoftwareInfo.py
parent
fab9fe7ddb
commit
451fa584b5
|
@ -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)
|
|
||||||
|
|
Loading…
Reference in New Issue