refs #1104 return inventory inline
parent
b7b2a58186
commit
66b6ea4fc4
|
@ -1,3 +1,9 @@
|
||||||
|
ogagent (1.4.5~pre1-1) stable; urgency=medium
|
||||||
|
|
||||||
|
* CrearImagen: return inventory inline
|
||||||
|
|
||||||
|
-- OpenGnsys developers <info@opengnsys.es> Wed, 06 Nov 2024 12:41:14 +0100
|
||||||
|
|
||||||
ogagent (1.4.4-1) stable; urgency=medium
|
ogagent (1.4.4-1) stable; urgency=medium
|
||||||
|
|
||||||
* Use logger.debug() to prevent the windows agent from dying
|
* Use logger.debug() to prevent the windows agent from dying
|
||||||
|
|
|
@ -178,7 +178,7 @@ def oac_recibe_archivo():
|
||||||
logging.info(f'dec ({dec})')
|
logging.info(f'dec ({dec})')
|
||||||
return jsonify({'anything':'anything'}) ## if we return {}, then we trigger "if not {}" which happens to be true
|
return jsonify({'anything':'anything'}) ## if we return {}, then we trigger "if not {}" which happens to be true
|
||||||
|
|
||||||
@app.route('/opengnsys/rest/ogAdmClient/callback', methods=['POST'])
|
@app.route('/opengnsys/rest/clients/status/webhook', methods=['POST'])
|
||||||
def oac_callback():
|
def oac_callback():
|
||||||
logging.info(f'{request.get_json()}')
|
logging.info(f'{request.get_json()}')
|
||||||
return jsonify({'anything':'anything'})
|
return jsonify({'anything':'anything'})
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
1.4.4
|
1.4.5-pre1
|
||||||
|
|
|
@ -48,7 +48,7 @@ class CloningEngineWorker (ogLiveWorker):
|
||||||
def onDeactivation (self):
|
def onDeactivation (self):
|
||||||
logger.debug ('onDeactivation')
|
logger.debug ('onDeactivation')
|
||||||
|
|
||||||
def InventariandoSoftware (self, dsk, par, sw, nfn):
|
def InventariandoSoftware (self, dsk, par, nfn):
|
||||||
sft_src = f'/tmp/CSft-{self.IPlocal}-{par}'
|
sft_src = f'/tmp/CSft-{self.IPlocal}-{par}'
|
||||||
try:
|
try:
|
||||||
self.interfaceAdmin (nfn, [dsk, par, sft_src])
|
self.interfaceAdmin (nfn, [dsk, par, sft_src])
|
||||||
|
@ -58,31 +58,23 @@ class CloningEngineWorker (ogLiveWorker):
|
||||||
|
|
||||||
if herror:
|
if herror:
|
||||||
logger.warning ('Error al ejecutar el comando')
|
logger.warning ('Error al ejecutar el comando')
|
||||||
|
b64 = ''
|
||||||
self.muestraMensaje (20)
|
self.muestraMensaje (20)
|
||||||
else:
|
else:
|
||||||
if not os.path.exists (sft_src):
|
if not os.path.exists (sft_src):
|
||||||
raise Exception (f'interfaceAdmin({nfn}) returned success but did not create file ({sft_src})')
|
raise Exception (f'interfaceAdmin({nfn}) returned success but did not create file ({sft_src})')
|
||||||
sft_src_contents = Path (sft_src).read_bytes()
|
sft_src_contents = Path (sft_src).read_bytes()
|
||||||
|
|
||||||
## Envía fichero de inventario al servidor
|
b64 = base64.b64encode (sft_src_contents).decode ('utf-8')
|
||||||
sft_dst = f'/tmp/Ssft-{self.IPlocal}-{par}' ## Nombre que tendra el archivo en el Servidor
|
|
||||||
logger.debug ('sending recibeArchivo to server')
|
|
||||||
res = self.enviaMensajeServidor ('recibeArchivo', { 'nfl': sft_dst, 'contents': base64.b64encode (sft_src_contents).decode ('utf-8') })
|
|
||||||
logger.debug (res)
|
|
||||||
if not res:
|
|
||||||
herror = 12 ## Error de envío de fichero por la red
|
|
||||||
raise Exception ('Ha ocurrido algún problema al enviar un archivo por la red')
|
|
||||||
self.muestraMensaje (19)
|
self.muestraMensaje (19)
|
||||||
|
|
||||||
if not sw:
|
cmd = {
|
||||||
cmd = {
|
'nfn': 'RESPUESTA_InventarioSoftware',
|
||||||
'nfn': 'RESPUESTA_InventarioSoftware',
|
'dsk': dsk, ## not in the original C code, around ogAdmClient.c:1944
|
||||||
'par': par,
|
'par': par,
|
||||||
'sft': sft_dst,
|
'contents': b64,
|
||||||
}
|
}
|
||||||
return self.respuestaEjecucionComando (cmd, herror, 0)
|
return self.respuestaEjecucionComando (cmd, herror, 0)
|
||||||
|
|
||||||
return {'true':'true'} ## XXX
|
|
||||||
|
|
||||||
def do_CrearImagen (self, post_params):
|
def do_CrearImagen (self, post_params):
|
||||||
for k in ['dsk', 'par', 'cpt', 'idi', 'nci', 'ipr', 'nfn', 'ids']:
|
for k in ['dsk', 'par', 'cpt', 'idi', 'nci', 'ipr', 'nfn', 'ids']:
|
||||||
|
@ -102,13 +94,14 @@ class CloningEngineWorker (ogLiveWorker):
|
||||||
self.muestraMensaje (7)
|
self.muestraMensaje (7)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
res = self.InventariandoSoftware (dsk, par, False, 'InventarioSoftware') ## Crea inventario Software previamente
|
res = self.InventariandoSoftware (dsk, par, 'InventarioSoftware') ## Crea inventario Software previamente
|
||||||
except:
|
except:
|
||||||
logger.warning ('Error al ejecutar el comando')
|
logger.warning ('Error al ejecutar el comando')
|
||||||
return {}
|
return {}
|
||||||
|
|
||||||
if res:
|
if res['contents']:
|
||||||
self.muestraMensaje (2)
|
self.muestraMensaje (2)
|
||||||
|
inv_sft = res['contents']
|
||||||
try:
|
try:
|
||||||
self.interfaceAdmin (nfn, [dsk, par, nci, ipr])
|
self.interfaceAdmin (nfn, [dsk, par, nci, ipr])
|
||||||
self.muestraMensaje (9)
|
self.muestraMensaje (9)
|
||||||
|
@ -119,16 +112,18 @@ class CloningEngineWorker (ogLiveWorker):
|
||||||
herror = 1
|
herror = 1
|
||||||
else:
|
else:
|
||||||
logger.warning ('Error al ejecutar el comando')
|
logger.warning ('Error al ejecutar el comando')
|
||||||
|
inv_sft = ''
|
||||||
|
|
||||||
self.muestraMenu()
|
self.muestraMenu()
|
||||||
|
|
||||||
cmd = {
|
cmd = {
|
||||||
'nfn': 'RESPUESTA_CrearImagen',
|
'nfn': 'RESPUESTA_CrearImagen',
|
||||||
'idi': idi, ## Identificador de la imagen
|
'idi': idi, ## Identificador de la imagen
|
||||||
'dsk': dsk, ## Número de disco
|
'dsk': dsk, ## Número de disco
|
||||||
'par': par, ## Número de partición de donde se creó
|
'par': par, ## Número de partición de donde se creó
|
||||||
'cpt': cpt, ## Tipo o código de partición
|
'cpt': cpt, ## Tipo o código de partición
|
||||||
'ipr': ipr, ## Ip del repositorio donde se alojó
|
'ipr': ipr, ## Ip del repositorio donde se alojó
|
||||||
|
'inv_sft': inv_sft,
|
||||||
}
|
}
|
||||||
return self.respuestaEjecucionComando (cmd, herror, ids)
|
return self.respuestaEjecucionComando (cmd, herror, ids)
|
||||||
|
|
||||||
|
@ -275,16 +270,14 @@ class CloningEngineWorker (ogLiveWorker):
|
||||||
self.muestraMensaje (7)
|
self.muestraMensaje (7)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
self.InventariandoSoftware (dsk, par, True, 'InventarioSoftware')
|
cmd = self.InventariandoSoftware (dsk, par, 'InventarioSoftware')
|
||||||
herror = 0
|
herror = 0
|
||||||
except:
|
except:
|
||||||
logger.warning ('Error al ejecutar el comando')
|
logger.warning ('Error al ejecutar el comando')
|
||||||
|
cmd = { 'nfn': 'RESPUESTA_InventarioSoftware' }
|
||||||
herror = 1
|
herror = 1
|
||||||
|
|
||||||
self.muestraMenu()
|
self.muestraMenu()
|
||||||
cmd = {
|
|
||||||
'nfn': 'RESPUESTA_InventarioSoftware',
|
|
||||||
}
|
|
||||||
return self.respuestaEjecucionComando (cmd, herror, ids)
|
return self.respuestaEjecucionComando (cmd, herror, ids)
|
||||||
|
|
||||||
def process_CrearImagen (self, path, get_params, post_params, server):
|
def process_CrearImagen (self, path, get_params, post_params, server):
|
||||||
|
|
|
@ -139,7 +139,7 @@ class ogLiveWorker(ServerWorker):
|
||||||
|
|
||||||
def notifier (self, result):
|
def notifier (self, result):
|
||||||
logger.debug (f'notifier() called, result ({result})')
|
logger.debug (f'notifier() called, result ({result})')
|
||||||
res = self.REST.sendMessage ('/clients/status/webhook', result)
|
res = self.REST.sendMessage ('clients/status/webhook', result)
|
||||||
|
|
||||||
def mon (self):
|
def mon (self):
|
||||||
while True:
|
while True:
|
||||||
|
@ -153,7 +153,7 @@ class ogLiveWorker(ServerWorker):
|
||||||
if not elem['thread'].is_alive():
|
if not elem['thread'].is_alive():
|
||||||
logger.debug (f'is no longer alive, k ({k}) thread ({elem["thread"]})')
|
logger.debug (f'is no longer alive, k ({k}) thread ({elem["thread"]})')
|
||||||
elem['running'] = False
|
elem['running'] = False
|
||||||
elem['result'] = elem['thread'].result
|
elem['result'] = elem['thread'].result ## race condition: KeyError: 'thread'
|
||||||
del elem['thread']
|
del elem['thread']
|
||||||
self.notifier (elem['result'])
|
self.notifier (elem['result'])
|
||||||
|
|
||||||
|
@ -169,9 +169,9 @@ class ogLiveWorker(ServerWorker):
|
||||||
'''
|
'''
|
||||||
|
|
||||||
if parametros:
|
if parametros:
|
||||||
proc = ['bash', '-c', '{} bash -x {} {}'.format (devel_bash_prefix, exe, ' '.join (parametros))]
|
proc = ['bash', '-c', '{} {} {}'.format (devel_bash_prefix, exe, ' '.join (parametros))]
|
||||||
else:
|
else:
|
||||||
proc = ['bash', '-c', '{} bash -x {}'.format (devel_bash_prefix, exe)]
|
proc = ['bash', '-c', '{} {}'.format (devel_bash_prefix, exe)]
|
||||||
logger.debug ('subprocess.run ("{}", capture_output=True)'.format (proc))
|
logger.debug ('subprocess.run ("{}", capture_output=True)'.format (proc))
|
||||||
p = subprocess.run (proc, capture_output=True)
|
p = subprocess.run (proc, capture_output=True)
|
||||||
## DEBUG
|
## DEBUG
|
||||||
|
|
Loading…
Reference in New Issue