summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/recipes-core/meta/cve-update-nvd2-native.bb13
1 files changed, 9 insertions, 4 deletions
diff --git a/meta/recipes-core/meta/cve-update-nvd2-native.bb b/meta/recipes-core/meta/cve-update-nvd2-native.bb
index 0a8b6a8a0a..69ba20a6cb 100644
--- a/meta/recipes-core/meta/cve-update-nvd2-native.bb
+++ b/meta/recipes-core/meta/cve-update-nvd2-native.bb
@@ -114,7 +114,10 @@ def cleanup_db_download(db_file, db_tmp_file):
if os.path.exists(db_tmp_file):
os.remove(db_tmp_file)
-def nvd_request_next(url, attempts, api_key, args):
+def nvd_request_wait(attempt, min_wait):
+ return min ( ( (2 * attempt) + min_wait ) , 30)
+
+def nvd_request_next(url, attempts, api_key, args, min_wait):
"""
Request next part of the NVD dabase
"""
@@ -143,8 +146,10 @@ def nvd_request_next(url, attempts, api_key, args):
r.close()
except Exception as e:
- bb.note("CVE database: received error (%s), retrying" % (e))
- time.sleep(6)
+ wait_time = nvd_request_wait(attempt, min_wait)
+ bb.note("CVE database: received error (%s)" % (e))
+ bb.note("CVE database: retrying download after %d seconds. attempted (%d/%d)" % (wait_time, attempt+1, attempts))
+ time.sleep(wait_time)
pass
else:
return raw_data
@@ -195,7 +200,7 @@ def update_db_file(db_tmp_file, d, database_time):
while True:
req_args['startIndex'] = index
- raw_data = nvd_request_next(url, attempts, api_key, req_args)
+ raw_data = nvd_request_next(url, attempts, api_key, req_args, wait_time)
if raw_data is None:
# We haven't managed to download data
return False