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

Method restart_update

mod/project/java/project_update.py:69–114  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

67 return self.j_project._start_spring_boot_project(project_data, write_systemd_file, need_wait)
68
69 def restart_update(self) -> dict:
70 project_data = self.j_project.get_project_find(self.project_name)
71 if not project_data:
72 return json_response(False, msg="项目不存在")
73
74 project_config = project_data['project_config']
75 old_jar = project_config['project_jar']
76 if self.new_jar != old_jar:
77 if not os.path.isfile(self.new_jar):
78 return json_response(False, msg="项目jar包不存在")
79
80 project_config['jar_path'] = os.path.dirname(self.new_jar)
81 project_config['project_jar'] = self.new_jar
82 old_jar_name = os.path.basename(old_jar)
83 project_cmd_list = project_config['project_cmd'].split(" ")
84 for i in range(len(project_cmd_list)):
85 if old_jar_name in project_cmd_list[i]:
86 project_cmd_list[i] = self.new_jar
87 break
88
89 new_project_cmd = " ".join(project_cmd_list)
90 project_config['project_cmd'] = new_project_cmd
91 project_config["change_flag"] = True
92
93 s_admin = RealServer()
94 server_name = "spring_" + project_config["project_name"] + project_config.get("server_name_suffix", "")
95 if s_admin.daemon_status(server_name)["msg"] == "服务不存在!":
96 self.j_project.stop_by_kill_pid(project_data)
97 if os.path.isfile(project_config["pids"]):
98 os.remove(project_config["pids"])
99 return self.start_spring_project(project_data, write_systemd_file=True, need_wait=False)
100
101 if "change_flag" in project_config and project_config.get("change_flag", False):
102 del project_config["change_flag"]
103 s_admin.daemon_admin(server_name, "stop")
104 s_admin.del_daemon(server_name)
105 self.j_project.stop_by_kill_pid(project_data)
106 if os.path.isfile(project_config["pids"]):
107 os.remove(project_config["pids"])
108
109 public.M("sites").where("id=?", (project_data["id"],)).update(
110 {"project_config": json.dumps(project_config)}
111 )
112 return self.start_spring_project(project_data, write_systemd_file=True)
113 else:
114 return self.start_spring_project(project_data, write_systemd_file=False)
115
116 # 实际执行启动的线程
117 def run_task(self):

Callers 1

Calls 15

daemon_statusMethod · 0.95
start_spring_projectMethod · 0.95
daemon_adminMethod · 0.95
del_daemonMethod · 0.95
json_responseFunction · 0.90
RealServerClass · 0.90
dirnameMethod · 0.80
basenameMethod · 0.80
stop_by_kill_pidMethod · 0.80
get_project_findMethod · 0.45
splitMethod · 0.45
joinMethod · 0.45

Tested by

no test coverage detected