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

Class CodeDogApiServer

client/util/api/dogapi.py:29–470  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

27
28
29class CodeDogApiServer(object):
30 def __init__(self, token, server_url):
31
32 self._headers = {
33 'CONTENT-TYPE': 'application/json',
34 'NODE-IDENTITY': '1',
35 'Authorization': 'Token %s' % token
36 }
37 self._server_url = server_url
38
39 def get_data_from_result(self, response):
40 """
41 Analysis返回格式调整,不具备通用性,需要特殊适配
42 """
43 return_data = response.read()
44 return_str = return_data.decode("utf8")
45 # 可能为空字符串,直接返回,不需要转换json
46 if not return_str:
47 return return_str
48 result = json.loads(return_str)
49 if isinstance(result, dict):
50 if result.get("data") is not None and result.get("code") is not None \
51 and result.get("status_code") is not None:
52 return result["data"]
53 return result
54
55 def job_heart_beat(self, org_sid, team_name, repo_id, project_id, job_id):
56 """任务心跳上报
57
58 :param job_id: 任务job id
59 :return:
60 """
61 rel_url = f"api/orgs/{org_sid}/teams/{team_name}/repos/{repo_id}/projects/{project_id}/jobs/{job_id}/tasksbeat/"
62 CodeDogHttpClient(self._server_url, rel_url, headers=self._headers).post()
63
64 def update_task_progress(self, task_params, node_id, message, percent):
65 """任务进度信息上报
66
67 :param node_id: 节点标识号
68 :param job_id: 项目标识号
69 :param task_id: 任务标识号
70 :param message: str, 进度信息
71 :param percent: int, 进度百分比
72 :return:
73 """
74 rel_url = "api/orgs/%s/teams/%s/repos/%s/projects/%s/" \
75 "jobs/%s/tasks/%s/progresses/" % (task_params["org_sid"],
76 task_params["team_name"],
77 task_params["repo_id"],
78 task_params["project_id"],
79 task_params["job_id"],
80 task_params["task_id"])
81 data = {
82 "message": message,
83 "progress_rate": percent,
84 "task": task_params["task_id"],
85 "node": node_id
86 }

Callers 1

get_api_serverMethod · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected