mirror of
https://github.com/ail-project/ail-framework.git
synced 2024-11-26 15:57:16 +00:00
93 lines
2.5 KiB
Python
Executable file
93 lines
2.5 KiB
Python
Executable file
#!/usr/bin/env python3
|
|
# -*-coding:UTF-8 -*
|
|
|
|
##################################
|
|
# Import External packages
|
|
##################################
|
|
import os
|
|
import sys
|
|
import uuid
|
|
|
|
sys.path.append(os.environ['AIL_BIN'])
|
|
##################################
|
|
# Import Project packages
|
|
##################################
|
|
from lib import ConfigLoader
|
|
|
|
|
|
config_loader = ConfigLoader.ConfigLoader()
|
|
r_serv_db = config_loader.get_db_conn("Kvrocks_DB")
|
|
r_serv_log_submit = config_loader.get_redis_conn("Redis_Log_submit")
|
|
config_loader = None
|
|
|
|
|
|
def is_valid_uuid_v4(UUID):
|
|
UUID = UUID.replace('-', '')
|
|
try:
|
|
uuid_test = uuid.UUID(hex=UUID, version=4)
|
|
return uuid_test.hex == UUID
|
|
except:
|
|
return False
|
|
|
|
|
|
def create_import_queue(tags, galaxy, paste_content, UUID, password=None, isfile=False, source=None):
|
|
|
|
# save temp value on disk
|
|
for tag in tags:
|
|
r_serv_db.sadd(UUID + ':ltags', tag)
|
|
for tag in galaxy:
|
|
r_serv_db.sadd(UUID + ':ltagsgalaxies', tag)
|
|
|
|
r_serv_db.set(UUID + ':paste_content', paste_content)
|
|
|
|
if password:
|
|
r_serv_db.set(UUID + ':password', password)
|
|
|
|
if source:
|
|
r_serv_db.set(UUID + ':source', source)
|
|
|
|
r_serv_db.set(UUID + ':isfile', str(isfile))
|
|
|
|
r_serv_log_submit.set(UUID + ':end', 0)
|
|
r_serv_log_submit.set(UUID + ':processing', 0)
|
|
r_serv_log_submit.set(UUID + ':nb_total', -1)
|
|
r_serv_log_submit.set(UUID + ':nb_end', 0)
|
|
r_serv_log_submit.set(UUID + ':nb_sucess', 0)
|
|
|
|
# save UUID on disk
|
|
r_serv_db.sadd('submitted:uuid', UUID)
|
|
|
|
return UUID
|
|
|
|
|
|
def check_import_status(UUID):
|
|
if not is_valid_uuid_v4(UUID):
|
|
return {'status': 'error', 'reason': 'Invalid uuid'}, 400
|
|
|
|
processing = r_serv_log_submit.get(UUID + ':processing')
|
|
if not processing:
|
|
return {'status': 'error', 'reason': 'Unknown uuid'}, 404
|
|
|
|
# nb_total = r_serv_log_submit.get(UUID + ':nb_total')
|
|
# nb_sucess = r_serv_log_submit.get(UUID + ':nb_sucess')
|
|
# nb_end = r_serv_log_submit.get(UUID + ':nb_end')
|
|
items_id = list(r_serv_log_submit.smembers(UUID + ':paste_submit_link'))
|
|
error = r_serv_log_submit.get(UUID + ':error')
|
|
end = r_serv_log_submit.get(UUID + ':end')
|
|
|
|
dict_import_status = {}
|
|
if items_id:
|
|
dict_import_status['items'] = items_id
|
|
if error:
|
|
dict_import_status['error'] = error
|
|
|
|
if processing == '0':
|
|
status = 'in queue'
|
|
else:
|
|
if end == '0':
|
|
status = 'in progress'
|
|
else:
|
|
status = 'imported'
|
|
dict_import_status['status'] = status
|
|
|
|
return dict_import_status, 200
|