From 5dc158f1f403eb8f2311aa12255b93daa27aeddf Mon Sep 17 00:00:00 2001 From: arcosa Date: Mon, 21 Nov 2022 09:30:23 +0100 Subject: [PATCH 01/11] options param added to functions --- python-lib/tc_etl_lib/README.md | 9 ++++ python-lib/tc_etl_lib/tc_etl_lib/cb.py | 59 ++++++++++++++++++-------- 2 files changed, 50 insertions(+), 18 deletions(-) diff --git a/python-lib/tc_etl_lib/README.md b/python-lib/tc_etl_lib/README.md index b9b4f9d..be8c9fc 100644 --- a/python-lib/tc_etl_lib/README.md +++ b/python-lib/tc_etl_lib/README.md @@ -259,6 +259,7 @@ La librería está creada con diferentes clases dependiendo de la funcionalidad - :param opcional `service`: Se puede indicar al servicio al que se le quiere enviar los datos. Sino se indica, usará el que haya inicializado en el objeto authManager. Sino dispone ninguno de los dos definidos, lanzará un ValueError indicando que necesita definirse el servicio. - :param opcional `subservice`: Se puede indicar al subservicio al que se le quiere enviar los datos. Sino se indica, usará el que haya inicializado en el objeto authManager. Sino dispone ninguno de los dos definidos, lanzará un ValueError indicando que necesita definirse el subservicio. - :param opcional `actionType`: El tipo de acción que se le va aplicar al batch que se envía al Context Broker. Por defecto es `append`. Referencia en [API NGSIv2 de Orion](http://telefonicaid.github.io/fiware-orion/api/v2/stable/) + - :param opcional `options`: Cadena de opciones separadas por coma, que recibe el Context Broker y que permite cierto comportamiento. Se pueden ver las opciones disponibles en [API NGSIv2 de Orion](https://github.com/telefonicaid/fiware-orion/blob/master/doc/manuals/orion-api.md#list-entities-get-v2entities) - :raises [ValueError](https://docs.python.org/3/library/exceptions.html#ValueError): Se lanza cuando le falta algún argumento o inicializar alguna varibale del objeto cbManager, para poder realizar la autenticación o envío de datos. - :raises [Exception](https://docs.python.org/3/library/exceptions.html#Exception): Se lanza cuando el servicio de Context Broker, responde con un error concreto. - :return: True si la operación es correcta (i.e. el CB devolió un code http 204). @@ -276,6 +277,7 @@ La librería está creada con diferentes clases dependiendo de la funcionalidad - :param opcional `geometry`: Cuando se define un filtro de datos por geolocalización, se ha de especificar un tipo de dibujo que se utiliza para resolver el filtrado. Se pueden consultar los diferentes valores de geometry en [NGSIv2 API](http://telefonicaid.github.io/fiware-orion/api/v2/stable) - :param opcional `coords`: Cuando se define un filtro de datos por geolocalización, se ha de especificar una lista de coordenadas geograficas separadas por coma. Se pueden consultar los diferentes valores de coords en [NGSIv2 API](http://telefonicaid.github.io/fiware-orion/api/v2/stable) - :param opcional `id`: Se establece un filtro por Identificador. Si no se especifica, enviará la petición al Context Broker sin el id definido, por lo tanto los datos no serán filtrados por identificador. + - :param opcional `options`: Cadena de opciones separadas por coma, que recibe el Context Broker y que permite cierto comportamiento. Se pueden ver las opciones disponibles en [API NGSIv2 de Orion](https://github.com/telefonicaid/fiware-orion/blob/master/doc/manuals/orion-api.md#list-entities-get-v2entities) - :raises [ValueError](https://docs.python.org/3/library/exceptions.html#ValueError): Se lanza cuando le falta algún argumento o inicializar alguna varibale del objeto cbManager, para poder realizar la autenticación o envío de datos. - :raises FetchError: Se lanza cuando el servicio de Context Broker, responde con un error concreto. - :return: array de datos cuyos elementos son objeto que representan entidades, según el formato descrito en la sección @@ -293,6 +295,7 @@ La librería está creada con diferentes clases dependiendo de la funcionalidad - :param opcional `geometry`: Cuando se define un filtro de datos por geolocalización, se ha de especificar un tipo de dibujo que se utiliza para resolver el filtrado. Se pueden consultar los diferentes valores de geometry en [NGSIv2 API](http://telefonicaid.github.io/fiware-orion/api/v2/stable) - :param opcional `coords`: Cuando se define un filtro de datos por geolocalización, se ha de especificar una lista de coordenadas geograficas separadas por coma. Se pueden consultar los diferentes valores de coords en [NGSIv2 API](http://telefonicaid.github.io/fiware-orion/api/v2/stable) - :param opcional `id`: Se establece un filtro por Identificador. Si no se especifica, enviará la petición al Context Broker sin el id definido, por lo tanto los datos no serán filtrados por identificador. + - :param opcional `options`: adena de opciones separadas por coma, que recibe el Context Broker. Se pueden ver las opciones disponibles en [API NGSIv2 de Orion](https://github.com/telefonicaid/fiware-orion/blob/master/doc/manuals/orion-api.md#list-entities-get-v2entities) - :raises [ValueError](https://docs.python.org/3/library/exceptions.html#ValueError): Se lanza cuando le falta algún argumento o inicializar alguna varibale del objeto cbManager, para poder realizar la autenticación o envío de datos. - :raises FetchError: Se lanza cuando el servicio de Context Broker, responde con un error concreto. - :return: array de datos cuyos elementos son objeto que representan entidades, según el formato descrito en la sección @@ -309,11 +312,17 @@ La librería está creada con diferentes clases dependiendo de la funcionalidad - :param opcional `geometry`: Cuando se define un filtro de datos por geolocalización, se ha de especificar un tipo de dibujo que se utiliza para resolver el filtrado. Se pueden consultar los diferentes valores de geometry en [NGSIv2 API](http://telefonicaid.github.io/fiware-orion/api/v2/stable) - :param opcional `coords`: Cuando se define un filtro de datos por geolocalización, se ha de especificar una lista de coordenadas geograficas separadas por coma. Se pueden consultar los diferentes valores de coords en [NGSIv2 API](http://telefonicaid.github.io/fiware-orion/api/v2/stable) - :param opcional `id`: Se establece un filtro por Identificador. Si no se especifica, enviará la petición al Context Broker sin el id definido, por lo tanto los datos no serán filtrados por identificador. + - :param opcional `options_get`: Cadena de opciones separadas por coma, que recibe el Context Broker cuando va recoger las entidades a eliminar. Se pueden ver las opciones disponibles en [API NGSIv2 de Orion](https://github.com/telefonicaid/fiware-orion/blob/master/doc/manuals/orion-api.md#list-entities-get-v2entities) + - :param opcional `options_send`: Cadena de opciones separadas por coma, que recibe el Context Broker cuando va a eliminar las entidades. Se pueden ver las opciones disponibles en [API NGSIv2 de Orion](https://github.com/telefonicaid/fiware-orion/blob/master/doc/manuals/orion-api.md#create-entity-post-v2entities) - :raises [ValueError](https://docs.python.org/3/library/exceptions.html#ValueError): Se lanza cuando le falta algún argumento o inicializar alguna varibale del objeto cbManager, para poder realizar la autenticación o envío de datos. - :raises FetchError: Se lanza cuando el servicio de Context Broker, responde con un error concreto. ## Changelog + +- Add: new optional parameter called `options` in get_entities, get_entities_page and send_batch +- Add: new optionals parameters called `options_send` and `options_get` in delete_entities + 0.4.0 (August 31st, 2022) - Add: new optional parameter called `service` in get_entities, get_entities_page, delete_entities and send_batch diff --git a/python-lib/tc_etl_lib/tc_etl_lib/cb.py b/python-lib/tc_etl_lib/tc_etl_lib/cb.py index e051f9a..01a78c0 100644 --- a/python-lib/tc_etl_lib/tc_etl_lib/cb.py +++ b/python-lib/tc_etl_lib/tc_etl_lib/cb.py @@ -95,7 +95,7 @@ def __init__(self,*, endpoint: str = None, timeout: int = 10, post_retry_connect self.block_size = block_size - def delete_entities(self, *, service: str = None, subservice: str = None, auth: authManager = None, limit: int = 100, type: str = None, q: str = None, mq: str = None, georel: str = None, geometry: str = None, coords: str = None, id: str = None): + def delete_entities(self, *, service: str = None, subservice: str = None, auth: authManager = None, limit: int = 100, type: str = None, q: str = None, mq: str = None, georel: str = None, geometry: str = None, coords: str = None, id: str = None, options_get: str = None, options_send: str = None): """Delete data from context broker :param service: Define service from which entities are deleted, defaults to None @@ -109,10 +109,12 @@ def delete_entities(self, *, service: str = None, subservice: str = None, auth: :param geometry: Allows to define the reference shape to be used when resolving the query. (point | polygon | line | box), defaults to None :param coords: Must be a string containing a semicolon-separated list of pairs of geographical coordinates in accordance with the geometry specified, defaults to None :param id: Delete entities filtering by Identity, defaults to None + :param options_get: Options used in Context Broker to find entities, defaults to None + :param options_send: Options used in Context Broker to delete entities, defaults to None :raises ValueError: is thrown when some required argument is missing :raises FetchError: is thrown when the response from the cb indicates an error """ - data = self.get_entities(service=service, subservice=subservice, auth=auth, limit = limit, type = type, q = q, mq = mq, georel = georel, geometry = geometry, coords = coords, id = id) + data = self.get_entities(service=service, subservice=subservice, auth=auth, limit = limit, type = type, q = q, mq = mq, georel = georel, geometry = geometry, coords = coords, id = id, options=options_get) entities = [] for i, item in enumerate(data): @@ -122,9 +124,9 @@ def delete_entities(self, *, service: str = None, subservice: str = None, auth: } entities.append(entity) - self.send_batch(service=service, subservice=subservice, auth=auth, entities=entities, actionType='delete') + self.send_batch(service=service, subservice=subservice, auth=auth, entities=entities, actionType='delete', options=options_send) - def get_entities(self, *, service: str = None, subservice: str = None, auth: authManager = None, limit: int = 100, type: str = None, orderBy: str = None, q: str = None, mq: str = None, georel: str = None, geometry: str = None, coords: str = None, id: str = None): + def get_entities(self, *, service: str = None, subservice: str = None, auth: authManager = None, limit: int = 100, type: str = None, orderBy: str = None, q: str = None, mq: str = None, georel: str = None, geometry: str = None, coords: str = None, id: str = None, options: str = None): """Retrieve data from context broker :param service: Define service from which entities are retrieved, defaults to None @@ -139,6 +141,7 @@ def get_entities(self, *, service: str = None, subservice: str = None, auth: aut :param geometry: Allows to define the reference shape to be used when resolving the query. (point | polygon | line | box), defaults to None :param coords: Must be a string containing a semicolon-separated list of pairs of geographical coordinates in accordance with the geometry specified, defaults to None :param id: Retrieve entities filtering by Identity, defaults to None + :param options: Options used to retrive entities, defaults to None :raises ValueError: is thrown when some required argument is missing :raises FetchError: is thrown when the response from the cb indicates an error :return: json data @@ -150,12 +153,12 @@ def get_entities(self, *, service: str = None, subservice: str = None, auth: aut data = ['go!'] while (data != []) : offset = (pg-1)*limit - data = self.get_entities_page(service=service, subservice=subservice, auth=auth, offset = offset, limit = limit, type = type, orderBy = orderBy, q = q, mq = mq, georel = georel, geometry = geometry, coords = coords, id = id) + data = self.get_entities_page(service=service, subservice=subservice, auth=auth, offset = offset, limit = limit, type = type, orderBy = orderBy, q = q, mq = mq, georel = georel, geometry = geometry, coords = coords, id = id, options = options) pg += 1 result += data return result - def get_entities_page(self, *, service:str = None, subservice: str = None, auth: authManager = None, offset: int = None, limit: int = None, type: str = None, orderBy: str = None, q: str = None, mq: str = None, georel: str = None, geometry: str = None, coords: str = None, id: str = None): + def get_entities_page(self, *, service:str = None, subservice: str = None, auth: authManager = None, offset: int = None, limit: int = None, type: str = None, orderBy: str = None, q: str = None, mq: str = None, georel: str = None, geometry: str = None, coords: str = None, id: str = None, options: str = None): """Retrieve data from context broker :param service: Define service from which entities are retrieved, defaults to None or auth.service defined value @@ -171,6 +174,7 @@ def get_entities_page(self, *, service:str = None, subservice: str = None, auth: :param geometry: Allows to define the reference shape to be used when resolving the query. (point | polygon | line | box), defaults to None :param coords: Must be a string containing a semicolon-separated list of pairs of geographical coordinates in accordance with the geometry specified, defaults to None :param id: Retrieve entities filtering by Identity, defaults to None + :param options: Options used, defaults to None :raises ValueError: is thrown when some required argument is missing :raises FetchError: is thrown when the response from the cb indicates an error :return: json data @@ -216,8 +220,15 @@ def get_entities_page(self, *, service:str = None, subservice: str = None, auth: else: raise ValueError('If use geographical queries, you must define georel, geometry and coords in params') + params = {"offset": offset, "limit": limit, "type": type, "orderBy": orderBy, "q": q, "mq": mq, "georel": georel, "geometry": geometry, "coords": coords, "id": id} - req_url = f"{self.endpoint}/v2/entities" + + req_url = "" + if (options != None and len(options) > 0): + req_url = f"{self.endpoint}/v2/entities?options={options}" + else: + req_url = f"{self.endpoint}/v2/entities" + resp = requests.get(req_url, params=params, headers=headers, verify=False, timeout=self.timeout) if resp.status_code == 400 or resp.status_code == 401: respjson = resp.json() @@ -228,7 +239,7 @@ def get_entities_page(self, *, service:str = None, subservice: str = None, auth: return resp.json() - def send_batch(self, *, service:str = None, subservice: str = None, auth: authManager = None, entities: str, actionType: str = 'append') -> bool: + def send_batch(self, *, service:str = None, subservice: str = None, auth: authManager = None, entities: str, actionType: str = 'append', options: str = None) -> bool: """Send batch data to context broker with block control :param auth: Define authManager @@ -236,6 +247,7 @@ def send_batch(self, *, service:str = None, subservice: str = None, auth: authMa :param service: Define service to send batch data, defaults to None :param subservice: Define subservice to send batch data, defaults to None :param actionType: Batch action type, defaults is append + :param options: Options used, defaults to None :raises ValueError: is thrown when some required argument is missing :raises Exception: is thrown when the cotext broker response isn't ok operation :return: True if the operation is correct @@ -248,16 +260,16 @@ def send_batch(self, *, service:str = None, subservice: str = None, auth: authMa if accumulated_block > self.block_size: logger.debug(f'- Sending a batch {actionType} of {len(entitiesToSend)} entities') - self.__send_batch(auth=auth, service=service, subservice=subservice, entities=entitiesToSend, actionType=actionType) + self.__send_batch(auth=auth, service=service, subservice=subservice, entities=entitiesToSend, actionType=actionType, options=options) entitiesToSend = [] accumulated_block = 0 # Remaining block, if any if accumulated_block > 0: logger.debug(f'- Sending final batch {actionType} of {len(entitiesToSend)} entities') - self.__send_batch(auth=auth, service=service, subservice=subservice, entities=entitiesToSend, actionType=actionType) + self.__send_batch(auth=auth, service=service, subservice=subservice, entities=entitiesToSend, actionType=actionType, options=options) - def __send_batch(self, *, service:str = None, subservice: str = None, auth: authManager = None, entities: str, actionType: str = 'append') -> bool: + def __send_batch(self, *, service:str = None, subservice: str = None, auth: authManager = None, entities: str, actionType: str = 'append', options: str = None) -> bool: """Send batch data to context broker :param auth: Define authManager @@ -265,6 +277,7 @@ def __send_batch(self, *, service:str = None, subservice: str = None, auth: auth :param service: Define service to send batch data, defaults to None :param subservice: Define subservice to send batch data, defaults to None or auth.subservice defined value :param actionType: Batch action type, defaults is append + :param options: Options used, defaults to None :raises ValueError: is thrown when some required argument is missing :raises Exception: is thrown when the cotext broker response isn't ok operation :return: True if the operation is correct @@ -286,10 +299,10 @@ def __send_batch(self, *, service:str = None, subservice: str = None, auth: auth if (auth != None and subservice not in auth.tokens.keys()): auth.get_auth_token_subservice(subservice = subservice) - res = self.__batch_creation(auth=auth, service=service, subservice = subservice, entities=entities, actionType=actionType) + res = self.__batch_creation(auth=auth, service=service, subservice = subservice, entities=entities, actionType=actionType, options=options) if (auth != None and res.status_code == 401): auth.get_auth_token_subservice(subservice = subservice) - res = self.__batch_creation(auth=auth, service=service, subservice = subservice, entities=entities, actionType=actionType) + res = self.__batch_creation(auth=auth, service=service, subservice = subservice, entities=entities, actionType=actionType, options=options) if res.status_code != 204: raise Exception(f'Error in batch {actionType} operation ({res.status_code}): {res.json()}') @@ -301,7 +314,7 @@ def __send_batch(self, *, service:str = None, subservice: str = None, auth: auth return True - def __batch_creation(self, *, service: str = None, subservice: str = None, auth: authManager = None, entities: str, actionType: str = 'append'): + def __batch_creation(self, *, service: str = None, subservice: str = None, auth: authManager = None, entities: str, actionType: str = 'append', options: str = None): """Send batch data to Context Broker :param entities: Entities data @@ -309,6 +322,7 @@ def __batch_creation(self, *, service: str = None, subservice: str = None, auth: :param subservice: Define subservice to send batch data, defaults to None or auth.subservice defined value :param auth: Define authManager, defaults to None :param actionType: Batch action type, defaults is append + :params options: Options used, default to None :raises ValueError: is thrown when some required argument is missing :return: Http response code """ @@ -349,11 +363,20 @@ def __batch_creation(self, *, service: str = None, subservice: str = None, auth: 'actionType': f'{actionType}', 'entities': entities } - + + # if cb_flowcontrol, add flowControl flag to options if (self.cb_flowcontrol): - req_url = f'{self.endpoint}/v2/op/update?options=flowControl' - else: - req_url = f'{self.endpoint}/v2/op/update' + if (options == None): + options = 'flowControl' + else: + # check if flowcontrol is in options. + if 'flowControl' not in options: + options = f'{options},flowControl' + + if (options != None and len(options) > 0): + req_url = f"{self.endpoint}/v2/op/update?options={options}" + else: + req_url = f"{self.endpoint}/v2/op/update" http = requests.Session() retry_strategy = Retry( From 76bdc68057da7074d2fecba4283ca5d304b34ee4 Mon Sep 17 00:00:00 2001 From: arcosa Date: Mon, 21 Nov 2022 09:31:37 +0100 Subject: [PATCH 02/11] fix doc --- python-lib/tc_etl_lib/tc_etl_lib/cb.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/python-lib/tc_etl_lib/tc_etl_lib/cb.py b/python-lib/tc_etl_lib/tc_etl_lib/cb.py index 01a78c0..f4b2616 100644 --- a/python-lib/tc_etl_lib/tc_etl_lib/cb.py +++ b/python-lib/tc_etl_lib/tc_etl_lib/cb.py @@ -22,6 +22,8 @@ ContextBroker routines for Python: - cbManager.send_batch - cbManager.get_entities_page + - cbManager.get_entities + - cbManager.delete_entities ''' import requests from requests.adapters import HTTPAdapter From 4776a5e2bb3e0e942a400b88147e2579a5564277 Mon Sep 17 00:00:00 2001 From: arcosa Date: Mon, 21 Nov 2022 17:14:30 +0100 Subject: [PATCH 03/11] change options type to list --- python-lib/tc_etl_lib/tc_etl_lib/cb.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/python-lib/tc_etl_lib/tc_etl_lib/cb.py b/python-lib/tc_etl_lib/tc_etl_lib/cb.py index f4b2616..134c14b 100644 --- a/python-lib/tc_etl_lib/tc_etl_lib/cb.py +++ b/python-lib/tc_etl_lib/tc_etl_lib/cb.py @@ -97,7 +97,7 @@ def __init__(self,*, endpoint: str = None, timeout: int = 10, post_retry_connect self.block_size = block_size - def delete_entities(self, *, service: str = None, subservice: str = None, auth: authManager = None, limit: int = 100, type: str = None, q: str = None, mq: str = None, georel: str = None, geometry: str = None, coords: str = None, id: str = None, options_get: str = None, options_send: str = None): + def delete_entities(self, *, service: str = None, subservice: str = None, auth: authManager = None, limit: int = 100, type: str = None, q: str = None, mq: str = None, georel: str = None, geometry: str = None, coords: str = None, id: str = None, options_get: list = [], options_send: list = []): """Delete data from context broker :param service: Define service from which entities are deleted, defaults to None @@ -128,7 +128,7 @@ def delete_entities(self, *, service: str = None, subservice: str = None, auth: self.send_batch(service=service, subservice=subservice, auth=auth, entities=entities, actionType='delete', options=options_send) - def get_entities(self, *, service: str = None, subservice: str = None, auth: authManager = None, limit: int = 100, type: str = None, orderBy: str = None, q: str = None, mq: str = None, georel: str = None, geometry: str = None, coords: str = None, id: str = None, options: str = None): + def get_entities(self, *, service: str = None, subservice: str = None, auth: authManager = None, limit: int = 100, type: str = None, orderBy: str = None, q: str = None, mq: str = None, georel: str = None, geometry: str = None, coords: str = None, id: str = None, options: list = []): """Retrieve data from context broker :param service: Define service from which entities are retrieved, defaults to None @@ -160,7 +160,7 @@ def get_entities(self, *, service: str = None, subservice: str = None, auth: aut result += data return result - def get_entities_page(self, *, service:str = None, subservice: str = None, auth: authManager = None, offset: int = None, limit: int = None, type: str = None, orderBy: str = None, q: str = None, mq: str = None, georel: str = None, geometry: str = None, coords: str = None, id: str = None, options: str = None): + def get_entities_page(self, *, service:str = None, subservice: str = None, auth: authManager = None, offset: int = None, limit: int = None, type: str = None, orderBy: str = None, q: str = None, mq: str = None, georel: str = None, geometry: str = None, coords: str = None, id: str = None, options: list = []): """Retrieve data from context broker :param service: Define service from which entities are retrieved, defaults to None or auth.service defined value @@ -227,7 +227,7 @@ def get_entities_page(self, *, service:str = None, subservice: str = None, auth: req_url = "" if (options != None and len(options) > 0): - req_url = f"{self.endpoint}/v2/entities?options={options}" + req_url = f"{self.endpoint}/v2/entities?options={','.join(options)}" else: req_url = f"{self.endpoint}/v2/entities" @@ -241,7 +241,7 @@ def get_entities_page(self, *, service:str = None, subservice: str = None, auth: return resp.json() - def send_batch(self, *, service:str = None, subservice: str = None, auth: authManager = None, entities: str, actionType: str = 'append', options: str = None) -> bool: + def send_batch(self, *, service:str = None, subservice: str = None, auth: authManager = None, entities: str, actionType: str = 'append', options: list = []) -> bool: """Send batch data to context broker with block control :param auth: Define authManager @@ -271,7 +271,7 @@ def send_batch(self, *, service:str = None, subservice: str = None, auth: authMa logger.debug(f'- Sending final batch {actionType} of {len(entitiesToSend)} entities') self.__send_batch(auth=auth, service=service, subservice=subservice, entities=entitiesToSend, actionType=actionType, options=options) - def __send_batch(self, *, service:str = None, subservice: str = None, auth: authManager = None, entities: str, actionType: str = 'append', options: str = None) -> bool: + def __send_batch(self, *, service:str = None, subservice: str = None, auth: authManager = None, entities: str, actionType: str = 'append', options: list = []) -> bool: """Send batch data to context broker :param auth: Define authManager @@ -316,7 +316,7 @@ def __send_batch(self, *, service:str = None, subservice: str = None, auth: auth return True - def __batch_creation(self, *, service: str = None, subservice: str = None, auth: authManager = None, entities: str, actionType: str = 'append', options: str = None): + def __batch_creation(self, *, service: str = None, subservice: str = None, auth: authManager = None, entities: str, actionType: str = 'append', options: list = []): """Send batch data to Context Broker :param entities: Entities data @@ -369,14 +369,14 @@ def __batch_creation(self, *, service: str = None, subservice: str = None, auth: # if cb_flowcontrol, add flowControl flag to options if (self.cb_flowcontrol): if (options == None): - options = 'flowControl' + options = ['flowControl'] else: # check if flowcontrol is in options. if 'flowControl' not in options: - options = f'{options},flowControl' + options.append('flowControl') if (options != None and len(options) > 0): - req_url = f"{self.endpoint}/v2/op/update?options={options}" + req_url = f"{self.endpoint}/v2/op/update?options={','.join(options)}" else: req_url = f"{self.endpoint}/v2/op/update" From 5b0a02be2246d305481deff049fc0d32422e9b59 Mon Sep 17 00:00:00 2001 From: arcosa Date: Mon, 21 Nov 2022 17:15:16 +0100 Subject: [PATCH 04/11] update doc and info when cb_controlflow conflict --- python-lib/tc_etl_lib/README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/python-lib/tc_etl_lib/README.md b/python-lib/tc_etl_lib/README.md index be8c9fc..41e5528 100644 --- a/python-lib/tc_etl_lib/README.md +++ b/python-lib/tc_etl_lib/README.md @@ -259,7 +259,7 @@ La librería está creada con diferentes clases dependiendo de la funcionalidad - :param opcional `service`: Se puede indicar al servicio al que se le quiere enviar los datos. Sino se indica, usará el que haya inicializado en el objeto authManager. Sino dispone ninguno de los dos definidos, lanzará un ValueError indicando que necesita definirse el servicio. - :param opcional `subservice`: Se puede indicar al subservicio al que se le quiere enviar los datos. Sino se indica, usará el que haya inicializado en el objeto authManager. Sino dispone ninguno de los dos definidos, lanzará un ValueError indicando que necesita definirse el subservicio. - :param opcional `actionType`: El tipo de acción que se le va aplicar al batch que se envía al Context Broker. Por defecto es `append`. Referencia en [API NGSIv2 de Orion](http://telefonicaid.github.io/fiware-orion/api/v2/stable/) - - :param opcional `options`: Cadena de opciones separadas por coma, que recibe el Context Broker y que permite cierto comportamiento. Se pueden ver las opciones disponibles en [API NGSIv2 de Orion](https://github.com/telefonicaid/fiware-orion/blob/master/doc/manuals/orion-api.md#list-entities-get-v2entities) + - :param opcional `options`: Lista de opciones separadas que recibe el Context Broker y que permite cierto comportamiento. Se pueden ver las opciones disponibles en [API NGSIv2 de Orion](https://github.com/telefonicaid/fiware-orion/blob/master/doc/manuals/orion-api.md#create-entity-post-v2entities). Si se ha especificado un `cb_flowcontrol` a `True` en la definición del cbManager, equivale a añadir la opción de `flowControl` a options especificadas, si `cb_flowcontrol` es `False`, prevalece las opciones especificadas en options. - :raises [ValueError](https://docs.python.org/3/library/exceptions.html#ValueError): Se lanza cuando le falta algún argumento o inicializar alguna varibale del objeto cbManager, para poder realizar la autenticación o envío de datos. - :raises [Exception](https://docs.python.org/3/library/exceptions.html#Exception): Se lanza cuando el servicio de Context Broker, responde con un error concreto. - :return: True si la operación es correcta (i.e. el CB devolió un code http 204). @@ -277,7 +277,7 @@ La librería está creada con diferentes clases dependiendo de la funcionalidad - :param opcional `geometry`: Cuando se define un filtro de datos por geolocalización, se ha de especificar un tipo de dibujo que se utiliza para resolver el filtrado. Se pueden consultar los diferentes valores de geometry en [NGSIv2 API](http://telefonicaid.github.io/fiware-orion/api/v2/stable) - :param opcional `coords`: Cuando se define un filtro de datos por geolocalización, se ha de especificar una lista de coordenadas geograficas separadas por coma. Se pueden consultar los diferentes valores de coords en [NGSIv2 API](http://telefonicaid.github.io/fiware-orion/api/v2/stable) - :param opcional `id`: Se establece un filtro por Identificador. Si no se especifica, enviará la petición al Context Broker sin el id definido, por lo tanto los datos no serán filtrados por identificador. - - :param opcional `options`: Cadena de opciones separadas por coma, que recibe el Context Broker y que permite cierto comportamiento. Se pueden ver las opciones disponibles en [API NGSIv2 de Orion](https://github.com/telefonicaid/fiware-orion/blob/master/doc/manuals/orion-api.md#list-entities-get-v2entities) + - :param opcional `options`: Lista de opciones que recibe el Context Broker y que permite cierto comportamiento. Se pueden ver las opciones disponibles en [API NGSIv2 de Orion](https://github.com/telefonicaid/fiware-orion/blob/master/doc/manuals/orion-api.md#list-entities-get-v2entities) - :raises [ValueError](https://docs.python.org/3/library/exceptions.html#ValueError): Se lanza cuando le falta algún argumento o inicializar alguna varibale del objeto cbManager, para poder realizar la autenticación o envío de datos. - :raises FetchError: Se lanza cuando el servicio de Context Broker, responde con un error concreto. - :return: array de datos cuyos elementos son objeto que representan entidades, según el formato descrito en la sección @@ -295,7 +295,7 @@ La librería está creada con diferentes clases dependiendo de la funcionalidad - :param opcional `geometry`: Cuando se define un filtro de datos por geolocalización, se ha de especificar un tipo de dibujo que se utiliza para resolver el filtrado. Se pueden consultar los diferentes valores de geometry en [NGSIv2 API](http://telefonicaid.github.io/fiware-orion/api/v2/stable) - :param opcional `coords`: Cuando se define un filtro de datos por geolocalización, se ha de especificar una lista de coordenadas geograficas separadas por coma. Se pueden consultar los diferentes valores de coords en [NGSIv2 API](http://telefonicaid.github.io/fiware-orion/api/v2/stable) - :param opcional `id`: Se establece un filtro por Identificador. Si no se especifica, enviará la petición al Context Broker sin el id definido, por lo tanto los datos no serán filtrados por identificador. - - :param opcional `options`: adena de opciones separadas por coma, que recibe el Context Broker. Se pueden ver las opciones disponibles en [API NGSIv2 de Orion](https://github.com/telefonicaid/fiware-orion/blob/master/doc/manuals/orion-api.md#list-entities-get-v2entities) + - :param opcional `options`: Lista de opciones que recibe el Context Broker. Se pueden ver las opciones disponibles en [API NGSIv2 de Orion](https://github.com/telefonicaid/fiware-orion/blob/master/doc/manuals/orion-api.md#list-entities-get-v2entities) - :raises [ValueError](https://docs.python.org/3/library/exceptions.html#ValueError): Se lanza cuando le falta algún argumento o inicializar alguna varibale del objeto cbManager, para poder realizar la autenticación o envío de datos. - :raises FetchError: Se lanza cuando el servicio de Context Broker, responde con un error concreto. - :return: array de datos cuyos elementos son objeto que representan entidades, según el formato descrito en la sección @@ -312,8 +312,8 @@ La librería está creada con diferentes clases dependiendo de la funcionalidad - :param opcional `geometry`: Cuando se define un filtro de datos por geolocalización, se ha de especificar un tipo de dibujo que se utiliza para resolver el filtrado. Se pueden consultar los diferentes valores de geometry en [NGSIv2 API](http://telefonicaid.github.io/fiware-orion/api/v2/stable) - :param opcional `coords`: Cuando se define un filtro de datos por geolocalización, se ha de especificar una lista de coordenadas geograficas separadas por coma. Se pueden consultar los diferentes valores de coords en [NGSIv2 API](http://telefonicaid.github.io/fiware-orion/api/v2/stable) - :param opcional `id`: Se establece un filtro por Identificador. Si no se especifica, enviará la petición al Context Broker sin el id definido, por lo tanto los datos no serán filtrados por identificador. - - :param opcional `options_get`: Cadena de opciones separadas por coma, que recibe el Context Broker cuando va recoger las entidades a eliminar. Se pueden ver las opciones disponibles en [API NGSIv2 de Orion](https://github.com/telefonicaid/fiware-orion/blob/master/doc/manuals/orion-api.md#list-entities-get-v2entities) - - :param opcional `options_send`: Cadena de opciones separadas por coma, que recibe el Context Broker cuando va a eliminar las entidades. Se pueden ver las opciones disponibles en [API NGSIv2 de Orion](https://github.com/telefonicaid/fiware-orion/blob/master/doc/manuals/orion-api.md#create-entity-post-v2entities) + - :param opcional `options_get`: Cadena de opciones separadas por coma, que recibe el Context Broker cuando va recoger las entidades a eliminar. Se pueden ver las opciones disponibles en [API NGSIv2 de Orion](https://github.com/telefonicaid/fiware-orion/blob/master/doc/manuals/orion-api.md#list-entities-get-v2entities). + - :param opcional `options_send`: Lista de opciones que recibe el Context Broker cuando va a eliminar las entidades. Se pueden ver las opciones disponibles en [API NGSIv2 de Orion](https://github.com/telefonicaid/fiware-orion/blob/master/doc/manuals/orion-api.md#create-entity-post-v2entities). Si se ha especificado un `cb_flowcontrol` a `True` en la definición del cbManager, equivale a añadir la opción de `flowControl` a options_send especificadas, si `cb_flowcontrol` es `False`, prevalece las opciones especificadas en options_send. - :raises [ValueError](https://docs.python.org/3/library/exceptions.html#ValueError): Se lanza cuando le falta algún argumento o inicializar alguna varibale del objeto cbManager, para poder realizar la autenticación o envío de datos. - :raises FetchError: Se lanza cuando el servicio de Context Broker, responde con un error concreto. From c9c16e63e94865ad9316fce48fdc36dd851e54d2 Mon Sep 17 00:00:00 2001 From: arcosa Date: Tue, 22 Nov 2022 19:05:23 +0100 Subject: [PATCH 05/11] control urllib3 verify false cert --- python-lib/tc_etl_lib/tc_etl_lib/cb.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/python-lib/tc_etl_lib/tc_etl_lib/cb.py b/python-lib/tc_etl_lib/tc_etl_lib/cb.py index 134c14b..4a7f0dd 100644 --- a/python-lib/tc_etl_lib/tc_etl_lib/cb.py +++ b/python-lib/tc_etl_lib/tc_etl_lib/cb.py @@ -36,6 +36,9 @@ from . import authManager +# control urllib3 post and get verify in false +import urllib3, urllib3.exceptions +urllib3.disable_warnings(category=urllib3.exceptions.InsecureRequestWarning) logger = logging.getLogger(__name__) From 0e32eb28ed754cf99bbba053dd72c2e30db6b62a Mon Sep 17 00:00:00 2001 From: arcosa Date: Wed, 23 Nov 2022 13:48:49 +0100 Subject: [PATCH 06/11] update changelog --- python-lib/tc_etl_lib/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python-lib/tc_etl_lib/README.md b/python-lib/tc_etl_lib/README.md index 41e5528..fd892f1 100644 --- a/python-lib/tc_etl_lib/README.md +++ b/python-lib/tc_etl_lib/README.md @@ -319,7 +319,7 @@ La librería está creada con diferentes clases dependiendo de la funcionalidad ## Changelog - +- Disabled urllib3.exceptions.InsecureRequestWarning, the library uses option `verify=False` in request (get and post) to Context Broker, it launches a warning when Context Broker uses https protocol. Library is less verbose and disable this warning in favor to get more clean log. - Add: new optional parameter called `options` in get_entities, get_entities_page and send_batch - Add: new optionals parameters called `options_send` and `options_get` in delete_entities From eaf6b06e2227ab13fb52be02af128d4e0617d5ff Mon Sep 17 00:00:00 2001 From: Alberto Arcos Date: Wed, 23 Nov 2022 14:02:39 +0100 Subject: [PATCH 07/11] Update python-lib/tc_etl_lib/README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Fermín Galán Márquez --- python-lib/tc_etl_lib/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python-lib/tc_etl_lib/README.md b/python-lib/tc_etl_lib/README.md index fd892f1..55f74e9 100644 --- a/python-lib/tc_etl_lib/README.md +++ b/python-lib/tc_etl_lib/README.md @@ -319,7 +319,7 @@ La librería está creada con diferentes clases dependiendo de la funcionalidad ## Changelog -- Disabled urllib3.exceptions.InsecureRequestWarning, the library uses option `verify=False` in request (get and post) to Context Broker, it launches a warning when Context Broker uses https protocol. Library is less verbose and disable this warning in favor to get more clean log. +- Fix: cleaner logs, avoiding printing warnings in the case of unsecure CB API calls - Add: new optional parameter called `options` in get_entities, get_entities_page and send_batch - Add: new optionals parameters called `options_send` and `options_get` in delete_entities From f8dbeccbf912c37f34a9c8c6142f457e6a486a75 Mon Sep 17 00:00:00 2001 From: arcosa Date: Wed, 23 Nov 2022 14:07:19 +0100 Subject: [PATCH 08/11] changes reeadme --- python-lib/tc_etl_lib/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python-lib/tc_etl_lib/README.md b/python-lib/tc_etl_lib/README.md index 55f74e9..9c18681 100644 --- a/python-lib/tc_etl_lib/README.md +++ b/python-lib/tc_etl_lib/README.md @@ -259,7 +259,7 @@ La librería está creada con diferentes clases dependiendo de la funcionalidad - :param opcional `service`: Se puede indicar al servicio al que se le quiere enviar los datos. Sino se indica, usará el que haya inicializado en el objeto authManager. Sino dispone ninguno de los dos definidos, lanzará un ValueError indicando que necesita definirse el servicio. - :param opcional `subservice`: Se puede indicar al subservicio al que se le quiere enviar los datos. Sino se indica, usará el que haya inicializado en el objeto authManager. Sino dispone ninguno de los dos definidos, lanzará un ValueError indicando que necesita definirse el subservicio. - :param opcional `actionType`: El tipo de acción que se le va aplicar al batch que se envía al Context Broker. Por defecto es `append`. Referencia en [API NGSIv2 de Orion](http://telefonicaid.github.io/fiware-orion/api/v2/stable/) - - :param opcional `options`: Lista de opciones separadas que recibe el Context Broker y que permite cierto comportamiento. Se pueden ver las opciones disponibles en [API NGSIv2 de Orion](https://github.com/telefonicaid/fiware-orion/blob/master/doc/manuals/orion-api.md#create-entity-post-v2entities). Si se ha especificado un `cb_flowcontrol` a `True` en la definición del cbManager, equivale a añadir la opción de `flowControl` a options especificadas, si `cb_flowcontrol` es `False`, prevalece las opciones especificadas en options. + - :param opcional `options`: Lista de opciones separadas que recibe el Context Broker y que permite cierto comportamiento. Se pueden ver las opciones disponibles en [API NGSIv2 de Orion](https://github.com/telefonicaid/fiware-orion/blob/master/doc/manuals/orion-api.md#update-post-v2opupdate). Si se ha especificado un `cb_flowcontrol` a `True` en la definición del cbManager, equivale a añadir la opción de `flowControl` a options especificadas, si `cb_flowcontrol` es `False`, prevalece las opciones especificadas en options. - :raises [ValueError](https://docs.python.org/3/library/exceptions.html#ValueError): Se lanza cuando le falta algún argumento o inicializar alguna varibale del objeto cbManager, para poder realizar la autenticación o envío de datos. - :raises [Exception](https://docs.python.org/3/library/exceptions.html#Exception): Se lanza cuando el servicio de Context Broker, responde con un error concreto. - :return: True si la operación es correcta (i.e. el CB devolió un code http 204). @@ -313,7 +313,7 @@ La librería está creada con diferentes clases dependiendo de la funcionalidad - :param opcional `coords`: Cuando se define un filtro de datos por geolocalización, se ha de especificar una lista de coordenadas geograficas separadas por coma. Se pueden consultar los diferentes valores de coords en [NGSIv2 API](http://telefonicaid.github.io/fiware-orion/api/v2/stable) - :param opcional `id`: Se establece un filtro por Identificador. Si no se especifica, enviará la petición al Context Broker sin el id definido, por lo tanto los datos no serán filtrados por identificador. - :param opcional `options_get`: Cadena de opciones separadas por coma, que recibe el Context Broker cuando va recoger las entidades a eliminar. Se pueden ver las opciones disponibles en [API NGSIv2 de Orion](https://github.com/telefonicaid/fiware-orion/blob/master/doc/manuals/orion-api.md#list-entities-get-v2entities). - - :param opcional `options_send`: Lista de opciones que recibe el Context Broker cuando va a eliminar las entidades. Se pueden ver las opciones disponibles en [API NGSIv2 de Orion](https://github.com/telefonicaid/fiware-orion/blob/master/doc/manuals/orion-api.md#create-entity-post-v2entities). Si se ha especificado un `cb_flowcontrol` a `True` en la definición del cbManager, equivale a añadir la opción de `flowControl` a options_send especificadas, si `cb_flowcontrol` es `False`, prevalece las opciones especificadas en options_send. + - :param opcional `options_send`: Lista de opciones que recibe el Context Broker cuando va a eliminar las entidades. Se pueden ver las opciones disponibles en [API NGSIv2 de Orion](https://github.com/telefonicaid/fiware-orion/blob/master/doc/manuals/orion-api.md#update-post-v2opupdate). Si se ha especificado un `cb_flowcontrol` a `True` en la definición del cbManager, equivale a añadir la opción de `flowControl` a options_send especificadas, si `cb_flowcontrol` es `False`, prevalece las opciones especificadas en options_send. - :raises [ValueError](https://docs.python.org/3/library/exceptions.html#ValueError): Se lanza cuando le falta algún argumento o inicializar alguna varibale del objeto cbManager, para poder realizar la autenticación o envío de datos. - :raises FetchError: Se lanza cuando el servicio de Context Broker, responde con un error concreto. From f75a3a9c4de1ac2b983a5244463d90a4511e9fc9 Mon Sep 17 00:00:00 2001 From: arcosa Date: Wed, 23 Nov 2022 14:10:58 +0100 Subject: [PATCH 09/11] update flowcontrol option readme --- python-lib/tc_etl_lib/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python-lib/tc_etl_lib/README.md b/python-lib/tc_etl_lib/README.md index 9c18681..498b08c 100644 --- a/python-lib/tc_etl_lib/README.md +++ b/python-lib/tc_etl_lib/README.md @@ -259,7 +259,7 @@ La librería está creada con diferentes clases dependiendo de la funcionalidad - :param opcional `service`: Se puede indicar al servicio al que se le quiere enviar los datos. Sino se indica, usará el que haya inicializado en el objeto authManager. Sino dispone ninguno de los dos definidos, lanzará un ValueError indicando que necesita definirse el servicio. - :param opcional `subservice`: Se puede indicar al subservicio al que se le quiere enviar los datos. Sino se indica, usará el que haya inicializado en el objeto authManager. Sino dispone ninguno de los dos definidos, lanzará un ValueError indicando que necesita definirse el subservicio. - :param opcional `actionType`: El tipo de acción que se le va aplicar al batch que se envía al Context Broker. Por defecto es `append`. Referencia en [API NGSIv2 de Orion](http://telefonicaid.github.io/fiware-orion/api/v2/stable/) - - :param opcional `options`: Lista de opciones separadas que recibe el Context Broker y que permite cierto comportamiento. Se pueden ver las opciones disponibles en [API NGSIv2 de Orion](https://github.com/telefonicaid/fiware-orion/blob/master/doc/manuals/orion-api.md#update-post-v2opupdate). Si se ha especificado un `cb_flowcontrol` a `True` en la definición del cbManager, equivale a añadir la opción de `flowControl` a options especificadas, si `cb_flowcontrol` es `False`, prevalece las opciones especificadas en options. + - :param opcional `options`: Lista de opciones separadas que recibe el Context Broker y que permite cierto comportamiento. Se pueden ver las opciones disponibles en [API NGSIv2 de Orion](https://github.com/telefonicaid/fiware-orion/blob/master/doc/manuals/orion-api.md#update-post-v2opupdate). En el caso de que la opcion `flowControl` se especifique dentro de este parámetro, un `cb_flowcontrol` (en la inicializción de cbManager) a `False` se ignora, quedanco como si `cb_flowcontrol` se hubiese establecido a `True`. - :raises [ValueError](https://docs.python.org/3/library/exceptions.html#ValueError): Se lanza cuando le falta algún argumento o inicializar alguna varibale del objeto cbManager, para poder realizar la autenticación o envío de datos. - :raises [Exception](https://docs.python.org/3/library/exceptions.html#Exception): Se lanza cuando el servicio de Context Broker, responde con un error concreto. - :return: True si la operación es correcta (i.e. el CB devolió un code http 204). @@ -313,7 +313,7 @@ La librería está creada con diferentes clases dependiendo de la funcionalidad - :param opcional `coords`: Cuando se define un filtro de datos por geolocalización, se ha de especificar una lista de coordenadas geograficas separadas por coma. Se pueden consultar los diferentes valores de coords en [NGSIv2 API](http://telefonicaid.github.io/fiware-orion/api/v2/stable) - :param opcional `id`: Se establece un filtro por Identificador. Si no se especifica, enviará la petición al Context Broker sin el id definido, por lo tanto los datos no serán filtrados por identificador. - :param opcional `options_get`: Cadena de opciones separadas por coma, que recibe el Context Broker cuando va recoger las entidades a eliminar. Se pueden ver las opciones disponibles en [API NGSIv2 de Orion](https://github.com/telefonicaid/fiware-orion/blob/master/doc/manuals/orion-api.md#list-entities-get-v2entities). - - :param opcional `options_send`: Lista de opciones que recibe el Context Broker cuando va a eliminar las entidades. Se pueden ver las opciones disponibles en [API NGSIv2 de Orion](https://github.com/telefonicaid/fiware-orion/blob/master/doc/manuals/orion-api.md#update-post-v2opupdate). Si se ha especificado un `cb_flowcontrol` a `True` en la definición del cbManager, equivale a añadir la opción de `flowControl` a options_send especificadas, si `cb_flowcontrol` es `False`, prevalece las opciones especificadas en options_send. + - :param opcional `options_send`: Lista de opciones que recibe el Context Broker cuando va a eliminar las entidades. Se pueden ver las opciones disponibles en [API NGSIv2 de Orion](https://github.com/telefonicaid/fiware-orion/blob/master/doc/manuals/orion-api.md#update-post-v2opupdate). En el caso de que la opcion `flowControl` se especifique dentro de este parámetro, un `cb_flowcontrol` (en la inicializción de cbManager) a `False` se ignora, quedanco como si `cb_flowcontrol` se hubiese establecido a `True`. - :raises [ValueError](https://docs.python.org/3/library/exceptions.html#ValueError): Se lanza cuando le falta algún argumento o inicializar alguna varibale del objeto cbManager, para poder realizar la autenticación o envío de datos. - :raises FetchError: Se lanza cuando el servicio de Context Broker, responde con un error concreto. From 2a0a2c4db518e2ea873b863de53267d6ba9ea415 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ferm=C3=ADn=20Gal=C3=A1n=20M=C3=A1rquez?= Date: Wed, 23 Nov 2022 15:52:37 +0100 Subject: [PATCH 10/11] Update python-lib/tc_etl_lib/README.md --- python-lib/tc_etl_lib/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python-lib/tc_etl_lib/README.md b/python-lib/tc_etl_lib/README.md index 498b08c..7f6a6f5 100644 --- a/python-lib/tc_etl_lib/README.md +++ b/python-lib/tc_etl_lib/README.md @@ -320,8 +320,8 @@ La librería está creada con diferentes clases dependiendo de la funcionalidad ## Changelog - Fix: cleaner logs, avoiding printing warnings in the case of unsecure CB API calls -- Add: new optional parameter called `options` in get_entities, get_entities_page and send_batch -- Add: new optionals parameters called `options_send` and `options_get` in delete_entities +- Add: new optional parameter called `options` in get_entities, get_entities_page and send_batch ([#38](https://github.com/telefonicasc/etl-framework/issues/38)) +- Add: new optionals parameters called `options_send` and `options_get` in delete_entities ([#38](https://github.com/telefonicasc/etl-framework/issues/38)) 0.4.0 (August 31st, 2022) From 557dfdde29356bf262fe862f84567dc1251471a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ferm=C3=ADn=20Gal=C3=A1n=20M=C3=A1rquez?= Date: Wed, 23 Nov 2022 15:53:11 +0100 Subject: [PATCH 11/11] Update python-lib/tc_etl_lib/README.md --- python-lib/tc_etl_lib/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python-lib/tc_etl_lib/README.md b/python-lib/tc_etl_lib/README.md index 7f6a6f5..421122a 100644 --- a/python-lib/tc_etl_lib/README.md +++ b/python-lib/tc_etl_lib/README.md @@ -319,9 +319,9 @@ La librería está creada con diferentes clases dependiendo de la funcionalidad ## Changelog -- Fix: cleaner logs, avoiding printing warnings in the case of unsecure CB API calls - Add: new optional parameter called `options` in get_entities, get_entities_page and send_batch ([#38](https://github.com/telefonicasc/etl-framework/issues/38)) - Add: new optionals parameters called `options_send` and `options_get` in delete_entities ([#38](https://github.com/telefonicasc/etl-framework/issues/38)) +- Fix: cleaner logs, avoiding printing warnings in the case of unsecure CB API calls 0.4.0 (August 31st, 2022)