ogclone-engine/client/interfaceAdm/InventarioSoftware.py

59 lines
2.1 KiB
Python

import os
import time
import shutil
import subprocess
import sys
def main(arg1, arg2, dest_file):
start_time = time.time()
# Cargar la configuración del motor desde el archivo engine.cfg
og_engine_configurate = os.getenv('OGENGINECONFIGURATE')
if not og_engine_configurate:
with open('/opt/opengnsys/etc/engine.cfg') as f:
exec(f.read())
# Limpiar los archivos temporales usados como log para httpdlog
og_log_session = os.getenv('OGLOGSESSION')
og_log_command = os.getenv('OGLOGCOMMAND')
if og_log_session and og_log_command:
with open(og_log_session, 'w') as f:
f.write(" ")
with open(og_log_command, 'w') as f:
f.write(" ")
with open(f"{og_log_command}.tmp", 'w') as f:
f.write(" ")
# Registrar el inicio de ejecución
msg_interface_start = os.getenv('MSG_INTERFACE_START')
if msg_interface_start:
subprocess.run(['ogEcho', 'log', 'session', f"{msg_interface_start} {__file__} {arg1} {arg2}"])
# Ejecutar el script listSoftwareInfo y capturar el archivo de salida
try:
result = subprocess.run(
["python3", "/opt/opengnsys/scripts/listSoftwareInfo.py", arg1, arg2],
capture_output=True,
text=True,
check=True
)
file = result.stdout.strip() # Captura la salida del script
except subprocess.CalledProcessError as e:
print(f"Error al ejecutar listSoftwareInfo: {e.stderr}")
sys.exit(e.returncode)
# Copiar el archivo resultante a dest_file
shutil.copy(file, dest_file)
# Registrar el tiempo de ejecución
elapsed_time = time.time() - start_time
msg_scripts_time_partial = os.getenv('MSG_SCRIPTS_TIME_PARTIAL')
if msg_scripts_time_partial:
subprocess.run(['ogEcho', 'log', 'session', f" [ ] {msg_scripts_time_partial} : {int(elapsed_time // 60)}m {int(elapsed_time % 60)}s"])
if __name__ == "__main__":
if len(sys.argv) != 4:
print("Usage: python InventarioSoftware.py <arg1> <arg2> <dest_file>")
sys.exit(1)
main(sys.argv[1], sys.argv[2], sys.argv[3])