1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
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:
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:
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)::]
|