From 94eaba7688df8948f3ccc640bef95087dcf1a960 Mon Sep 17 00:00:00 2001 From: Natalia Serrano Date: Fri, 26 Jul 2024 14:38:19 +0200 Subject: [PATCH] refs #526 implement procesaComandos() --- .../server/ogAdmClient/__init__.py | 40 ++++++++++++++++--- 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/src/test_modules/server/ogAdmClient/__init__.py b/src/test_modules/server/ogAdmClient/__init__.py index e775275..d89c6fb 100644 --- a/src/test_modules/server/ogAdmClient/__init__.py +++ b/src/test_modules/server/ogAdmClient/__init__.py @@ -281,7 +281,7 @@ with open (subprocs_log, 'ab') as fd: ## TODO improve this logging res = self.REST.sendMessage (path, obj) - if (not res): ## TODO + if (type(res) is not dict): #logger.error ('No se ha podido establecer conexión con el Servidor de Administración') ## Error de conexión con el servidor logger.error ('Error al enviar trama ***send() fallo') return False @@ -346,7 +346,7 @@ with open (subprocs_log, 'ab') as fd: ## TODO improve this logging logger.debug ('res ({})'.format (res)) ## RESPUESTA_InclusionCliente - if (not res or 0 == res['res']) : + if (type(res) is not dict or 0 == res['res']) : logger.error ('Ha ocurrido algún problema en el proceso de inclusión del cliente') return False @@ -378,19 +378,19 @@ with open (subprocs_log, 'ab') as fd: ## TODO improve this logging res = self.enviaMensajeServidor ('AutoexecCliente', { 'exe': self.idproautoexec }) logger.debug ('res ({})'.format (res)) - if (not res): + if (type(res) is not dict): logger.error ('Ha ocurrido algún problema al enviar una petición de comandos o tareas pendientes al Servidor de Administración') logger.error ('Ha ocurrido algún problema al recibir una petición de comandos o tareas pendientes desde el Servidor de Administración') return False ## RESPUESTA_AutoexecCliente - if (not res or 0 == res['res']) : + if (type(res) is not dict or 0 == res['res']) : logger.error ('Ha ocurrido algún problema al procesar la trama recibida') return False logger.info (res) res = self.enviaMensajeServidor ('enviaArchivo', { 'nfl': res['nfl'] }) - if (not res): + if (type(res) is not dict): logger.error ('Ha ocurrido algún problema al enviar una petición de comandos o tareas pendientes al Servidor de Administración') logger.error ('Ha ocurrido algún problema al recibir un archivo por la red') return False @@ -407,7 +407,7 @@ with open (subprocs_log, 'ab') as fd: ## TODO improve this logging def comandosPendientes(self): while (True): res = self.enviaMensajeServidor ('ComandosPendientes') ## recibe un solo comando - if (not res): + if (type(res) is not dict): logger.error ('Ha ocurrido algún problema al enviar una petición de comandos o tareas pendientes al Servidor de Administración') logger.error ('Ha ocurrido algún problema al recibir una petición de comandos o tareas pendientes desde el Servidor de Administración') return False @@ -446,6 +446,33 @@ with open (subprocs_log, 'ab') as fd: ## TODO improve this logging def muestraMenu(self): self.cargaPaginaWeb() + def procesaComandos(self): + res = self.enviaMensajeServidor ('DisponibilidadComandos', { 'tpc': 'OPG' }) ## Activar disponibilidad + logger.debug ('res ({})'.format (res)) + + if (type(res) is not dict): + logger.error ('Ha ocurrido algún problema al enviar una petición de comandos interactivos al Servidor de Administración') + return False + + logger.info ('Disponibilidad de comandos activada') ## Disponibilidad de cliente activada + + ## y hacemos return true y el agente es quien espera peticiones + ## TODO el tema es, ogAdmClient hace comandosPendientes() cada vez, ¿cómo lo metemos aquí? + # + #ptrTrama=recibeMensaje(&socket_c); + #if(!ptrTrama){ + # errorLog(modulo,46,FALSE); 'Ha ocurrido algún problema al recibir un comando interactivo desde el Servidor de Administración' + # return; + #} + #close(socket_c); + #if(!gestionaTrama(ptrTrama)){ // Análisis de la trama + # errorLog(modulo,39,FALSE); 'Ha ocurrido algún problema al procesar la trama recibida' + # return; + #} + #if(!comandosPendientes(ptrTrama)){ + # errorLog(modulo,42,FALSE); 'Ha ocurrido algún problema al enviar una petición de comandos o tareas pendientes al Servidor de Administración' + #} + def onActivation(self): """ Sends OGAgent activation notification to OpenGnsys server @@ -530,6 +557,7 @@ with open (subprocs_log, 'ab') as fd: ## TODO improve this logging logger.info ('Acciones pendientes procesadas') self.muestraMenu() + self.procesaComandos() def process_NoComandosPtes(self, path, get_params, post_params, server): logger.warn('in process_NoComandosPtes')