refs #705 implement RestaurarImagen() and add some fixes

unification2
Natalia Serrano 2024-09-19 11:34:08 +02:00 committed by Natalia Serrano
parent f5f58ce796
commit ebf822aad6
1 changed files with 48 additions and 9 deletions

View File

@ -384,6 +384,8 @@ class ogAdmClientWorker (ServerWorker):
def inclusionCliente (self):
cfg = self.LeeConfiguracion()
if not cfg:
logger.warning ('No se ha podido recuperar la configuración de las particiones del disco')
logger.warning ('Ha ocurrido algún problema en el proceso de inclusión del cliente')
logger.error ('LeeConfiguracion() failed')
return False
res = self.enviaMensajeServidor ('InclusionCliente', { 'cfg': cfg })
@ -445,7 +447,7 @@ class ogAdmClientWorker (ServerWorker):
with open (fileautoexec, 'w') as fd:
fd.write (base64.b64decode (res['contents']).decode ('utf-8'))
self.ejecutaArchivo (fileautoexec);
self.ejecutaArchivo (fileautoexec)
return True
@ -473,7 +475,7 @@ class ogAdmClientWorker (ServerWorker):
def cargaPaginaWeb (self, url=None):
if (not url): url = self.urlMenu
os.system ('pkill -9 browser');
os.system ('pkill -9 browser')
p = subprocess.Popen (['/opt/opengnsys/bin/browser', '-qws', url])
try:
@ -577,11 +579,6 @@ class ogAdmClientWorker (ServerWorker):
self.muestraMenu()
self.procesaComandos()
## este es una respuesta, y creo que nadie nos va a llamar nunca a este endpoint
## curl --insecure https://192.168.1.249:8000/ogAdmClient/NoComandosPtes
#def process_NoComandosPtes (self, path, get_params, post_params, server):
# logger.warning ('in process_NoComandosPtes')
def respuestaEjecucionComando (self, cmd, herror, ids):
if ids: ## Existe seguimiento
cmd['ids'] = ids ## Añade identificador de la sesión
@ -627,7 +624,7 @@ class ogAdmClientWorker (ServerWorker):
'par': par,
'sft': sft_dst,
}
return self.respuestaEjecucionComando (cmd, herror, 0);
return self.respuestaEjecucionComando (cmd, herror, 0)
return {'true':'true'} ## XXX
@ -714,7 +711,49 @@ class ogAdmClientWorker (ServerWorker):
raise Exception ({ '_httpcode': 404, '_msg': 'This method has been removed' })
def process_RestaurarImagen (self, path, get_params, post_params, server):
logger.warning ('in process_RestaurarImagen')
logger.debug ('in process_RestaurarImagen, path "{}" get_params "{}" post_params "{}" server "{}"'.format (path, get_params, post_params, server))
for k in ['dsk', 'par', 'idi', 'ipr', 'nci', 'ifs', 'ptc', 'nfn', 'ids']: ## XXX "ids" es realmente obligatorio?
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']
self.muestraMensaje (3)
try:
output = self.interfaceAdmin (nfn, [dsk, par, nci, ipr, ptc])
self.muestraMensaje (11)
herror = 0
except:
logger.warning ('Error al ejecutar el comando')
self.muestraMensaje (12)
herror = 1
cfg = self.LeeConfiguracion()
if not cfg:
logger.warning ('No se ha podido recuperar la configuración de las particiones del disco')
self.muestraMenu()
cmd = {
'nfn': 'RESPUESTA_RestaurarImagen',
'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': cfg, ## Configuración de discos
}
return self.respuestaEjecucionComando (cmd, herror, ids)
def process_RestaurarImagenBasica (self, path, get_params, post_params, server):
logger.debug ('in process_RestaurarImagenBasica, path "{}" get_params "{}" post_params "{}" server "{}"'.format (path, get_params, post_params, server))