task_info=db.querry_excute("select * from automated_main_querrydifftask where id={}".format(task_id))
returnresponse_success(task_info)
defdelete(self,request,task_id,*args,**kwargs):
"""
删除任务
:param request:
:param args:
:param kwargs:
:return:
"""
db=DbRecordOpt()
r=db.querry_excute("select * from automated_main_querrydifftask where id={} and status = 1".format(task_id))
iflen(r)>0:
returnresponse_failed(1,"执行中,无法删除")
try:
db.write_excute("delete from automated_main_querrydifftask where id={} and status != 1".format(task_id))
db.write_excute("delete from automated_main_querrydifftaskitems where task_id={}".format(task_id))
except:
print(traceback.print_exc())
returnresponse_failed(1,'删除失败')
returnresponse_success()
defpost(self,request,*args,**kwargs):
"""
修改任务信息
:param request:
:param args:
:param kwargs:
:return:
"""
body=request.body
ifnotbody:
returnresponse_success()
data=json.loads(body)
update_sql='update automated_main_querrydifftask set task_name={},source_env_id={},target_env_id={},log_time={},project_id={},simple_num={},urls={},opt_num={} where id={}'
task=db.querry_excute('select qt.id,qt.opt_num,qt.status,ae.api_title as source_url,qt.log_time,qt.urls,qt.project_id from automated_main_querrydifftask qt LEFT JOIN automated_main_apienvironment ae on qt.source_env_id=ae.id where qt.id={} and qt.es_select_status=0 and qt.status = 0'.format(int(task_id)))
db.write_excute('delete from automated_main_querrydifftaskitems where task_id = {}'.format(task_id))
logger.info("删除case成功")
order={
"size":0,
"query":{
"wildcard":{
"apiPath":"http://datacenter.qk.com/*"
}
},
"aggs":{
"group_url":{
"terms":{
"field":"apiPath"
},
"aggs":{
"group_param":{
"terms":{
"field":"request",
"size":100
}
}
}
}
}
}
iflen(task[0].get('urls',''))>0:
url_list=task[0].get('urls').split(',')
urls=db.querry_excute("select apc.api_url as api_url, apc.api_method from automated_main_apitestcase apc LEFT JOIN automated_main_apimodule am on am.id=apc.api_module_id LEFT JOIN automated_main_apiproject ap on ap.id=am.api_project_id where ap.id = {} and apc.api_url in ({})".format(int(task[0].get('project_id'))),"'"+"','".join(url_list)+"'")
else:
urls=db.querry_excute('select apc.api_url as api_url, apc.api_method from automated_main_apitestcase apc LEFT JOIN automated_main_apimodule am on am.id=apc.api_module_id LEFT JOIN automated_main_apiproject ap on ap.id=am.api_project_id where ap.id = {} and apc.api_url !=""'.format(int(task[0].get('project_id'))))
db.querry_excute('update automated_main_querrydifftask set es_select_status=1,api_count={}'.format(api_count))
returnresponse_success()
defget(self,request,task_id,*args,**kwargs):
"""
运行任务
:param request:
:param args:
:param kwargs:
:return:
"""
iftask_id=='':
returnresponse.HttpResponseBadRequest()
db=DbRecordOpt()
t='select qt.id,qt.task_name,qt.opt_num,qt.status,ae.api_title as source_url, aet.api_title as target_url from automated_main_querrydifftask qt LEFT JOIN automated_main_apienvironment ae on qt.source_env_id=ae.id LEFT JOIN automated_main_apienvironment aet on aet.id=qt.target_env_id where qt.id={}'.format(
list_sql="select qdt.*,apj.api_project_name as project_name,aer.api_title as source, aert.api_title as target from automated_main_querrydifftask qdt left join automated_main_apiproject apj on apj.id=qdt.project_id left join automated_main_apienvironment aer on aer.id=qdt.source_env_id left join automated_main_apienvironment aert on aert.id=qdt.target_env_id where 1=1"
iflen(param.get('taskName',list()))>0:
list_sql=list_sql+" and qdt.task_name like '%{}%'".format(param.get('taskName')[0])