17
17
HAS_REQUESTS = False # pylint: disable=W0612
18
18
19
19
# Import Salt libs
20
+ import os
20
21
import salt .utils .aws
21
22
import salt .utils .files
22
23
import salt .utils .hashutils
@@ -203,6 +204,11 @@ def query(key, keyid, method='GET', params=None, headers=None,
203
204
err_code = 'http-{0}' .format (result .status_code )
204
205
err_msg = err_text
205
206
207
+ if os .environ .get ('MOCK_SLOW_DOWN' ):
208
+ result .status_code = 503
209
+ err_code = 'SlowDown'
210
+ err_msg = 'slow down you jerks'
211
+
206
212
log .debug ('S3 Response Status Code: %s' , result .status_code )
207
213
208
214
if method == 'PUT' :
@@ -219,7 +225,7 @@ def query(key, keyid, method='GET', params=None, headers=None,
219
225
log .debug ('Uploaded from %s to %s' , local_file , path )
220
226
else :
221
227
log .debug ('Created bucket %s' , bucket )
222
- return
228
+ return None
223
229
224
230
if method == 'DELETE' :
225
231
if not six .text_type (result .status_code ).startswith ('2' ):
@@ -235,7 +241,7 @@ def query(key, keyid, method='GET', params=None, headers=None,
235
241
log .debug ('Deleted %s from bucket %s' , path , bucket )
236
242
else :
237
243
log .debug ('Deleted bucket %s' , bucket )
238
- return
244
+ return None
239
245
240
246
# This can be used to save a binary object to disk
241
247
if local_file and method == 'GET' :
@@ -250,6 +256,10 @@ def query(key, keyid, method='GET', params=None, headers=None,
250
256
return 'Saved to local file: {0}' .format (local_file )
251
257
252
258
if result .status_code < 200 or result .status_code >= 300 :
259
+ if err_code in ['SlowDown' , 'ServiceUnavailable' , 'RequestTimeTooSkewed' ,
260
+ 'RequestTimeout' , 'OperationAborted' , 'InternalError' ]:
261
+ log .error ('Failed s3 operation: %s, %s' , err_code , err_msg )
262
+ return None
253
263
raise CommandExecutionError (
254
264
'Failed s3 operation. {0}: {1}' .format (err_code , err_msg ))
255
265
@@ -268,7 +278,7 @@ def query(key, keyid, method='GET', params=None, headers=None,
268
278
return ret , requesturl
269
279
else :
270
280
if result .status_code != requests .codes .ok :
271
- return
281
+ return None
272
282
ret = {'headers' : []}
273
283
if full_headers :
274
284
ret ['headers' ] = dict (result .headers )
0 commit comments