Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BUG Tratar caracteres especiales para el procesamiento de valores en ficheros de configuración #25

Open
cesarjorgemartinez opened this issue Jul 20, 2022 · 5 comments

Comments

@cesarjorgemartinez
Copy link

BUG Tratar caracteres especiales para el procesamiento de valores en ficheros de configuración

Te vuelve loco si por ejemplo hay un password con %.
Te obliga a poner "%%", pero después de andar gastando mil tiempo (yo de python npi)

@rg2011
Copy link
Collaborator

rg2011 commented Jul 20, 2022

Revisando con César, el problema está en que configparser soporta interpolación, por defecto interpreta un carácter % en un fichero de config como prefijo de una variable que tiene que interpolar (https://docs.python.org/3/library/configparser.html#interpolation-of-values)

Ese problema está en la ETL que use configparser, no en esta librería. Habría que desactivar la interpolación en la ETL que sea, llamando a la función configparser.ConfigParser con el parámetro interpolation=None.

@cesarjorgemartinez
Copy link
Author

Mismo caso casi seguro le pasará al vertical tpvs

@mrutid
Copy link
Member

mrutid commented Jul 20, 2022

Habría que trasladar el issue a la ETL del vertical concreto que te haya fallado para poder tener en cuenta el arreglo que comenta Rafa.

@arcosa
Copy link
Collaborator

arcosa commented Aug 17, 2022

A modo informativo, en las prácticas recomendas para la creación de ETLs, se "deprecó el uso de configparser" a favor del uso de variables de entorno, sobre todo para el tema de contraseñas, se puede revisar aquí. Para las ETLs viejas que usen el configparser, se puede abrir issue directa en el vertical afectado, para las nuevas, entiendo que con el uso de variables de entorno ya no ocurrirá este problema.

@fgalan
Copy link
Contributor

fgalan commented Dec 23, 2022

Con este código de ejemplo en un fichero de nombre test.ppy (versión 0.6.0 de la libreria):

import tc_etl_lib as tc
import json
import os

pas = os.getenv('ETL_ALCALA_ENVIRONMENT_PASSWORD')

auth: tc.auth.authManager = tc.auth.authManager(endpoint='https://auth.iotplatform.telefonica.com:15001',
                                                service = 'sc_alcala',
                                                user = 'user_odata',
                                                password = pas)

cbm: tc.cb.cbManager = tc.cb.cbManager(endpoint = 'https://cb.iotplatform.telefonica.com:10027')
entities = cbm.get_entities_page(subservice='/indicadores', auth=auth)

print (json.dumps(entities))

Lo invoco así:

$ export ETL_ALCALA_ENVIRONMENT_PASSWORD="Alcala2022%"
$ python test.py

Y obtengo el resultado esperado (las 25 entidades existentes en el subservicio en cuestión ahora mismo)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants