Merge pull request 'Modificacion de imagen de git y refactoring de parametros' (#59) from modificar-imagen-branch into main

Reviewed-on: #59
main
Vadim vtroshchinskiy 2025-08-28 15:21:59 +02:00
commit 39dc6bc400
2 changed files with 78 additions and 38 deletions

View File

@ -1,3 +1,23 @@
ogagent (8.1.2-1) stable; urgency=medium
* Parameter fixes
-- OpenGnsys developers <info@opengnsys.es> Mon, 14 Aug 2025 16:07:21 +0200
ogagent (8.1.1-1) stable; urgency=medium
* Bump version for interfaceAdmin fix
-- OpenGnsys developers <info@opengnsys.es> Mon, 14 Aug 2025 10:05:11 +0200
ogagent (8.1.0-1) stable; urgency=medium
* Add extra parameters to ModificarImagenGit
* Rename Git endpoint parameters
-- OpenGnsys developers <info@opengnsys.es> Mon, 04 Aug 2025 16:15:33 +0200
ogagent (8.0.0-1) stable; urgency=medium
* Return HTTP 409 on more than one background jobs

View File

@ -361,22 +361,26 @@ class ogAdmClientWorker (ogLiveWorker):
return self.respuestaEjecucionComando (cmd, herror, ids)
def do_CrearImagenGit (self, post_params):
for k in ['dsk', 'par', 'nci', 'ipr', 'nfn', 'ids']:
for k in ['nfn', 'ids', 'disk', 'partition', 'repository', 'image_name']:
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']
disk = post_params['disk'] ## Numero de disco
partition = post_params['partition'] ## Numero de partición
repo = post_params['repository'] ## URL a repositorio
image_name = post_params['image_name'] ## Nombre de imagen
msg = post_params['message'] ## Mensaje de commit (opcional)
self.muestraMensaje (7)
try:
res = self.InventariandoSoftware (dsk, par, 'InventarioSoftware') ## Crea inventario Software previamente
res = self.InventariandoSoftware (disk, partition, 'InventarioSoftware') ## Crea inventario Software previamente
except:
logger.warning ('Error al ejecutar el comando')
return {}
@ -385,7 +389,11 @@ class ogAdmClientWorker (ogLiveWorker):
self.muestraMensaje (2)
inv_sft = res['contents']
try:
self.interfaceAdmin (nfn, [dsk, par, nci, ipr])
create_args = ["--disk", disk, "--partition", partition, "--repository", repo, "--image-name", image_name]
if msg:
create_args = create_args + ['--message', msg]
self.interfaceAdmin (nfn, create_args)
self.muestraMensaje (9)
herror = 0
except:
@ -401,32 +409,35 @@ class ogAdmClientWorker (ogLiveWorker):
cmd = {
'nfn': 'RESPUESTA_CrearImagenGit',
'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
'disk' : disk, ## Número de disco
'partition': partition, ## Número de partición de donde se creó
'repo' : repo, ## 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']:
for k in ['nfn', 'ids', 'disk', 'partition', 'repository', 'branch', 'options', 'message']:
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
disk = post_params['disk'] ## Disco
partition = post_params['partition'] ## Número de partición
repo = post_params['repository'] ## Ip del repositorio
branch = post_params['branch'] ## Rama nueva a crear
options = post_params['options'] ## Opciones (force push, etc)
msg = post_params['message'] ## Commit message
self.muestraMensaje (7)
try:
res = self.InventariandoSoftware (dsk, par, 'InventarioSoftware') ## Crea inventario Software previamente
res = self.InventariandoSoftware (disk, partition, 'InventarioSoftware') ## Crea inventario Software previamente
except:
logger.warning ('Error al ejecutar el comando')
return {}
@ -435,7 +446,11 @@ class ogAdmClientWorker (ogLiveWorker):
self.muestraMensaje (2)
inv_sft = res['contents']
try:
self.interfaceAdmin (nfn, [dsk, par, nci, msg])
mod_args = ["--disk", disk, "--partition", partition, "--repository", repo, "--branch", branch, "--message", msg]
if options:
mod_args = mod_args + ['--options', options]
self.interfaceAdmin (nfn, mod_args)
self.muestraMensaje (9)
herror = 0
except:
@ -451,10 +466,11 @@ class ogAdmClientWorker (ogLiveWorker):
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
'disk' : disk, ## Número de disco
'partition' : partition, ## Número de partición de donde se creó
'repo' : repo, ## Ip del repositorio donde se alojó
'branch' : branch, ## Rama creada
'inv_sft' : inv_sft
}
return self.respuestaEjecucionComando (cmd, herror, ids)
@ -506,27 +522,30 @@ class ogAdmClientWorker (ogLiveWorker):
return self.respuestaEjecucionComando (cmd, herror, ids)
def do_RestaurarImagenGit (self, post_params):
for k in ['dsk', 'par', 'ipr', 'nci', 'ptc', 'nfn', 'ids', 'ref']:
for k in ['nfn', 'ids', 'disk', 'partition', 'repository', 'image_name', 'commit']:
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']
ipr = post_params['ipr']
nci = post_params['nci']
ptc = post_params['ptc'] ## Protocolo de clonación: Unicast, Multicast, Torrent
nfn = post_params['nfn']
ids = post_params['ids']
ref = post_params['ref'] ## Referencia de git a restaurar
nfn = post_params['nfn']
ids = post_params['ids']
disk = post_params['disk'] ## Numero de disco
partition = post_params['partition'] ## Numero de partición
repo = post_params['repository'] ## URL a repositorio
image_name = post_params['image_name'] ## Nombre de imagen
branch = post_params['branch'] ## Rama de git seleccionada para restaurar
commit = post_params['commit'] ## Referencia de git a restaurar. Debe ser un commit dentro de la rama indicada.
self.muestraMensaje (3)
try:
## the ptc.split() is useless right now, since interfaceAdmin() does ' '.join(params) in order to spawn a shell
## however we're going to need it in the future (when everything gets translated into python), plus it's harmless now. So let's do it
#self.interfaceAdmin (nfn, [dsk, par, nci, ipr, ptc])
self.interfaceAdmin (nfn, [dsk, par, nci, ipr, ref] + ptc.split())
restore_args = ["--disk", disk, "--partition", partition, "--repository", repo, "--image-name", image_name, "--commit", commit]
if branch:
restore_args = restore_args + ["--branch", branch]
self.interfaceAdmin (nfn, restore_args)
self.muestraMensaje (11)
herror = 0
except:
@ -542,8 +561,9 @@ class ogAdmClientWorker (ogLiveWorker):
cmd = {
'nfn': 'RESPUESTA_RestaurarImagenGit',
'dsk': dsk, ## Número de disco
'par': par, ## Número de partición
'disk' : disk, ## Número de disco
'partition': partition, ## Número de partición
'repo' : repo, ## Repositorio de git
'cfg': self.cfg2obj(cfg), ## Configuración de discos
}
return self.respuestaEjecucionComando (cmd, herror, ids)