From e3a8fa71cde7e3f5f60a7aaacfbde143942e7d4b Mon Sep 17 00:00:00 2001 From: Vadim Trochinsky Date: Mon, 23 Jun 2025 15:51:18 +0200 Subject: [PATCH] Add ModificarImagenGit endpoint --- .../modules/server/ogAdmClient/__init__.py | 59 +++++++++++++++++++ src/opengnsys/workers/oglive_worker.py | 2 +- 2 files changed, 60 insertions(+), 1 deletion(-) diff --git a/src/opengnsys/modules/server/ogAdmClient/__init__.py b/src/opengnsys/modules/server/ogAdmClient/__init__.py index ccad181..a2625b1 100644 --- a/src/opengnsys/modules/server/ogAdmClient/__init__.py +++ b/src/opengnsys/modules/server/ogAdmClient/__init__.py @@ -414,6 +414,60 @@ class ogAdmClientWorker (ogLiveWorker): return self.respuestaEjecucionComando (cmd, herror, ids) + def do_ModificarImagenGit (self, post_params): + for k in ['dsk', 'par', 'cpt', 'idi', 'nci', 'ipr', 'nfn', 'ids', 'msg']: + if k not in post_params: + logger.error (f'required parameter ({k}) not in POST params') + return {} + + dsk = post_params['dsk'] ## Disco + par = post_params['par'] ## Número de partición + cpt = post_params['cpt'] ## Código de la partición + idi = post_params['idi'] ## Identificador de la imagen + nci = post_params['nci'] ## Nombre canónico de la imagen + ipr = post_params['ipr'] ## Ip del repositorio + nfn = post_params['nfn'] + ids = post_params['ids'] + msg = post_params['msg'] ## Mensaje de commit + + self.muestraMensaje (7) + + try: + res = self.InventariandoSoftware (dsk, par, 'InventarioSoftware') ## Crea inventario Software previamente + except: + logger.warning ('Error al ejecutar el comando') + return {} + + if res['contents']: + self.muestraMensaje (2) + inv_sft = res['contents'] + try: + self.interfaceAdmin (nfn, [dsk, par, nci, msg]) + self.muestraMensaje (9) + herror = 0 + except: + logger.warning ('Error al ejecutar el comando') + self.muestraMensaje (10) + herror = 1 + else: + logger.warning ('Error al ejecutar el comando') + herror = 1 + inv_sft = '' + + self.muestraMenu() + + cmd = { + 'nfn': 'RESPUESTA_ModificarImagenGit', + 'idi': idi, ## Identificador de la imagen + 'dsk': dsk, ## Número de disco + 'par': par, ## Número de partición de donde se creó + 'cpt': cpt, ## Tipo o código de partición + 'ipr': ipr, ## Ip del repositorio donde se alojó + 'inv_sft': inv_sft + } + return self.respuestaEjecucionComando (cmd, herror, ids) + + def do_RestaurarImagen (self, post_params): for k in ['dsk', 'par', 'idi', 'ipr', 'nci', 'ifs', 'ptc', 'nfn', 'ids']: if k not in post_params: @@ -923,6 +977,11 @@ class ogAdmClientWorker (ogLiveWorker): logger.debug ('type(post_params) "{}"'.format (type (post_params))) return self._long_running_job ('CrearImagenGit', self.do_CrearImagenGit, args=(post_params,)) + def process_ModificarImagenGit (self, path, get_params, post_params, server): + logger.debug ('in process_ModificarImagenGit, path "{}" get_params "{}" post_params "{}" server "{}"'.format (path, get_params, post_params, server)) + logger.debug ('type(post_params) "{}"'.format (type (post_params))) + return self._long_running_job ('ModificarImagenGit', self.do_ModificarImagenGit, args=(post_params,)) + def process_RestaurarImagenGit (self, path, get_params, post_params, server): logger.debug ('in process_RestaurarImagenGit, path "{}" get_params "{}" post_params "{}" server "{}"'.format (path, get_params, post_params, server)) logger.debug ('type(post_params) "{}"'.format (type (post_params))) diff --git a/src/opengnsys/workers/oglive_worker.py b/src/opengnsys/workers/oglive_worker.py index 0a1713a..42b55cc 100644 --- a/src/opengnsys/workers/oglive_worker.py +++ b/src/opengnsys/workers/oglive_worker.py @@ -259,7 +259,7 @@ class ogLiveWorker(ServerWorker): self.REST.sendMessage ('clients/status/webhook', body) def interfaceAdmin (self, method, parametros=[]): - if method in ['Apagar', 'CambiarAcceso', 'Configurar', 'CrearImagen', 'CrearImagenGit', 'EjecutarScript', 'getConfiguration', 'getIpAddress', 'IniciarSesion', 'InventarioHardware', 'InventarioSoftware', 'Reiniciar', 'RestaurarImagen', 'RestaurarImagenGit']: + if method in ['Apagar', 'CambiarAcceso', 'Configurar', 'CrearImagen', 'CrearImagenGit', 'ModificarImagenGit', 'EjecutarScript', 'getConfiguration', 'getIpAddress', 'IniciarSesion', 'InventarioHardware', 'InventarioSoftware', 'Reiniciar', 'RestaurarImagen', 'RestaurarImagenGit']: ## python logger.debug (f'({method}) is a python method') exe = '{}/{}.py'.format (self.pathinterface, method)