def get_analysis_logs(analysis): # 获取分析任务运行日志 url, success_code, error_code = get_task_interface('log_uri') serial_number = analysis.serial_number payload = { 'serial_number': serial_number, } try: resp = requests.post(url, data=json.dumps(payload), headers=get_headers(), timeout=60) api_logger.debug(f'resp, 返回:{resp}') results = json.loads(resp.text) api_logger.debug(f'results, 返回:{results}') if results.get('code', False): if str(results['code']) == success_code: api_logger.debug(f'成功获取分析任务运行日志, 返回:{results}') return True, results['code'], results['messages'], results[ 'results'] if str(results['code']) == error_code: api_logger.warning(f'分析任务获取运行日志失败, 返回:{results}') return False, results['code'], results['messages'], results[ 'results'] api_logger.warning(f'获取分析任务运行日志获得未知返回码, 返回:{results}') return False, 400, '获取分析任务运行日志获得未知返回码', results else: api_logger.warning(f'获取分析任务日志无法获取返回码, 返回:{results}') return False, 400, '获取分析任务日志无法获取返回码', results except Exception as request_error: error_messages = f'获取分析任务运行日志请求发生错误:{request_error}' api_logger.error(error_messages) return False, 500, error_messages, {}
def continue_run_analysis(analysis): # 继续分析任务 url, success_code, error_code = get_task_interface('continue_uri') serial_number = analysis.serial_number payload = { 'serial_number': serial_number, } try: resp = requests.post(url, data=json.dumps(payload), headers=get_headers(), timeout=60) results = json.loads(resp.text) api_logger.debug(f'continue_run results: results') if results.get('code', False): if str(results['code']) == success_code: api_logger.debug(f'成功继续运行分析任务, 返回:{results}') return True, results['code'], results['messages'], results[ 'results'] if str(results['code']) == error_code: api_logger.warning(f'分析任务继续运行失败, 返回:{results}') return False, results['code'], results['messages'], results[ 'results'] api_logger.warning(f'继续运行分析任务获得未知返回码, 返回:{results}') return False, 400, '停止分析任务获得未知返回码', results else: api_logger.warning(f'继续运行分析任务无法获取返回码, 返回:{results}') return False, 400, '继续运行分析任务无法获取返回码', results except Exception as request_error: error_messages = f'继续运行分析任务请求发生错误:{request_error}' api_logger.error(error_messages) return False, 500, error_messages, {}
def start_analysis(analysis): # 启动分析任务 url, success_code, error_code = get_task_interface('start_uri') serial_number = analysis.serial_number if analysis.analysis_module: analysis_module_name = analysis.analysis_module.name analysis_module_version = analysis.analysis_module.version analysis_module_path = analysis.analysis_module.file_uri else: analysis_module_name = '' analysis_module_version = '' analysis_module_path = '' analysis_parameters = json.loads(analysis.analysis_parameter) main_command = analysis.command command = f'{main_command} {analysis_module_path}' for parameter in analysis_parameters: command = f'{command} {parameter["command_tag"]} {parameter["parameter_key"]} {parameter["parameter_value"]}' payload = { 'serial_number': serial_number, 'command': command, 'main_command': main_command, 'analysis_module_name': analysis_module_name, 'analysis_module_version': analysis_module_version, 'analysis_module_path': analysis_module_path, 'analysis_parameters': analysis_parameters, } api_logger.debug(f'payload: {payload}') try: resp = requests.post(url, data=json.dumps(payload), headers=get_headers(), timeout=60) results = json.loads(resp.text) api_logger.debug(f'results: {results}') if results.get('code', False): if str(results['code']) == success_code: api_logger.debug(f'成功启动分析任务, 返回:{results}') return True, results['code'], results['messages'], results[ 'results'] if str(results['code']) == error_code: api_logger.warning(f'分析任务启动失败, 返回:{results}') return False, results['code'], results['messages'], results[ 'results'] api_logger.warning(f'启动分析任务获得未知返回码, 返回:{results}') return False, 400, '启动分析任务获得未知返回码', results else: api_logger.warning(f'启动分析任务无法获取返回码, 返回:{results}') return False, 400, '启动分析任务无法获取返回码', results except Exception as request_error: error_messages = f'启动分析任务启请求发生错误:{request_error}' api_logger.error(error_messages) return False, 500, error_messages, {}