MCPcopy Index your code
hub / github.com/Tencent/CodeAnalysis / load_tools

Method load_tools

client/node/quicktask/toolloader.py:25–69  ·  view source on GitHub ↗
(args)

Source from the content-addressed store, hash-verified

23class 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
72if __name__ == '__main__':

Callers 1

mainMethod · 0.80

Calls 15

UserInputClass · 0.90
ToolConfigLoaderClass · 0.90
RetryDogServerClass · 0.90
NodeErrorClass · 0.90
ToolLoaderClass · 0.90
format_languagesMethod · 0.80
load_configMethod · 0.80
load_tool_configMethod · 0.80
get_server_urlMethod · 0.80
get_scan_tasksMethod · 0.80
exceptionMethod · 0.80

Tested by

no test coverage detected