diff --git a/src/opengnsys/modules/server/CloningEngine/__init__.py b/src/opengnsys/modules/server/CloningEngine/__init__.py index bd96d8a..ac9ac2c 100644 --- a/src/opengnsys/modules/server/CloningEngine/__init__.py +++ b/src/opengnsys/modules/server/CloningEngine/__init__.py @@ -32,12 +32,10 @@ import base64 import os -import time -import random from pathlib import Path from opengnsys.log import logger -from opengnsys.workers import ogLiveWorker, ThreadWithResult +from opengnsys.workers import ogLiveWorker class CloningEngineWorker (ogLiveWorker): name = 'CloningEngine' # Module name @@ -171,26 +169,6 @@ class CloningEngineWorker (ogLiveWorker): } return self.respuestaEjecucionComando (cmd, herror, ids) - def _long_running_job (self, name, f, args): - any_job_running = False - for k in self.thread_list: - if self.thread_list[k]['running']: - any_job_running = True - break - if any_job_running: - logger.info ('some job is already running, refusing to launch another one') - return { 'job_id': None, 'message': 'some job is already running, refusing to launch another one' } - - job_id = '{}-{}'.format (name, ''.join (random.choice ('0123456789abcdef') for _ in range (8))) - self.thread_list[job_id] = { - 'thread': ThreadWithResult (target=f, args=args), - 'starttime': time.time(), - 'running': True, - 'result': None - } - self.thread_list[job_id]['thread'].start() - return { 'job_id': job_id } - def process_status (self, path, get_params, post_params, server): ## join finished threads for k in self.thread_list: diff --git a/src/opengnsys/modules/server/ogAdmClient/__init__.py b/src/opengnsys/modules/server/ogAdmClient/__init__.py index 3a39119..24c8d8d 100644 --- a/src/opengnsys/modules/server/ogAdmClient/__init__.py +++ b/src/opengnsys/modules/server/ogAdmClient/__init__.py @@ -387,7 +387,6 @@ class ogAdmClientWorker (ogLiveWorker): def process_status (self, path, get_params, post_params, server): return {self.name: 'in process_status'} ## XXX - ## curl --insecure -X POST --data '{"nfn": "popup", "title": "my title", "message": "my message"}' https://192.168.1.249:8000/ogAdmClient/popup @check_secret def process_popup (self, path, get_params, post_params, server): logger.debug ('in process_popup, path "{}" get_params "{}" post_params "{}" server "{}"'.format (path, get_params, post_params, server)) @@ -396,9 +395,7 @@ class ogAdmClientWorker (ogLiveWorker): ## type(post_params) "" return {'debug':'test'} - ## curl --insecure https://192.168.1.249:8000/ogAdmClient/Actualizar - 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)) + def do_Actualizar (self, post_params): self.muestraMensaje (1) #if !comandosPendientes: error 84 'Ha ocurrido algún problema al reiniciar la sesión del cliente' cfg = self.LeeConfiguracion() @@ -414,6 +411,10 @@ class ogAdmClientWorker (ogLiveWorker): self.muestraMenu() return self.respuestaEjecucionComando (cmd, 0) + 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,)) + def process_Purgar (self, path, get_params, post_params, server): logger.debug ('in process_Purgar, path "{}" get_params "{}" post_params "{}" server "{}"'.format (path, get_params, post_params, server)) exit (0) ## ogAdmClient.c:905 diff --git a/src/opengnsys/workers/oglive_worker.py b/src/opengnsys/workers/oglive_worker.py index 0560ceb..1232e49 100644 --- a/src/opengnsys/workers/oglive_worker.py +++ b/src/opengnsys/workers/oglive_worker.py @@ -31,6 +31,8 @@ # pylint: disable=unused-wildcard-import,wildcard-import import os +import time +import random import subprocess import threading @@ -190,3 +192,23 @@ class ogLiveWorker(ServerWorker): if not self.tomaIPlocal(): raise Exception ('Se han generado errores. No se puede continuar la ejecución de este módulo') + + def _long_running_job (self, name, f, args): + any_job_running = False + for k in self.thread_list: + if self.thread_list[k]['running']: + any_job_running = True + break + if any_job_running: + logger.info ('some job is already running, refusing to launch another one') + return { 'job_id': None, 'message': 'some job is already running, refusing to launch another one' } + + job_id = '{}-{}'.format (name, ''.join (random.choice ('0123456789abcdef') for _ in range (8))) + self.thread_list[job_id] = { + 'thread': ThreadWithResult (target=f, args=args), + 'starttime': time.time(), + 'running': True, + 'result': None + } + self.thread_list[job_id]['thread'].start() + return { 'job_id': job_id }