From 5e4ef1851f8620c2410266512c2c86bca874842d Mon Sep 17 00:00:00 2001 From: Natalia Serrano Date: Wed, 12 Mar 2025 11:44:34 +0100 Subject: [PATCH 1/2] refs #1696 remove unused "che" parameter, accept a new "ptt" parameter --- src/opengnsys/modules/server/ogAdmClient/__init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/opengnsys/modules/server/ogAdmClient/__init__.py b/src/opengnsys/modules/server/ogAdmClient/__init__.py index 0866323..542f89c 100644 --- a/src/opengnsys/modules/server/ogAdmClient/__init__.py +++ b/src/opengnsys/modules/server/ogAdmClient/__init__.py @@ -400,6 +400,7 @@ class ogAdmClientWorker (ogLiveWorker): herror = 1 else: logger.warning ('Error al ejecutar el comando') + herror = 1 inv_sft = '' self.muestraMenu() @@ -477,7 +478,7 @@ class ogAdmClientWorker (ogLiveWorker): params = [] disk_info = cfg.pop (0) logger.debug (f'disk_info ({disk_info})') - for k in ['dis', 'che', 'tch']: + for k in ['dis', 'ptt', 'tch']: params.append (f'{k}={disk_info[k]}') disk_info_str = '*'.join (params) -- 2.40.1 From c218eff895a3408a164246ac30310e7f0a1340a5 Mon Sep 17 00:00:00 2001 From: Natalia Serrano Date: Wed, 19 Mar 2025 13:39:07 +0100 Subject: [PATCH 2/2] refs #1698 use python scripts for most of the functionality in interfaceAdm --- linux/debian/changelog | 13 +++++++ src/VERSION | 2 +- .../modules/server/ogAdmClient/__init__.py | 2 +- src/opengnsys/workers/oglive_worker.py | 36 +++++++++++-------- 4 files changed, 37 insertions(+), 16 deletions(-) diff --git a/linux/debian/changelog b/linux/debian/changelog index 2314ee0..6b5d3cf 100644 --- a/linux/debian/changelog +++ b/linux/debian/changelog @@ -1,3 +1,16 @@ +ogagent (1.6.0-1) stable; urgency=medium + + * Don't invoke bash code for some functionalities + + -- OpenGnsys developers Wed, 12 Mar 2025 11:59:36 +0100 + +ogagent (1.5.0-1) stable; urgency=medium + + * Accept new "ptt" parameter in /ogAdmCli/Configurar + * No longer recognise the unused "che" parameter in /ogAdmCli/Configurar + + -- OpenGnsys developers Wed, 12 Mar 2025 11:45:37 +0100 + ogagent (1.4.9-1) stable; urgency=medium * Notify ogcore when agent shuts down within oglive diff --git a/src/VERSION b/src/VERSION index 4ea2b1f..dc1e644 100644 --- a/src/VERSION +++ b/src/VERSION @@ -1 +1 @@ -1.4.9 +1.6.0 diff --git a/src/opengnsys/modules/server/ogAdmClient/__init__.py b/src/opengnsys/modules/server/ogAdmClient/__init__.py index 542f89c..b1aa619 100644 --- a/src/opengnsys/modules/server/ogAdmClient/__init__.py +++ b/src/opengnsys/modules/server/ogAdmClient/__init__.py @@ -173,7 +173,7 @@ class ogAdmClientWorker (ogLiveWorker): if buffer: for l in buffer.split ('@'): if not len (l): continue - logger.debug ('line ({})'.format (l)) + logger.debug ('line ({})'.format (l.replace ('\r', '\\r'))) ## change \r so as not to mess with the log ## at this point, an option would be fire up a curl to localhost, but we can also parse the params and locally call the desired function: post_params = {} for param in l.split ("\r"): diff --git a/src/opengnsys/workers/oglive_worker.py b/src/opengnsys/workers/oglive_worker.py index e365f6d..150a0ae 100644 --- a/src/opengnsys/workers/oglive_worker.py +++ b/src/opengnsys/workers/oglive_worker.py @@ -237,22 +237,30 @@ class ogLiveWorker(ServerWorker): time.sleep (1) def interfaceAdmin (self, method, parametros=[]): - exe = '{}/{}'.format (self.pathinterface, method) - ## for development only. Will be removed when the referenced bash code (/opt/opengnsys/lib/engine/bin/*.lib) is translated into python - LANG = os.environ.get ('LANG', 'en_GB.UTF-8').replace ('UTF_8', 'UTF-8') - devel_bash_prefix = f''' - PATH=/opt/opengnsys/scripts/:$PATH; - source /opt/opengnsys/etc/lang.{LANG}.conf; - for I in /opt/opengnsys/lib/engine/bin/*.lib; do source $I; done; - for i in $(declare -F |cut -f3 -d" "); do export -f $i; done; - ''' + if method in ['Apagar', 'CambiarAcceso', 'Configurar', 'CrearImagen', 'EjecutarScript', 'getConfiguration', 'getIpAddress', 'IniciarSesion', 'InventarioHardware', 'InventarioSoftware', 'Reiniciar', 'RestaurarImagen']: + ## python + logger.debug (f'({method}) is a python method') + exe = '{}/{}.py'.format (self.pathinterface, method) + proc = [exe]+parametros + else: ## ConsolaRemota procesaCache + ## bash + logger.debug (f'({method}) is a bash method') + exe = '{}/{}'.format (self.pathinterface, method) - if parametros: - proc = ['bash', '-c', '{} {} {}'.format (devel_bash_prefix, exe, ' '.join (parametros))] - else: - proc = ['bash', '-c', '{} {}'.format (devel_bash_prefix, exe)] - logger.debug ('subprocess.run ("{}", capture_output=True)'.format (proc)) + LANG = os.environ.get ('LANG', 'en_GB.UTF-8').replace ('UTF_8', 'UTF-8') + devel_bash_prefix = f''' + PATH=/opt/opengnsys/scripts/:$PATH; + source /opt/opengnsys/etc/lang.{LANG}.conf; + for I in /opt/opengnsys/lib/engine/bin/*.lib; do source $I; done; + for i in $(declare -F |cut -f3 -d" "); do export -f $i; done; + ''' + if parametros: + proc = ['bash', '-c', '{} {} {}'.format (devel_bash_prefix, exe, ' '.join (parametros))] + else: + proc = ['bash', '-c', '{} {}'.format (devel_bash_prefix, exe)] + + logger.debug ('subprocess.run ("{}")'.format (' '.join (proc))) p = subprocess.Popen (proc, stdout=subprocess.PIPE, stderr=subprocess.PIPE) if self.pid_q: self.pid_q.put (p.pid) -- 2.40.1