Skip to content

Commit 2dfb155

Browse files
authored
Retry to get go pkg info when http error (#254)
Signed-off-by: jiyeong.seok <[email protected]>
1 parent 727d4b0 commit 2dfb155

File tree

1 file changed

+23
-9
lines changed
  • src/fosslight_dependency/package_manager

1 file changed

+23
-9
lines changed

src/fosslight_dependency/package_manager/Go.py

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import urllib.request
1212
import re
1313
import shutil
14+
import time
1415
import fosslight_util.constant as constant
1516
import fosslight_dependency.constant as const
1617
from fosslight_dependency._package_manager import PackageManager, get_url_to_purl
@@ -128,16 +129,29 @@ def parse_oss_information(self, f_name):
128129
homepage_set.append(oss_item.homepage)
129130

130131
for homepage_i in homepage_set:
131-
try:
132-
res = urllib.request.urlopen(homepage_i)
133-
if res.getcode() == 200:
134-
urlopen_success = True
135-
if homepage_i == oss_item.homepage:
136-
if oss_item.version:
137-
oss_item.comment = f'Cannot connect {tmp_homepage}, get info from the latest version.'
132+
urlopen_success = False
133+
while True:
134+
try:
135+
res = urllib.request.urlopen(homepage_i)
136+
if res.getcode() == 200:
137+
urlopen_success = True
138+
if homepage_i == oss_item.homepage:
139+
if oss_item.version:
140+
oss_item.comment = f'Cannot connect {tmp_homepage}, get info from the latest version.'
141+
break
142+
except urllib.error.HTTPError as e:
143+
if e.code == 429:
144+
logger.info(f"{e} ({homepage_i}), Retrying to connect after 20 seconds")
145+
time.sleep(20)
146+
continue
147+
else:
148+
logger.info(f"{e} ({homepage_i})")
149+
break
150+
except Exception as e:
151+
logger.warning(f"{e} ({homepage_i})")
138152
break
139-
except Exception:
140-
continue
153+
if urlopen_success:
154+
break
141155

142156
if urlopen_success:
143157
content = res.read().decode('utf8')

0 commit comments

Comments
 (0)