aboutsummaryrefslogtreecommitdiffstats
path: root/catalog-be/src/main/resources/scripts/sdcBePy/common/normative/main.py
diff options
context:
space:
mode:
authork.kedron <k.kedron@partner.samsung.com>2020-06-05 14:51:01 +0200
committerKrystian Kedron <k.kedron@partner.samsung.com>2020-06-24 09:21:00 +0000
commit16fe29ac226610f79c8da1f691437ec7fe6e79c4 (patch)
tree5b73d8f1724c561609c05fd2802ad80b7acfb4c0 /catalog-be/src/main/resources/scripts/sdcBePy/common/normative/main.py
parentfca8a0b1af32083b8ea025135b120091aec9714f (diff)
Improvement sdc-BE-init python scripts
- Implemented retries when request fail - Moved configuration variables to the Properties file - Extended sdcBeProxy - Implemented script to run import/update (should fix deployment glitch) - Updated the import_Normatives recipes to use new script Issue-ID: SDC-2784 Signed-off-by: Krystian Kedron <k.kedron@partner.samsung.com> Change-Id: I83fab898783ad8d3b3d532af43d75bc54d033c33
Diffstat (limited to 'catalog-be/src/main/resources/scripts/sdcBePy/common/normative/main.py')
-rw-r--r--catalog-be/src/main/resources/scripts/sdcBePy/common/normative/main.py50
1 files changed, 45 insertions, 5 deletions
diff --git a/catalog-be/src/main/resources/scripts/sdcBePy/common/normative/main.py b/catalog-be/src/main/resources/scripts/sdcBePy/common/normative/main.py
index a30d46d4d5..ad8338cee4 100644
--- a/catalog-be/src/main/resources/scripts/sdcBePy/common/normative/main.py
+++ b/catalog-be/src/main/resources/scripts/sdcBePy/common/normative/main.py
@@ -1,16 +1,56 @@
+import time
+from datetime import datetime
+
+from sdcBePy.common.bColors import BColors
+from sdcBePy.common.logger import print_and_exit
from sdcBePy.common.normative.toscaElements import process_and_create_normative_element
from sdcBePy.common.normative.toscaTypes import process_and_create_normative_types
+from sdcBePy.common.errors import ResourceCreationError
+from sdcBePy import properties
+
+colors = BColors()
def process_element_list(normative_elements_list, sdc_be_proxy):
+ attempt = 0
for normative_element in normative_elements_list:
- process_and_create_normative_element(normative_element,
- sdc_be_proxy=sdc_be_proxy)
+ while True:
+ attempt += 1
+ try:
+ process_and_create_normative_element(normative_element,
+ sdc_be_proxy=sdc_be_proxy)
+ break
+ except ResourceCreationError as e:
+ _check_and_retry(attempt, e.error_code, e.message)
+ except Exception as e:
+ _check_and_retry(attempt, 1, str(e))
def process_type_list(normative_type_list, sdc_be_proxy, update_version):
+ attempt = 0
for normative_type in normative_type_list:
- process_and_create_normative_types(normative_type,
- sdc_be_proxy=sdc_be_proxy,
- update_version=update_version)
+ while True:
+ attempt += 1
+ try:
+ process_and_create_normative_types(normative_type,
+ sdc_be_proxy=sdc_be_proxy,
+ update_version=update_version)
+ break
+ except ResourceCreationError as e:
+ _check_and_retry(attempt, e.error_code, e.message)
+ normative_type.normative_types_list = _reduce(normative_type.normative_types_list, e.resource_name)
+ except Exception as e:
+ _check_and_retry(attempt, 1, str(e))
+
+
+def _check_and_retry(attempt, code, message):
+ if attempt == properties.retry_attempts + 1:
+ print_and_exit(code, message)
+
+ print(colors.FAIL + '[WARRING]: ' + datetime.now().strftime('%Y/%m/%d %H:%M:%S')
+ + ' ' + message + ", try again: #" + str(attempt) + colors.END_C)
+ time.sleep(properties.retry_time)
+
+def _reduce(_list, element):
+ return _list[_list.index(element)::]