From 640bc433cbd94597ca728270afbeff7fdf37733a Mon Sep 17 00:00:00 2001 From: daminichopra Date: Mon, 25 Oct 2021 15:24:04 +0000 Subject: [PATCH 1/4] Fix for Issue#518 --- src/translators/crate.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/translators/crate.py b/src/translators/crate.py index f6ac4487..27bb8f24 100644 --- a/src/translators/crate.py +++ b/src/translators/crate.py @@ -1,4 +1,5 @@ import json +import logging from contextlib import contextmanager from crate import client from crate.client import exceptions @@ -58,6 +59,9 @@ def setup(self): # consecutive retries backoff_factor = EnvReader(log=logging.getLogger(__name__).debug) \ .read(FloatVar('CRATE_BACKOFF_FACTOR', 0.0)) + import warnings + if backoff_factor > 120: + logging.warn("backoff_factor value should be less than 120") if self.connection is None: try: self.connection = client.connect( From 1a541be22c0e81aa18c38157676fe37cc9eaa70c Mon Sep 17 00:00:00 2001 From: daminichopra Date: Fri, 21 Jan 2022 23:27:24 +0530 Subject: [PATCH 2/4] added floatrangevar --- src/translators/crate.py | 4 ++-- src/utils/cfgreader.py | 13 +++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/translators/crate.py b/src/translators/crate.py index 4056f6a2..d7beda7e 100644 --- a/src/translators/crate.py +++ b/src/translators/crate.py @@ -14,7 +14,7 @@ NGSI_LD_GEOMETRY, TIME_INDEX, METADATA_TABLE_NAME, FIWARE_SERVICEPATH import logging from .crate_geo_query import from_ngsi_query -from utils.cfgreader import EnvReader, StrVar, IntVar, FloatVar +from utils.cfgreader import EnvReader, StrVar, IntVar, FloatVar, FloatRangeVar from utils.connection_manager import ConnectionManager # CRATE TYPES @@ -59,7 +59,7 @@ def setup(self): # Added backoff_factor for retry interval between attempt of # consecutive retries backoff_factor = EnvReader(log=logging.getLogger(__name__).debug) \ - .read(FloatVar('CRATE_BACKOFF_FACTOR', 0.0)) ++ .read(FloatRangeVar('CRATE_BACKOFF_FACTOR', 0.0)) import warnings if backoff_factor > 120: logging.warn("backoff_factor value should be less than 120") diff --git a/src/utils/cfgreader.py b/src/utils/cfgreader.py index 7704ff82..ad9c2ce2 100644 --- a/src/utils/cfgreader.py +++ b/src/utils/cfgreader.py @@ -79,6 +79,19 @@ def _do_read(self, rep: str) -> float: return float(rep) +class FloatRangeVar(EVar): + """ + An env value parsed as a FloatRange. Value of "CRATE_BACKOFF_FACTOR" + expected to be in range of 0 to 120 otherwise it will raise Value error. + """ + + def _do_read(self, rep: str) -> float: + backoff_factor = int(os.environ.get('CRATE_BACKOFF_FACTOR')) + if backoff_factor not in range(0,120): + raise ValueError('value out of range: {}'.format(backoff_factor)) + return float(rep) + + class BoolVar(EVar): """ An env value parsed as a boolean. It evaluates to true just in case the From 989362c80276a4f96aefe5db7dc4a0e356341d0a Mon Sep 17 00:00:00 2001 From: daminichopra Date: Fri, 21 Jan 2022 23:35:31 +0530 Subject: [PATCH 3/4] updated --- src/translators/crate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/translators/crate.py b/src/translators/crate.py index d7beda7e..d3108fbe 100644 --- a/src/translators/crate.py +++ b/src/translators/crate.py @@ -59,7 +59,7 @@ def setup(self): # Added backoff_factor for retry interval between attempt of # consecutive retries backoff_factor = EnvReader(log=logging.getLogger(__name__).debug) \ -+ .read(FloatRangeVar('CRATE_BACKOFF_FACTOR', 0.0)) + .read(FloatRangeVar('CRATE_BACKOFF_FACTOR', 0.0)) import warnings if backoff_factor > 120: logging.warn("backoff_factor value should be less than 120") From b2a3cb1bcebbb253943143cc9c6b14f9e1354bf4 Mon Sep 17 00:00:00 2001 From: daminichopra Date: Fri, 21 Jan 2022 23:54:07 +0530 Subject: [PATCH 4/4] updated --- src/translators/crate.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/translators/crate.py b/src/translators/crate.py index d3108fbe..a66613a8 100644 --- a/src/translators/crate.py +++ b/src/translators/crate.py @@ -60,9 +60,6 @@ def setup(self): # consecutive retries backoff_factor = EnvReader(log=logging.getLogger(__name__).debug) \ .read(FloatRangeVar('CRATE_BACKOFF_FACTOR', 0.0)) - import warnings - if backoff_factor > 120: - logging.warn("backoff_factor value should be less than 120") if self.connection is None: try: self.connection = client.connect(