diff --git a/CHANGELOG.md b/CHANGELOG.md index fb25dd1..652e332 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [6.1.0] - 2025-06-25 + +### Added + +- Added ModificarImagenGit + ## [6.0.0] - 2025-06-19 ### Changed diff --git a/linux/debian/changelog b/linux/debian/changelog index 638dee5..26d4fe4 100644 --- a/linux/debian/changelog +++ b/linux/debian/changelog @@ -1,3 +1,9 @@ +ogagent (6.1.0-1) stable; urgency=medium + + * Add ModificarImagenGit + + -- OpenGnsys developers Wed, 25 Jun 2025 10:26:42 +0200 + ogagent (6.0.0-1) stable; urgency=medium * Unify API methods for poweroff, reboot and run script diff --git a/src/opengnsys/modules/server/ogAdmClient/__init__.py b/src/opengnsys/modules/server/ogAdmClient/__init__.py index ccad181..4fcd2ae 100644 --- a/src/opengnsys/modules/server/ogAdmClient/__init__.py +++ b/src/opengnsys/modules/server/ogAdmClient/__init__.py @@ -361,15 +361,13 @@ class ogAdmClientWorker (ogLiveWorker): return self.respuestaEjecucionComando (cmd, herror, ids) def do_CrearImagenGit (self, post_params): - for k in ['dsk', 'par', 'cpt', 'idi', 'nci', 'ipr', 'nfn', 'ids']: + for k in ['dsk', 'par', 'nci', 'ipr', 'nfn', 'ids']: 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'] @@ -404,10 +402,58 @@ class ogAdmClientWorker (ogLiveWorker): cmd = { 'nfn': 'RESPUESTA_CrearImagenGit', - '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_ModificarImagenGit (self, post_params): + for k in ['dsk', 'par', '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 + 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', + 'dsk': dsk, ## Número de disco + 'par': par, ## Número de partición de donde se creó 'ipr': ipr, ## Ip del repositorio donde se alojó 'inv_sft': inv_sft } @@ -461,17 +507,15 @@ class ogAdmClientWorker (ogLiveWorker): return self.respuestaEjecucionComando (cmd, herror, ids) def do_RestaurarImagenGit (self, post_params): - for k in ['dsk', 'par', 'idi', 'ipr', 'nci', 'ifs', 'ptc', 'nfn', 'ids', 'ref']: + for k in ['dsk', 'par', 'ipr', 'nci', 'ptc', 'nfn', 'ids', 'ref']: if k not in post_params: logger.error (f'required parameter ({k}) not in POST params') return {} dsk = post_params['dsk'] par = post_params['par'] - idi = post_params['idi'] ipr = post_params['ipr'] nci = post_params['nci'] - ifs = post_params['ifs'] ptc = post_params['ptc'] ## Protocolo de clonación: Unicast, Multicast, Torrent nfn = post_params['nfn'] ids = post_params['ids'] @@ -499,10 +543,8 @@ class ogAdmClientWorker (ogLiveWorker): cmd = { 'nfn': 'RESPUESTA_RestaurarImagenGit', - 'idi': idi, ## Identificador de la imagen 'dsk': dsk, ## Número de disco 'par': par, ## Número de partición - 'ifs': ifs, ## Identificador del perfil software 'cfg': self.cfg2obj(cfg), ## Configuración de discos } return self.respuestaEjecucionComando (cmd, herror, ids) @@ -923,6 +965,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)