获取单个任务结果 :return:
(task, job_web_url, log_url, data_url)
| 41 | class ResultCheck(object): |
| 42 | @staticmethod |
| 43 | def get_task_result(task, job_web_url, log_url, data_url): |
| 44 | """ |
| 45 | 获取单个任务结果 |
| 46 | :return: |
| 47 | """ |
| 48 | with open(task.request_file, 'r') as fp: |
| 49 | task_request = json.load(fp) |
| 50 | with open(task.response_file, 'r') as fp: |
| 51 | task_response = json.load(fp) |
| 52 | |
| 53 | error_code = task_response['status'] |
| 54 | error_msg = task_response['message'] |
| 55 | if error_code == 0: |
| 56 | task_result = TaskResult(task_request['id'], task_request['task_name'], |
| 57 | task.request_file, task.response_file, task.task_log, log_url, data_url) |
| 58 | return error_code, error_msg, True, task_result |
| 59 | else: |
| 60 | # 有一个任务失败,退出该项目的扫描,整个扫描失败 |
| 61 | task_display_name = ToolDisplay.get_tool_display_name(task_request) |
| 62 | error_msg = f"任务({task_display_name})扫描失败: {error_msg}" |
| 63 | if not QuickScan.is_quick_scan(): |
| 64 | error_msg += f"\n请查看本地日志文件({task.task_log})" |
| 65 | error_msg += ",\n或前往 %s (点击异常子任务->下载进程日志)" % job_web_url |
| 66 | error_msg += "查看失败原因." |
| 67 | logger.error(error_msg) |
| 68 | if QuickScan.is_quick_scan(): |
| 69 | with open(task.task_log, "r") as rf: |
| 70 | log_text = rf.read() |
| 71 | quickscan_msg = f"请查看以下执行日志排查原因:\n\n" |
| 72 | quickscan_msg += "-" * 100 |
| 73 | quickscan_msg += f"\n{log_text}" |
| 74 | quickscan_msg += "-" * 100 |
| 75 | quickscan_msg += "\n" |
| 76 | logger.error(quickscan_msg) |
| 77 | |
| 78 | task_result = TaskResult(task_request['id'], task_request['task_name'], task.request_file, |
| 79 | task.response_file, task.task_log, log_url, data_url) |
| 80 | return error_code, error_msg, False, task_result |
| 81 | |
| 82 | @staticmethod |
| 83 | def upload_task_result(task, proj_id): |
no test coverage detected