From 040ca6612f22da412163882d8a1a3eafe6c051b7 Mon Sep 17 00:00:00 2001 From: Natalia Serrano Date: Thu, 19 Sep 2024 10:21:00 +0200 Subject: [PATCH] refs #703 improve error reporting, fix bugs --- .../modules/server/ogAdmClient/__init__.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/opengnsys/modules/server/ogAdmClient/__init__.py b/src/opengnsys/modules/server/ogAdmClient/__init__.py index 64e0798..c42ce07 100644 --- a/src/opengnsys/modules/server/ogAdmClient/__init__.py +++ b/src/opengnsys/modules/server/ogAdmClient/__init__.py @@ -285,12 +285,16 @@ class ogAdmClientWorker (ServerWorker): logger.debug ('subprocess.run ("{}", capture_output=True)'.format (proc)) p = subprocess.run (proc, capture_output=True) if 0 != p.returncode: - raise Exception ('command failed') ## TODO mejorar este mensaje + cmd_txt = ' '.join (proc) + logger.error (f'command ({cmd_txt}) failed, stderr follows:') + for l in p.stderr.strip().decode ('utf-8').splitlines(): + logger.error (f' {l}') + raise Exception (f'command ({cmd_txt}) failed, see log for details') return p.stdout.strip().decode ('utf-8') def tomaIPlocal (self): try: - self.IPlocal = self.interfaceAdmin ('getIpAddress'); + self.IPlocal = self.interfaceAdmin ('getIpAddress') except Exception as e: logger.error (e) logger.error ('No se ha podido recuperar la dirección IP del cliente') @@ -471,8 +475,7 @@ class ogAdmClientWorker (ServerWorker): if (not url): url = self.urlMenu os.system ('pkill -9 browser'); - #p = subprocess.Popen (['/opt/opengnsys/bin/browser', '-qws', url]) ## TODO - p = subprocess.Popen (['/usr/bin/xeyes']) + p = subprocess.Popen (['/opt/opengnsys/bin/browser', '-qws', url]) try: p.wait (2) ## if the process dies before 2 seconds... logger.error ('Error al ejecutar la llamada a la interface de administración') @@ -605,7 +608,7 @@ class ogAdmClientWorker (ServerWorker): self.muestraMensaje (20) else: if not os.path.exists (sft_src): - raise Exception (f'interfaceAdmin({nfn}) returned success but did not create file ({sft_src}) under /tmp') + raise Exception (f'interfaceAdmin({nfn}) returned success but did not create file ({sft_src})') sft_src_contents = Path (sft_src).read_bytes() ## Envía fichero de inventario al servidor @@ -681,7 +684,7 @@ class ogAdmClientWorker (ServerWorker): output = self.interfaceAdmin (nfn, [dsk, par, nci, ipr]) self.muestraMensaje (9) herror = 0 - except Exception as e: + except: logger.warning ('Error al ejecutar el comando') self.muestraMensaje (10) herror = 1