refs #888 implement EjecutarScript()

pull/10/head
Natalia Serrano 2024-10-08 11:37:15 +02:00
parent 6757ab5697
commit a0fb19ddbd
1 changed files with 42 additions and 1 deletions

View File

@ -537,6 +537,46 @@ class ogAdmClientWorker (ogLiveWorker):
}
return self.respuestaEjecucionComando (cmd, herror, ids)
def do_EjecutarScript (self, post_params):
for k in ['nfn', 'scp', 'ids']:
if k not in post_params:
logger.error (f'required parameter ({k}) not in POST params')
return {}
nfn = post_params['nfn']
scp = unquote (post_params['scp'])
ids = post_params['ids']
self.muestraMensaje (8)
filescript = f'/tmp/_script_{self.IPlocal}' ## Nombre del archivo de script
with open (filescript, 'w') as fd:
fd.write (scp)
try:
self.interfaceAdmin (nfn, [filescript])
self.muestraMensaje (22)
herror = 0
except:
logger.warning ('Error al ejecutar el comando')
self.muestraMensaje (21)
herror = 1
## Toma configuración de particiones
cfg = self.LeeConfiguracion()
if not cfg:
logger.warning ('No se ha podido recuperar la configuración de las particiones del disco')
herror = 36
#herror=ejecutarCodigoBash(scp); ## ogAdmClient.c:2004
cmd = {
'nfn': 'RESPUESTA_EjecutarScript',
'cfg': cfg,
}
self.muestraMenu()
return self.respuestaEjecucionComando (cmd, herror, ids)
def process_Actualizar (self, path, get_params, post_params, server):
logger.debug ('in process_Actualizar, path "{}" get_params "{}" post_params "{}" server "{}"'.format (path, get_params, post_params, server))
return self._long_running_job ('Actualizar', self.do_Actualizar, args=(post_params,))
@ -588,7 +628,8 @@ class ogAdmClientWorker (ogLiveWorker):
return self._long_running_job ('IniciarSesion', self.do_IniciarSesion, args=(post_params,))
def process_EjecutarScript (self, path, get_params, post_params, server):
logger.warning ('in process_EjecutarScript')
logger.debug ('in process_EjecutarScript, path "{}" get_params "{}" post_params "{}" server "{}"'.format (path, get_params, post_params, server))
return self._long_running_job ('EjecutarScript', self.do_EjecutarScript, args=(post_params,))
def process_EjecutaComandosPendientes (self, path, get_params, post_params, server):
logger.warning ('in process_EjecutaComandosPendientes')