(args)
| 23 | class QuickScanToolLoader(object): |
| 24 | @staticmethod |
| 25 | def load_tools(args): |
| 26 | if args.language: |
| 27 | languages = UserInput().format_languages(args.language) |
| 28 | else: |
| 29 | languages = [] |
| 30 | |
| 31 | # 拉取quick scan配置库 |
| 32 | QuickScanConfigLoader.load_config() |
| 33 | |
| 34 | if args.label: |
| 35 | labels = StringMgr.str_to_list(args.label) |
| 36 | else: |
| 37 | labels = [] |
| 38 | |
| 39 | # 从git拉取工具配置库 |
| 40 | ToolConfigLoader().load_tool_config() |
| 41 | # LogPrinter.info(f"---> labels: {labels}") |
| 42 | if args.scheme_template_id: |
| 43 | if args.token and args.org_sid: # 通过server获取指定的分析方案模板的任务参数 |
| 44 | LogPrinter.info(f"token and scheme_template_id are set, get task config from server ...") |
| 45 | server_url = LocalConfig.get_server_url() |
| 46 | dog_server = RetryDogServer(server_url, args.token).get_api_server(retry_times=2) |
| 47 | proj_conf = dog_server.get_jobconfs_by_scheme_template(args.scheme_template_id, args.org_sid) |
| 48 | tool_tasks = proj_conf["tasks"] |
| 49 | else: |
| 50 | raise NodeError(code=errcode.E_NODE_TASK_CONFIG, msg="已输入scheme_template_id, " |
| 51 | "但缺少--token和--org-sid参数, " |
| 52 | "无法获取到分析方案模板, 请补充参数!") |
| 53 | else: |
| 54 | tool_tasks = QuickScan.get_scan_tasks(languages, labels, {}) |
| 55 | tool_names = [task['task_name'] for task in tool_tasks] |
| 56 | |
| 57 | custom_tools = [] |
| 58 | for tool_name in tool_names: |
| 59 | try: |
| 60 | __import__("tool." + tool_name) |
| 61 | except ModuleNotFoundError: |
| 62 | # 记录自定义工具列表 |
| 63 | custom_tools.append(tool_name) |
| 64 | except: |
| 65 | LogPrinter.exception("encounter error.") |
| 66 | pass |
| 67 | |
| 68 | LogPrinter.info("Initing other tools ...") |
| 69 | ToolLoader(tool_names=tool_names, task_list=tool_tasks, custom_tools=custom_tools, include_common=False).git_load_tools(print_enable=False) |
| 70 | |
| 71 | |
| 72 | if __name__ == '__main__': |
no test coverage detected