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

Class SourceManager

client/task/sourcemgr.py:99–241  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

97
98
99class SourceManager(object):
100 def __init__(self, params, task_type, tool, have_next=False, have_last=False):
101 """
102 资源管理构造函数
103 :param params: 传入的参数信息
104 :param task_type: task类型
105 """
106 self.task_type = task_type
107 self.params = params
108 self.tool = tool
109 # 表明task所处的状态,用于控制数据传递
110 self.have_next = have_next
111 self.have_last = have_last
112 self.inc_src = IncSourceMgr(self.params["scm_url"], self.tool.set_inc_source_type())
113 self.src_loader = SourceDirLoader(params, task_type, tool, self.inc_src)
114
115 def pre_task(self):
116 """
117 task前置函数,用于数据拉取与数据传递接收
118 :return: 传递给task的参数
119 """
120 if self.task_type is CompileTask:
121 return self._pre_compile()
122 elif self.task_type is AnalyzeTask:
123 return self._pre_analyze()
124 elif self.task_type is DataHandleTask:
125 return self._pre_result()
126 raise SourceMgrError("task类型错误:%s" % str(self.task_type))
127
128 def done_task(self, result):
129 """
130 task结果处理函数,用于进行数据传递发送与中间数据上报
131 :param result:
132 :return:
133 """
134 if self.task_type is CompileTask:
135 return self._done_compile(result)
136 elif self.task_type is AnalyzeTask:
137 return self._done_analyze(result)
138 elif self.task_type is DataHandleTask:
139 return self._done_result(result)
140 raise SourceMgrError("task类型错误:%s" % str(self.task_type))
141
142 def _pre_compile(self):
143 """
144 编译前置资源操作:
145 1. 确认是否有增量资源可以拉取
146 2. 确认是否存在远程增量资源可以拉取
147 3. 通过scm接口直接拉取代码
148 :return: 加入source_dir,work_dir
149 """
150 logger.info("pre_compile start.")
151 self.src_loader.load_source_dir()
152 logger.info("pre_compile done.")
153 return self.params
154
155 def _pre_analyze(self):
156 """

Callers 1

taskrunnerMethod · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected