From 2d0b15c1bfc707e37447d4b64686285c1e23c533 Mon Sep 17 00:00:00 2001 From: Alex Shatov Date: Tue, 18 Sep 2018 15:48:07 -0400 Subject: 4.3.1 policy-handler - tls on web-socket - if tls on web-socket to policy-engine fails, retry connecting after a prolonged delay (60secs) under expectation that the config might change in consul-kv for the policy-handler that will fix the tls problem - relying on the periodic reconfigure feature of the policy-handler Change-Id: Id89f5346a99d572bace551e20a583f4c08374fc4 Signed-off-by: Alex Shatov Issue-ID: DCAEGEN2-611 --- policyhandler/policy_receiver.py | 13 +++++++++++-- pom.xml | 2 +- setup.py | 2 +- version.properties | 2 +- 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/policyhandler/policy_receiver.py b/policyhandler/policy_receiver.py index 96afd59..3ae25fc 100644 --- a/policyhandler/policy_receiver.py +++ b/policyhandler/policy_receiver.py @@ -57,6 +57,7 @@ class _PolicyReceiver(Thread): self._keep_running = True self._settings = Settings(Config.FIELD_POLICY_ENGINE) + self._sleep_before_restarting = 5 self._web_socket_url = None self._web_socket_sslopt = None self._tls_wss_ca_mode = None @@ -69,6 +70,7 @@ class _PolicyReceiver(Thread): def reconfigure(self): """configure and reconfigure the web-socket""" with self._lock: + self._sleep_before_restarting = 5 self._settings.set_config(Config.discovered_config) changed, config = self._settings.get_by_key(Config.FIELD_POLICY_ENGINE) @@ -126,7 +128,13 @@ class _PolicyReceiver(Thread): self._stop_notifications() if restarting: - time.sleep(5) + with self._lock: + sleep_before_restarting = self._sleep_before_restarting + _PolicyReceiver._logger.info( + "going to sleep for %s secs before restarting policy-notifications", + sleep_before_restarting) + + time.sleep(sleep_before_restarting) if not self._get_keep_running(): break @@ -205,7 +213,8 @@ class _PolicyReceiver(Thread): def _on_ws_error(self, error): """report an error""" - _PolicyReceiver._logger.exception("policy-notification error: %s", str(error)) + _PolicyReceiver._logger.exception("policy-notification error %s", str(error)) + self._sleep_before_restarting = 60 if isinstance(error, ssl.SSLError) else 5 def _on_ws_close(self, code, reason): """restart web-socket on close""" diff --git a/pom.xml b/pom.xml index 8b6ca2b..8a282b0 100644 --- a/pom.xml +++ b/pom.xml @@ -30,7 +30,7 @@ ECOMP is a trademark and service mark of AT&T Intellectual Property. org.onap.dcaegen2.platform policy-handler dcaegen2-platform-policy-handler - 4.3.0-SNAPSHOT + 4.3.1-SNAPSHOT http://maven.apache.org UTF-8 diff --git a/setup.py b/setup.py index 2168cd6..c740a94 100644 --- a/setup.py +++ b/setup.py @@ -23,7 +23,7 @@ from setuptools import setup setup( name='policyhandler', description='DCAE-Controller policy-handler to communicate with policy-engine', - version="4.3.0", + version="4.3.1", author='Alex Shatov', packages=['policyhandler'], zip_safe=False, diff --git a/version.properties b/version.properties index e77ddf3..af72773 100644 --- a/version.properties +++ b/version.properties @@ -1,6 +1,6 @@ major=4 minor=3 -patch=0 +patch=1 base_version=${major}.${minor}.${patch} release_version=${base_version} snapshot_version=${base_version}-SNAPSHOT -- cgit 1.2.3-korg