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 11
11
import urllib .request
12
12
import re
13
13
import shutil
14
+ import time
14
15
import fosslight_util .constant as constant
15
16
import fosslight_dependency .constant as const
16
17
from fosslight_dependency ._package_manager import PackageManager , get_url_to_purl
@@ -128,16 +129,29 @@ def parse_oss_information(self, f_name):
128
129
homepage_set .append (oss_item .homepage )
129
130
130
131
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 } )" )
138
152
break
139
- except Exception :
140
- continue
153
+ if urlopen_success :
154
+ break
141
155
142
156
if urlopen_success :
143
157
content = res .read ().decode ('utf8' )
You can’t perform that action at this time.
0 commit comments