def updateAps(): result = Auth.identify(Auth, request) if result['status'] and result['data']: fromData = request.json scheduling = Scheduling.query.get_or_404(fromData['scheduling_id']) schedulingJson = {} schedulingJson['scheduling_id'] = scheduling.scheduling_id schedulingJson['scheduling_title'] = scheduling.scheduling_title schedulingJson['scheduling_on'] = scheduling.scheduling_on schedulingJson['scheduling_cron'] = scheduling.scheduling_cron schedulingJson['email_address'] = scheduling.email_address taskCaseList = TaskCase.query.filter( TaskCase.scheduling_id == fromData["scheduling_id"]).all() task_jsonarray = [] for task in taskCaseList: task_dict = {} task_dict['task_id'] = task.task_id task_dict['case_id'] = task.case_id user_case = UserCase.query.get_or_404(task.case_id) task_dict['scheduling_id'] = task.scheduling_id task_dict['case_name'] = user_case.case_name task_dict['request_address'] = user_case.request_address task_jsonarray.append(task_dict) schedulingJson['caseData'] = task_jsonarray return jsonify(common.trueReturn(schedulingJson, '任务查询成功')) else: return jsonify(result)
def create_app(config_name=None): if config_name is None: config_name = os.getenv('FLASK_CONFIG', 'development') app = Flask('interface') app.config.from_object(config[config_name]) CORS(app, supports_credentials=True, resources=r'/*') auth = Auth() JWT(app, auth.authenticate, auth.identify) # 注册日志处理 register_logging(app) # 注册扩展(初始化) register_extensions(app) # 注册蓝本 register_blueprints(app) # 注册自定义shell命令 register_commands(app) # 注册错误处理函数 register_errors(app) # 注册shell 上下文处理函数 register_shell_context(app) # 注册模板上下文处理函数 register_template_context(app) register_request_handlers(app) return app
def update(): result = Auth.identify(Auth, request) if result['status'] and result['data']: fromData = request.json scheduling = Scheduling.query.get_or_404(fromData['scheduling_id']) scheduling.scheduling_title = fromData['scheduling_title'] scheduling.scheduling_cron = fromData['scheduling_cron'] scheduling.email_address = fromData['email_address'] db.session.commit() taskList = fromData['caseList'] TaskCase.query.filter( TaskCase.scheduling_id == fromData["scheduling_id"]).delete( synchronize_session=False) db.session.commit() for task in taskList: taskCase = TaskCase(scheduling_id=fromData['scheduling_id'], case_id=task['case_id']) db.session.add(taskCase) db.session.commit() # 删除任务 remove_task(fromData['scheduling_id']) # 添加任务 addtask(fromData, fromData['scheduling_id']) return jsonify(common.trueReturn('', '修改成功')) else: return jsonify(result)
def addjob(): """ 添加任务 :return: """ result = Auth.identify(Auth, request) if result['status'] and result['data']: fromData = request.json caseList = fromData['caseList'] cronStr = fromData['scheduling_cron'] scheduling_title = fromData['scheduling_title'] email_address = fromData['email_address'] cronStr = cronStr.replace("?", "*") cronStrValue = cronStr id = str(uuid.uuid1()).replace('-', '') scheduling = Scheduling(scheduling_id=id, scheduling_title=scheduling_title, scheduling_cron=str(cronStrValue), scheduling_on='0', email_address=email_address) db.session.add(scheduling) db.session.commit() for case in caseList: taskCase = TaskCase(scheduling_id=id, case_id=case['case_id']) db.session.add(taskCase) db.session.commit() addtask(fromData, id) return jsonify(common.trueReturn('', '任务新增成功')) else: return jsonify(result)
def getReportCaseList(): result = Auth.identify(Auth, request) if result['status'] and result['data']: fromData = request.json casePass = [ Report.uc_id == fromData['case_id'], Report.scheduling_id == fromData['scheduling_id'] ] reportList = Report.query.filter(*casePass).all() report_dict = [] for report in reportList: report_json = {} report_json['report_id'] = report.report_id report_json['report_title'] = report.report_title report_json['report_url'] = report.report_url report_json['report_env_param'] = report.report_env_param report_json['report_env_status'] = report.report_env_status report_json['report_env_time'] = report.report_env_time report_json['report_env_response'] = report.report_env_response report_json['report_env_pass'] = report.report_env_pass report_dict.append(report_json) return jsonify(common.trueReturn(report_dict, '日志列表查询成功')) else: return jsonify(result)
def getLogCaseList(): """ case列表 :return: """ result = Auth.identify(Auth, request) if result['status'] and result['data']: fromData = request.json param = [Report.scheduling_id == fromData['scheduling_id']] reporteList = Report.query.filter(*param).group_by( Report.uc_id).order_by(Report.report_create_time.desc()).all() caseList = [] log_case_pass = 0 for report in reporteList: case = {} user_case = UserCase.query.get_or_404(report.uc_id) case['log_case_name'] = user_case.case_name case['log_case_id'] = user_case.uc_id casePass = [ Report.report_env_pass == '1', Report.uc_id == report.uc_id ] casePass = Report.query.filter(*casePass).all() if len(casePass) > 0: log_case_pass = 1 else: log_case_pass = 0 case['log_case_pass'] = log_case_pass caseList.append(case) # vueExecl 表格下载 loadCaseList = getLoadCaseList(fromData['scheduling_id']) resBody = {} resBody['caseList'] = caseList resBody['loadCaseList'] = loadCaseList return jsonify(common.trueReturn(resBody, '日志列表查询成功'))
def resume(): result = Auth.identify(Auth, request) if result['status'] and result['data']: fromData = request.json resumetask(fromData["scheduling_id"]) scheduling = Scheduling.query.get_or_404(fromData['scheduling_id']) scheduling.scheduling_on = '0' db.session.commit() return jsonify(common.trueReturn('', '恢复任务')) else: return jsonify(result)
def index(): """ 任务查询 :param page: 页数 :return: """ result = Auth.identify(Auth, request) if result['status'] and result['data']: fromData = json.loads(request.args['0']) page = fromData['page'] param = [] # 拼接查询条件 if fromData['scheduling_title'] != 'None' and len( fromData['scheduling_title']) > 0: param.append( Scheduling.scheduling_title.like("%" + fromData['scheduling_title'] + "%")) # 每页显示数 per_page = current_app.config['INTERFACE_PER_PAGE'] # 分页对象 pagination = Scheduling.query.filter(*param).paginate( page, per_page=per_page) # 总条数 count = Scheduling.query.filter(*param).count() # # 总页数 page_count = math.ceil(count / per_page) # print('总页数 ', page_count) # 当前页数的记录列表 schedulingList = pagination.items scheduling_list = [] for item in schedulingList: scheduling_dic = {} scheduling_dic['scheduling_id'] = item.scheduling_id scheduling_dic['scheduling_title'] = item.scheduling_title scheduling_dic['scheduling_cron'] = item.scheduling_cron scheduling_dic['scheduling_on'] = item.scheduling_on scheduling_dic['email_address'] = item.email_address scheduling_list.append(scheduling_dic) list_dic = {} list_dic['list'] = scheduling_list list_dic['count'] = count list_dic['page_count'] = page_count list_dic['per_page'] = per_page get_task() return jsonify(common.trueReturn(list_dic, '任务查询成功')) else: return jsonify(result)
def deleteType(): """ 删除case :return: """ result = Auth.identify(Auth, request) if result['status'] and result['data']: report_case_type = request.json.get('report_case_type') Report.query.filter_by(report_case_type=report_case_type).delete( synchronize_session=False) db.session.commit() return jsonify(common.trueReturn('', '日志删除成功')) else: return jsonify(result)
def getReportList(): """ 查询case报告列表 :return: """ result = Auth.identify(Auth, request) if result['status'] and result['data']: fromData = json.loads(request.args['0']) case_id = fromData['case_id'] # page = fromData['page'] param = [Report.uc_id == case_id] # 拼接查询条件 # 每页显示数 # per_page = 5 # 分页对象 # pagination = Report.query.filter(*param).group_by(Report.report_case_type).order_by( # Report.report_create_time).paginate(page, per_page=per_page) # # 总条数 # count = Report.query.filter(*param).group_by(Report.report_case_type).count() # # # 总页数 # page_count = math.ceil(count / per_page) # # print('总页数 ', page_count) # # 当前页数的记录列表 # reportList = pagination.items reportList = Report.query.filter(*param).group_by( Report.report_case_type).order_by( Report.report_create_time.desc()).all() report_dict = [] for report in reportList: report_json = {} report_json['report_id'] = report.report_id report_json['report_title'] = report.report_title report_json['report_case_type'] = report.report_case_type report_json['report_create_time'] = report.report_create_time report_json['case_id'] = report.uc_id report_dict.append(report_json) list_dic = {} list_dic['list'] = report_dict # list_dic['count'] = count # list_dic['page_count'] = page_count # list_dic['per_page'] = per_page return jsonify(common.trueReturn(list_dic, '日志列表查询成功')) else: return jsonify(result)
def delete(): """ 删除任务 :return: """ result = Auth.identify(Auth, request) if result['status'] and result['data']: fromData = request.json Scheduling.query.filter_by( scheduling_id=fromData["scheduling_id"]).delete( synchronize_session=False) db.session.commit() TaskCase.query.filter( TaskCase.scheduling_id == fromData["scheduling_id"]).delete( synchronize_session=False) db.session.commit() get_task() print(fromData["scheduling_id"]) remove_task(fromData["scheduling_id"]) return jsonify(common.trueReturn('', '删除成功')) else: return jsonify(result)
def startExecution(): result = Auth.identify(Auth, request) if result['status'] and result['data']: fromData = request.json taskCaseList = TaskCase.query.filter( TaskCase.scheduling_id == fromData["scheduling_id"]).all() task_jsonarray = [] for task in taskCaseList: task_dict = {} task_dict['task_id'] = task.task_id task_dict['case_id'] = task.case_id user_case = UserCase.query.get_or_404(task.case_id) task_dict['scheduling_id'] = task.scheduling_id task_dict['case_name'] = user_case.case_name task_dict['request_address'] = user_case.request_address task_jsonarray.append(task_dict) # 删除该调度日志 test_caseList(task_jsonarray, fromData["scheduling_id"], email_address=fromData["email_address"]) return jsonify(common.trueReturn('', '执行完成')) else: return jsonify(result)
def getReport(): """ 查询case报告 :return: """ result = Auth.identify(Auth, request) if result['status'] and result['data']: fromData = json.loads(request.args['0']) case_id = fromData['case_id'] page = fromData['page'] param = [Report.uc_id == case_id] try: param.append( Report.report_case_type == fromData['report_case_type']) except Exception as e: report = Report.query.with_entities( Report.report_create_time, Report.report_case_type).filter( Report.uc_id == case_id).order_by( Report.report_create_time.desc()).first() param.append(Report.report_case_type == report.report_case_type) # param.append(Report.report_create_time == report.report_create_time) # 拼接查询条件 if fromData['report_url'] != 'None' and len( fromData['report_url']) > 0: param.append( Report.report_url.like("%" + fromData['report_url'] + "%")) if fromData['report_env_pass'] != 'None' and len( fromData['report_env_pass']) > 0: param.append(Report.report_env_pass == fromData['report_env_pass']) # 每页显示数 per_page = 5 # 分页对象 pagination = Report.query.filter(*param).paginate(page, per_page=per_page) # 总条数 count = Report.query.filter(*param).count() # # 总页数 page_count = math.ceil(count / per_page) # print('总页数 ', page_count) # 当前页数的记录列表 reportList = pagination.items report_dict = [] for report in reportList: report_json = {} report_json['report_id'] = report.report_id report_json['report_title'] = report.report_title report_json['report_url'] = report.report_url report_json['report_env_param'] = report.report_env_param report_json['report_env_status'] = report.report_env_status report_json['report_env_time'] = report.report_env_time report_json['report_env_response'] = report.report_env_response report_json['report_env_pass'] = report.report_env_pass report_dict.append(report_json) list_dic = {} list_dic['list'] = report_dict list_dic['count'] = count list_dic['page_count'] = page_count list_dic['per_page'] = per_page return jsonify(common.trueReturn(list_dic, '日志查询成功')) else: return jsonify(result)