File tree 1 file changed +12
-2
lines changed
1 file changed +12
-2
lines changed Original file line number Diff line number Diff line change 9
9
import click
10
10
import os
11
11
import json
12
+ import socket
12
13
import urllib
13
14
import subprocess
14
15
import sonic_device_util
@@ -45,7 +46,8 @@ class URL(object):
45
46
PB_INFO_SEPARATOR = " | "
46
47
PB_FULL_TERMINAL_WIDTH = 0
47
48
48
- TMP_PATH = "/tmp"
49
+ DOWNLOAD_TIMEOUT = 30
50
+ DOWNLOAD_PATH_TEMPLATE = "/tmp/{}"
49
51
50
52
def __init__ (self , url ):
51
53
self .__url = url
@@ -115,13 +117,21 @@ def retrieve(self):
115
117
if not extension :
116
118
raise RuntimeError ("Filename is malformed: did not find an extension" )
117
119
120
+ default_timeout = socket .getdefaulttimeout ()
121
+ socket .setdefaulttimeout (self .DOWNLOAD_TIMEOUT )
122
+
118
123
try :
119
124
filename , headers = urllib .urlretrieve (
120
125
self .__url ,
121
- "{}/{}" . format (self . TMP_PATH , basename ),
126
+ self . DOWNLOAD_PATH_TEMPLATE . format (basename ),
122
127
self .__reporthook
123
128
)
129
+ except :
130
+ if os .path .exists (self .DOWNLOAD_PATH_TEMPLATE .format (basename )):
131
+ os .remove (self .DOWNLOAD_PATH_TEMPLATE .format (basename ))
132
+ raise
124
133
finally :
134
+ socket .setdefaulttimeout (default_timeout )
125
135
self .__pb_reset ()
126
136
127
137
return filename , headers
You can’t perform that action at this time.
0 commit comments