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

Class NodeMgr

client/node/servertask/nodemgr.py:25–58  ·  view source on GitHub ↗

本地节点管理

Source from the content-addressed store, hash-verified

23
24
25class NodeMgr(object):
26 """本地节点管理"""
27
28 def get_docker_uuid(self, create_from, tag):
29 """如果从docker创建,获取到docker的主机名,与标签一起拼接成为节点唯一标识NODE_UUID"""
30 if create_from and "docker" == create_from:
31 host_name = socket.gethostname()
32 return f"{tag}-{host_name}"
33 return None
34
35 def register_node(self, server, tag=None, org_sid=None, create_from=None):
36 '''用本地node_uuid向server注册,获取server给的node_id。
37 如果node_id和本地存储node_id不一致,则抛出异常。
38 '''
39 if not tag:
40 tag = app.settings.OS_TAG_MAP[sys.platform]
41 node_uuid = app.persist_data.get('NODE_UUID')
42 if not node_uuid:
43 node_uuid = self.get_docker_uuid(create_from, tag)
44 if not node_uuid:
45 node_uuid = uuid.uuid1().hex
46 app.persist_data['NODE_UUID'] = node_uuid
47
48 data = {
49 "uuid": node_uuid,
50 "tag": tag,
51 "os_info": app.settings.PLATFORMS[sys.platform],
52 "org_sid": org_sid # 为空时,表示为公共节点,不为空时,表示指定团队的节点
53 }
54 if create_from:
55 data["create_from"] = create_from
56 node_id = server.register(data)
57 LogPrinter.info('node(%s) registered in server node id:%s', node_uuid, node_id)
58 app.persist_data['NODE_ID'] = node_id
59
60
61class HostNetMgr(object):

Callers 1

runMethod · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected