7
7
8
8
from .utils import get_rest_host
9
9
10
+ FS_API_TIMEOUT = 15 # 15 seconds
11
+
10
12
11
13
def get_user_scope (user : User ):
12
14
return f"./users/{ user .username } "
@@ -42,7 +44,7 @@ def use_filestore_auth(user: User):
42
44
def get_filestore_token (user_login , host , verify ):
43
45
try :
44
46
r_userlogin = requests .get (f"https://{ host } /storemng/api/login" ,
45
- data = json .dumps (user_login ), verify = verify )
47
+ data = json .dumps (user_login ), verify = verify , timeout = FS_API_TIMEOUT )
46
48
r_userlogin .raise_for_status ()
47
49
except (requests .exceptions .ConnectionError , requests .exceptions .HTTPError ) as err :
48
50
print ("{0}: " .format (err ))
@@ -62,7 +64,7 @@ def add_filestore_auth(user: User):
62
64
# get user defaults from global settings
63
65
try :
64
66
r_gset = requests .get (f"https://{ host } /storemng/api/settings" ,
65
- headers = {"X-Auth" : admin_token }, verify = verify )
67
+ headers = {"X-Auth" : admin_token }, verify = verify , timeout = FS_API_TIMEOUT )
66
68
r_gset .raise_for_status ()
67
69
except (requests .exceptions .ConnectionError , requests .exceptions .HTTPError ) as err :
68
70
print ("{0}: " .format (err ))
@@ -84,7 +86,7 @@ def add_filestore_auth(user: User):
84
86
# add new user to filestore db
85
87
try :
86
88
r_useradd = requests .post (f"https://{ host } /storemng/api/users" ,
87
- data = json .dumps (fs_user ), headers = {"X-Auth" : admin_token }, verify = verify )
89
+ data = json .dumps (fs_user ), headers = {"X-Auth" : admin_token }, verify = verify , timeout = FS_API_TIMEOUT )
88
90
r_useradd .raise_for_status ()
89
91
except (requests .exceptions .ConnectionError , requests .exceptions .HTTPError ) as err :
90
92
print ("{0}: " .format (err ))
@@ -111,7 +113,7 @@ def set_filestore_scope(user: User):
111
113
payload = jwt .decode (fs_user_token , options = {"verify_signature" : False })
112
114
try :
113
115
r_user = requests .get (f"https://{ host } /storemng/api/users/{ payload ['user' ]['id' ]} " ,
114
- headers = {"X-Auth" : admin_token }, verify = verify )
116
+ headers = {"X-Auth" : admin_token }, verify = verify , timeout = FS_API_TIMEOUT )
115
117
r_user .raise_for_status ()
116
118
except (requests .exceptions .ConnectionError , requests .exceptions .HTTPError ) as err :
117
119
print ("{0}: " .format (err ))
@@ -130,7 +132,7 @@ def set_filestore_scope(user: User):
130
132
}
131
133
try :
132
134
r_useradd = requests .put (f"https://{ host } /storemng/api/users/{ edit_user ['id' ]} " ,
133
- data = json .dumps (fs_user ), headers = {"X-Auth" : admin_token }, verify = verify )
135
+ data = json .dumps (fs_user ), headers = {"X-Auth" : admin_token }, verify = verify , timeout = FS_API_TIMEOUT )
134
136
r_useradd .raise_for_status ()
135
137
except (requests .exceptions .ConnectionError , requests .exceptions .HTTPError ) as err :
136
138
print ("{0}: " .format (err ))
@@ -157,7 +159,7 @@ def delete_filestore_user(user: User):
157
159
payload = jwt .decode (fs_user_token , options = {"verify_signature" : False })
158
160
try :
159
161
r_user = requests .get (f"https://{ host } /storemng/api/users/{ payload ['user' ]['id' ]} " ,
160
- headers = {"X-Auth" : admin_token }, verify = verify )
162
+ headers = {"X-Auth" : admin_token }, verify = verify , timeout = FS_API_TIMEOUT )
161
163
r_user .raise_for_status ()
162
164
except (requests .exceptions .ConnectionError , requests .exceptions .HTTPError ) as err :
163
165
print ("{0}: " .format (err ))
@@ -167,15 +169,15 @@ def delete_filestore_user(user: User):
167
169
if del_user ['scope' ] == get_user_scope (user ):
168
170
try : # only user scope files can be removed, not root
169
171
r_filesdel = requests .delete (f"https://{ host } /storemng/api/resources" ,
170
- headers = {"X-Auth" : fs_user_token }, verify = verify )
172
+ headers = {"X-Auth" : fs_user_token }, verify = verify , timeout = FS_API_TIMEOUT )
171
173
r_filesdel .raise_for_status ()
172
174
except (requests .exceptions .ConnectionError , requests .exceptions .HTTPError ) as err :
173
175
print ("{0}: " .format (err ))
174
176
return False
175
177
# delete user from filestore db
176
178
try :
177
179
r_userdel = requests .delete (f"https://{ host } /storemng/api/users/{ del_user ['id' ]} " ,
178
- headers = {"X-Auth" : fs_user_token }, verify = verify )
180
+ headers = {"X-Auth" : fs_user_token }, verify = verify , timeout = FS_API_TIMEOUT )
179
181
r_userdel .raise_for_status ()
180
182
except (requests .exceptions .ConnectionError , requests .exceptions .HTTPError ) as err :
181
183
print ("{0}: " .format (err ))
0 commit comments