Beispiel #1
0
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, {}
Beispiel #2
0
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, {}
Beispiel #3
0
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, {}