MCPcopy Create free account
hub / github.com/aaPanel/BaoTa / monitor_node_once

Function monitor_node_once

mod/project/node/nodeutil/base.py:1056–1130  ·  view source on GitHub ↗
(node_data: dict)

Source from the content-addressed store, hash-verified

1054
1055
1056def monitor_node_once(node_data: dict):
1057 from mod.project.node.dbutil import Node, ServerNodeDB, ServerMonitorRepo
1058 from mod.project.node.nodeutil.ssh_wrap import SSHApi
1059 from mod.base.ssh_executor import test_ssh_config
1060 try:
1061 if node_data["app_key"] == "local" and node_data["api_key"] == "local":
1062 return
1063 node_data["error"] = json.loads(node_data["error"])
1064 node_data["ssh_conf"] = json.loads(node_data["ssh_conf"])
1065 node, err = Node.from_dict(node_data)
1066 if err:
1067 public.print_log("节点数据解析错误:{}".format(err))
1068 return
1069
1070 if node_data["lpver"]:
1071 srv = LPanelNode(node.address, node.api_key, node.lpver)
1072 elif node.api_key or node.app_key:
1073 srv = ServerNode(node.address, node.api_key, node.app_key)
1074 else:
1075 srv =SSHApi(**node_data["ssh_conf"])
1076
1077 data, err = srv.get_net_work()
1078 if err:
1079 node.error_num += 1
1080 node.error = {
1081 "msg": err,
1082 "time": int(time.time())
1083 }
1084 if node.error_num >= 2:
1085 node.status = 0
1086 ServerMonitorRepo().remove_cache(node.id)
1087
1088 ServerNodeDB().update_node(node)
1089
1090 else:
1091 if node.error_num > 0:
1092 node.error_num = 0
1093 node.error = {}
1094 node.status = 1
1095 ServerNodeDB().update_node(node)
1096
1097 if data:
1098 repo = ServerMonitorRepo()
1099 repo.save_server_status(node.id, data)
1100 if repo.is_reboot_wait(node.server_ip):
1101 repo.set_wait_reboot(node.server_ip, False)
1102 if not node_data["ssh_test"] and not node_data["ssh_conf"] and not isinstance(srv, SSHApi):
1103 ssh_key, err = srv.read_ssh_key()
1104 if err:
1105 public.print_log("获取SSH密钥失败:{}".format(err))
1106 return
1107 port = srv.get_sshd_port()
1108 if not port:
1109 public.print_log("获取SSH服务端口失败")
1110 return
1111
1112 conf = {
1113 "host": srv.node_server_ip,

Callers 2

wait_for_rebootMethod · 0.85
wait_for_rebootMethod · 0.85

Calls 15

get_net_workMethod · 0.95
save_server_statusMethod · 0.95
is_reboot_waitMethod · 0.95
set_wait_rebootMethod · 0.95
SSHApiClass · 0.90
ServerMonitorRepoClass · 0.90
ServerNodeDBClass · 0.90
test_ssh_configFunction · 0.90
LPanelNodeClass · 0.85
ServerNodeClass · 0.85
timeMethod · 0.80
set_node_ssh_confMethod · 0.80

Tested by

no test coverage detected