From 9e3d8be629fa723d05b231c6c8840f493ad0b834 Mon Sep 17 00:00:00 2001 From: Natalia Serrano Date: Tue, 8 Oct 2024 10:32:11 +0200 Subject: [PATCH] refs #886 move InventarioHardware() to the CloningEngine module --- .../modules/server/CloningEngine/__init__.py | 47 +++++++++++++++++++ .../modules/server/ogAdmClient/__init__.py | 47 ------------------- 2 files changed, 47 insertions(+), 47 deletions(-) diff --git a/src/opengnsys/modules/server/CloningEngine/__init__.py b/src/opengnsys/modules/server/CloningEngine/__init__.py index d6d1417..04c072a 100644 --- a/src/opengnsys/modules/server/CloningEngine/__init__.py +++ b/src/opengnsys/modules/server/CloningEngine/__init__.py @@ -186,6 +186,49 @@ class CloningEngineWorker (ogLiveWorker): } return thr_status + def do_InventarioHardware (self, post_params): + for k in ['nfn', 'ids']: + if k not in post_params: + logger.error (f'required parameter ({k}) not in POST params') + return {} + + nfn = post_params['nfn'] + ids = post_params['ids'] + + self.muestraMensaje (6) + + hrdsrc = f'/tmp/Chrd-{self.IPlocal}' ## Nombre que tendra el archivo de inventario + hrddst = f'/tmp/Shrd-{self.IPlocal}' ## Nombre que tendra el archivo en el Servidor + try: + self.interfaceAdmin (nfn, [hrdsrc]) + hrdsrc_contents = Path (hrdsrc).read_bytes() + logger.debug (f'hrdsrc_contents 1 ({hrdsrc_contents})') + herror = 0 + except: + logger.warning ('Error al ejecutar el comando') + self.muestraMensaje (18) + herror = 1 + + if herror: + hrddst = '' + else: + logger.debug (f'hrdsrc_contents 2 ({hrdsrc_contents})') + ## Envía fichero de inventario al servidor + res = self.enviaMensajeServidor ('recibeArchivo', { 'nfl': hrddst, 'contents': base64.b64encode (hrdsrc_contents).decode ('utf-8') }) + logger.debug (res) + if not res: + logger.error ('Ha ocurrido algún problema al enviar un archivo por la red') + herror = 12 ## Error de envío de fichero por la red + self.muestraMensaje (17) + + ## Envia respuesta de ejecución de la función de interface + cmd = { + 'nfn': 'RESPUESTA_InventarioHardware', + 'hrd': hrddst, + } + self.muestraMenu() + return self.respuestaEjecucionComando (cmd, herror, ids) + def do_InventarioSoftware (self, post_params): for k in ['nfn', 'dsk', 'par', 'ids']: if k not in post_params: @@ -243,6 +286,10 @@ class CloningEngineWorker (ogLiveWorker): logger.warning ('this method has been removed') raise Exception ({ '_httpcode': 404, '_msg': 'This method has been removed' }) + def process_InventarioHardware (self, path, get_params, post_params, server): + logger.debug ('in process_InventarioHardware, path "{}" get_params "{}" post_params "{}" server "{}"'.format (path, get_params, post_params, server)) + return self._long_running_job ('InventarioHardware', self.do_InventarioHardware, args=(post_params,)) + def process_InventarioSoftware (self, path, get_params, post_params, server): logger.debug ('in process_InventarioSoftware, path "{}" get_params "{}" post_params "{}" server "{}"'.format (path, get_params, post_params, server)) return self._long_running_job ('InventarioSoftware', self.do_InventarioSoftware, args=(post_params,)) diff --git a/src/opengnsys/modules/server/ogAdmClient/__init__.py b/src/opengnsys/modules/server/ogAdmClient/__init__.py index 9d96aa1..686a64c 100644 --- a/src/opengnsys/modules/server/ogAdmClient/__init__.py +++ b/src/opengnsys/modules/server/ogAdmClient/__init__.py @@ -623,53 +623,6 @@ class ogAdmClientWorker (ogLiveWorker): logger.debug ('in process_Configurar, path "{}" get_params "{}" post_params "{}" server "{}"'.format (path, get_params, post_params, server)) return self._long_running_job ('Configurar', self.do_Configurar, args=(post_params,)) - def do_InventarioHardware (self, post_params): - for k in ['nfn', 'ids']: - if k not in post_params: - logger.error (f'required parameter ({k}) not in POST params') - return {} - - nfn = post_params['nfn'] - ids = post_params['ids'] - - self.muestraMensaje (6) - - hrdsrc = f'/tmp/Chrd-{self.IPlocal}' ## Nombre que tendra el archivo de inventario - hrddst = f'/tmp/Shrd-{self.IPlocal}' ## Nombre que tendra el archivo en el Servidor - try: - self.interfaceAdmin (nfn, [hrdsrc]) - hrdsrc_contents = Path (hrdsrc).read_bytes() - logger.debug (f'hrdsrc_contents 1 ({hrdsrc_contents})') - herror = 0 - except: - logger.warning ('Error al ejecutar el comando') - self.muestraMensaje (18) - herror = 1 - - if herror: - hrddst = '' - else: - logger.debug (f'hrdsrc_contents 2 ({hrdsrc_contents})') - ## Envía fichero de inventario al servidor - res = self.enviaMensajeServidor ('recibeArchivo', { 'nfl': hrddst, 'contents': base64.b64encode (hrdsrc_contents).decode ('utf-8') }) - logger.debug (res) - if not res: - logger.error ('Ha ocurrido algún problema al enviar un archivo por la red') - herror = 12 ## Error de envío de fichero por la red - self.muestraMensaje (17) - - ## Envia respuesta de ejecución de la función de interface - cmd = { - 'nfn': 'RESPUESTA_InventarioHardware', - 'hrd': hrddst, - } - self.muestraMenu() - return self.respuestaEjecucionComando (cmd, herror, ids) - - def process_InventarioHardware (self, path, get_params, post_params, server): - logger.debug ('in process_InventarioHardware, path "{}" get_params "{}" post_params "{}" server "{}"'.format (path, get_params, post_params, server)) - return self._long_running_job ('InventarioHardware', self.do_InventarioHardware, args=(post_params,)) - def process_EjecutarScript (self, path, get_params, post_params, server): logger.warning ('in process_EjecutarScript')