summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/recipes-core/meta/cve-update-nvd2-native.bb61
1 files changed, 34 insertions, 27 deletions
diff --git a/meta/recipes-core/meta/cve-update-nvd2-native.bb b/meta/recipes-core/meta/cve-update-nvd2-native.bb
index c85df23f598..6bfdb68ff01 100644
--- a/meta/recipes-core/meta/cve-update-nvd2-native.bb
+++ b/meta/recipes-core/meta/cve-update-nvd2-native.bb
@@ -117,42 +117,49 @@ def nvd_request_next(url, api_key, args):
import urllib.request
import urllib.parse
+ import urllib.error
import gzip
import http
- headers = {}
- if api_key:
- headers['apiKey'] = api_key
+ import pysnooper
- data = urllib.parse.urlencode(args)
+ with pysnooper.snoop(bb.plain):
+ data = urllib.parse.urlencode(args)
- full_request = url + '?' + data
+ full_request = url + '?' + data
- for attempt in range(3):
- try:
- r = urllib.request.urlopen(full_request)
+ for attempt in range(3):
+ try:
+ request = urllib.request.Request(full_request, headers={'apiKey': 'f09ca576-ee21-4a38-b67d-8f2e95dd5c89'})
+ r = urllib.request.urlopen(request)
- if (r.headers['content-encoding'] == 'gzip'):
- buf = r.read()
- raw_data = gzip.decompress(buf)
+ if (r.headers['content-encoding'] == 'gzip'):
+ buf = r.read()
+ raw_data = gzip.decompress(buf)
+ else:
+ raw_data = r.read().decode("utf-8")
+
+ r.close()
+
+ except UnicodeDecodeError:
+ # Received garbage, retry
+ bb.debug(2, "CVE database: received malformed data, retrying (request: %s)" %(full_request))
+ pass
+ except http.client.IncompleteRead:
+ # Read incomplete, let's try again
+ bb.debug(2, "CVE database: received incomplete data, retrying (request: %s)" %(full_request))
+ pass
+ except urllib.error.URLError as e:
+ bb.warn(str(e))
+ bb.warn(e.geturl())
+ bb.warn(str(e.info()))
+ bb.warn(str(e.read()))
+ bb.fatal(str(e))
else:
- raw_data = r.read().decode("utf-8")
-
- r.close()
-
- except UnicodeDecodeError:
- # Received garbage, retry
- bb.debug(2, "CVE database: received malformed data, retrying (request: %s)" %(full_request))
- pass
- except http.client.IncompleteRead:
- # Read incomplete, let's try again
- bb.debug(2, "CVE database: received incomplete data, retrying (request: %s)" %(full_request))
- pass
+ return raw_data
else:
- return raw_data
- else:
- # We failed at all attempts
- return None
+ # We failed at all attempts
+ return None
def update_db_file(db_tmp_file, d, database_time):
"""