File tree Expand file tree Collapse file tree 1 file changed +23
-9
lines changed
src/fosslight_dependency/package_manager Expand file tree Collapse file tree 1 file changed +23
-9
lines changed Original file line number Diff line number Diff line change 1111import urllib .request
1212import re
1313import shutil
14+ import time
1415import fosslight_util .constant as constant
1516import fosslight_dependency .constant as const
1617from 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' )
You can’t perform that action at this time.
0 commit comments