easy-utils-dev 2.159__tar.gz → 2.160__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/PKG-INFO +1 -1
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/easy_utils_dev/uiserver.py +33 -33
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/easy_utils_dev.egg-info/PKG-INFO +1 -1
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/setup.py +1 -1
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/MANIFEST.in +0 -0
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/easy_utils_dev/EasySsh.py +0 -0
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/easy_utils_dev/Events.py +0 -0
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/easy_utils_dev/FastQueue.py +0 -0
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/easy_utils_dev/NameObject.py +0 -0
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/easy_utils_dev/__init__.py +0 -0
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/easy_utils_dev/abortable.py +0 -0
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/easy_utils_dev/brevosmtp.py +0 -0
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/easy_utils_dev/check_license.py +0 -0
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/easy_utils_dev/cplib.py +0 -0
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/easy_utils_dev/custom_env.py +0 -0
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/easy_utils_dev/debugger.py +0 -0
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/easy_utils_dev/easy_oracle.py +0 -0
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/easy_utils_dev/encryptor.py +0 -0
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/easy_utils_dev/ept.py +0 -0
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/easy_utils_dev/ept_sql/create_dirs.sql +0 -0
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/easy_utils_dev/ept_sql/create_ept_tables.sql +0 -0
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/easy_utils_dev/exceptions.py +0 -0
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/easy_utils_dev/filescompressor.py +0 -0
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/easy_utils_dev/generate_license.py +0 -0
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/easy_utils_dev/keycloakapi.py +0 -0
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/easy_utils_dev/lralib.py +0 -0
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/easy_utils_dev/ne1830PSS.py +0 -0
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/easy_utils_dev/nsp_kafka.py +0 -0
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/easy_utils_dev/openid_server.py +0 -0
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/easy_utils_dev/optics_utils.py +0 -0
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/easy_utils_dev/require_auth.py +0 -0
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/easy_utils_dev/simple_sqlite.py +0 -0
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/easy_utils_dev/temp_memory.py +0 -0
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/easy_utils_dev/utils.py +0 -0
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/easy_utils_dev/winserviceapi.py +0 -0
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/easy_utils_dev/wsnoclib.py +0 -0
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/easy_utils_dev/wsselib.py +0 -0
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/easy_utils_dev.egg-info/SOURCES.txt +0 -0
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/easy_utils_dev.egg-info/dependency_links.txt +0 -0
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/easy_utils_dev.egg-info/requires.txt +0 -0
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/easy_utils_dev.egg-info/top_level.txt +0 -0
- {easy_utils_dev-2.159 → easy_utils_dev-2.160}/setup.cfg +0 -0
|
@@ -56,25 +56,25 @@ class Response :
|
|
|
56
56
|
self.success = self.ok
|
|
57
57
|
self.failure = self.error
|
|
58
58
|
|
|
59
|
-
def ok(self , result=[] , message=None ,
|
|
59
|
+
def ok(self , result=[] , message=None , **kwargs) :
|
|
60
60
|
timestamp = getTimestamp()
|
|
61
|
-
return {'status' : 200 , 'message' : message , 'result' : result , **
|
|
61
|
+
return {'status' : 200 , 'message' : message , 'result' : result , **kwargs, 'timestamp' : timestamp}
|
|
62
62
|
|
|
63
|
-
def error(self , message=None ,
|
|
63
|
+
def error(self , message=None , **kwargs) :
|
|
64
64
|
timestamp = getTimestamp()
|
|
65
|
-
return {'status' : 400 , 'message' : message , **
|
|
65
|
+
return {'status' : 400 , 'message' : message , **kwargs , 'timestamp' : timestamp}
|
|
66
66
|
|
|
67
|
-
def internal_error(self , message=None ,
|
|
67
|
+
def internal_error(self , message=None , **kwargs ) :
|
|
68
68
|
timestamp = getTimestamp()
|
|
69
|
-
return {'status' : 500 , 'message' : message , **
|
|
69
|
+
return {'status' : 500 , 'message' : message , **kwargs , 'timestamp' : timestamp}
|
|
70
70
|
|
|
71
|
-
def not_found(self , message=None ,
|
|
71
|
+
def not_found(self , message=None , **kwargs) :
|
|
72
72
|
timestamp = getTimestamp()
|
|
73
|
-
return {'status' : 404 , 'message' : message , **
|
|
73
|
+
return {'status' : 404 , 'message' : message , **kwargs , 'timestamp' : timestamp}
|
|
74
74
|
|
|
75
|
-
def unauthorized(self , message=None ,
|
|
75
|
+
def unauthorized(self , message=None , **kwargs) :
|
|
76
76
|
timestamp = getTimestamp()
|
|
77
|
-
return {'status' : 401 , 'message' : message , **
|
|
77
|
+
return {'status' : 401 , 'message' : message , **kwargs , 'timestamp' : timestamp}
|
|
78
78
|
|
|
79
79
|
class AbortRequest :
|
|
80
80
|
def __init__(self, request ) :
|
|
@@ -229,35 +229,37 @@ class UISERVER :
|
|
|
229
229
|
if not alive :
|
|
230
230
|
break
|
|
231
231
|
time.sleep(.25)
|
|
232
|
-
return
|
|
232
|
+
return Response().ok(message='Request aborted' , abort_timestamp=timestamp , abort_id=id , alive=alive , url=abort.request.get('path'))
|
|
233
|
+
|
|
233
234
|
else :
|
|
234
|
-
return
|
|
235
|
+
return Response().not_found(message='Request not found or request is not abortable. Check request headers for abortable flag.')
|
|
235
236
|
|
|
236
237
|
@self.app.route(f"/request/traceback/<key>" , methods=['GET'])
|
|
237
238
|
def get_traceback(key : str ) :
|
|
238
239
|
traceback = self.cache.get(key)
|
|
239
240
|
if traceback :
|
|
240
|
-
return
|
|
241
|
+
return Response().ok(message='Traceback found' , traceback=traceback.get('traceback'))
|
|
241
242
|
else :
|
|
242
|
-
return
|
|
243
|
+
return Response().not_found(message='Traceback not found or expired')
|
|
243
244
|
|
|
244
245
|
@self.app.route(f'{self.request_reply_base_url}/<id>' , methods=['GET'])
|
|
245
246
|
def get_result_of_async_request(id : str ) :
|
|
246
247
|
request : AbortRequest = self.bg_requests.get(id)
|
|
247
248
|
if request :
|
|
248
|
-
return
|
|
249
|
-
'
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
249
|
+
return Response().ok(
|
|
250
|
+
message='Result of async request found' ,
|
|
251
|
+
internalid=id ,
|
|
252
|
+
result=request.result ,
|
|
253
|
+
in_progress=request.in_progress ,
|
|
254
|
+
async_request=request.async_request ,
|
|
255
|
+
internalid=request.internalid ,
|
|
256
|
+
start_ts=request.start_ts ,
|
|
257
|
+
end_ts=request.end_ts ,
|
|
258
|
+
execution=request.execution ,
|
|
259
|
+
success=request.success ,
|
|
260
|
+
killed=request.killed
|
|
261
|
+
)
|
|
262
|
+
|
|
261
263
|
|
|
262
264
|
@self.app.before_request
|
|
263
265
|
def before_request() :
|
|
@@ -266,7 +268,7 @@ class UISERVER :
|
|
|
266
268
|
|
|
267
269
|
|
|
268
270
|
if (self.serve_with_secret_key) and (request.path not in self.secret_key_execlude_urls) and (request.headers.get('secretkey') != self.secretkey):
|
|
269
|
-
return
|
|
271
|
+
return Response().unauthorized(message='Secret key is invalid')
|
|
270
272
|
|
|
271
273
|
@copy_current_request_context
|
|
272
274
|
def run_async_job_results( target_func , abort : AbortRequest ) :
|
|
@@ -305,11 +307,11 @@ class UISERVER :
|
|
|
305
307
|
if request.headers.get('async') == 'false' :
|
|
306
308
|
target_func = current_app.view_functions.get(request.endpoint)
|
|
307
309
|
if not target_func:
|
|
308
|
-
return
|
|
310
|
+
return Response().not_found(message='Route not found')
|
|
309
311
|
th = start_thread(target=run_async_job_results, args=[target_func , abort ])
|
|
310
312
|
abort.thread = th
|
|
311
313
|
self.bg_requests[requestId] = abort
|
|
312
|
-
return
|
|
314
|
+
return Response().ok(message='Request now in running bg' , abort_id=abort.abort_id)
|
|
313
315
|
|
|
314
316
|
if self.return_exception_as_code_400 :
|
|
315
317
|
@self.app.errorhandler(Exception)
|
|
@@ -348,15 +350,13 @@ class UISERVER :
|
|
|
348
350
|
}
|
|
349
351
|
self.logger.error(f'error: {json.dumps(response , indent=4)}')
|
|
350
352
|
self.cache.set( custom_key=key , item={**response , 'traceback' : str(traceback.format_exc())} , auto_destroy_period=1800 , store_deleted_key=False )
|
|
351
|
-
|
|
352
|
-
return response , 200
|
|
353
|
+
return Response().error( **response )
|
|
353
354
|
|
|
354
355
|
@self.app.after_request
|
|
355
356
|
def after_request(response) :
|
|
356
357
|
|
|
357
358
|
if self.simulate_network_delay :
|
|
358
359
|
time.sleep(self.simulate_network_delay)
|
|
359
|
-
|
|
360
360
|
try :
|
|
361
361
|
now = getTimestamp()
|
|
362
362
|
response.headers['internalid'] = request.internalid
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|