mirror of
https://gitlab.com/crafty-controller/crafty-4.git
synced 2024-08-30 18:23:09 +00:00
Put try catch around move block
Reset run command, executable, log path if abs
This commit is contained in:
parent
b4e47151ce
commit
b3fba650e7
@ -1027,17 +1027,31 @@ class Controller:
|
||||
self.helper.websocket_helper.broadcast_page(
|
||||
"/panel/panel_config", "move_status", "Checking dir"
|
||||
)
|
||||
if self.management.get_master_server_dir() == server_dir:
|
||||
current_master = self.helper.wtol_path(
|
||||
HelpersManagement.get_master_server_dir()
|
||||
)
|
||||
if current_master == server_dir:
|
||||
logger.info(
|
||||
"Admin tried to change server dir to current server dir. Canceling..."
|
||||
)
|
||||
self.helper.websocket_helper.broadcast_page(
|
||||
"/panel/panel_config",
|
||||
"move_status",
|
||||
"done",
|
||||
)
|
||||
return
|
||||
if self.helper.is_subdir(server_dir, self.management.get_master_server_dir()):
|
||||
if self.helper.is_subdir(server_dir, current_master):
|
||||
logger.info(
|
||||
"Admin tried to change server dir to be inside a sub directory of the"
|
||||
" current server dir. This will result in a copy loop."
|
||||
)
|
||||
self.helper.servers_dir = server_dir
|
||||
self.helper.websocket_helper.broadcast_page(
|
||||
"/panel/panel_config",
|
||||
"move_status",
|
||||
"done",
|
||||
)
|
||||
return
|
||||
|
||||
self.helper.websocket_helper.broadcast_page(
|
||||
"/panel/panel_config", "move_status", "Checking permissions"
|
||||
)
|
||||
@ -1052,11 +1066,12 @@ class Controller:
|
||||
},
|
||||
)
|
||||
return
|
||||
current_master = self.helper.wtol_path(
|
||||
HelpersManagement.get_master_server_dir()
|
||||
)
|
||||
# set the cached serve dir
|
||||
self.helper.servers_dir = server_dir
|
||||
# set DB server dir
|
||||
HelpersManagement.set_master_server_dir(server_dir)
|
||||
servers = self.servers.get_all_defined_servers()
|
||||
# move the servers
|
||||
for server in servers:
|
||||
server_path = server.get("path")
|
||||
new_server_path = os.path.join(
|
||||
@ -1068,17 +1083,29 @@ class Controller:
|
||||
"move_status",
|
||||
f"Moving {server.get('server_name')}",
|
||||
)
|
||||
self.file_helper.move_dir(
|
||||
server_path,
|
||||
new_server_path,
|
||||
)
|
||||
try:
|
||||
self.file_helper.move_dir(
|
||||
server_path,
|
||||
new_server_path,
|
||||
)
|
||||
except FileExistsError as e:
|
||||
logger.error(f"Failed to move server with error: {e}")
|
||||
|
||||
server_obj = self.servers.get_server_obj(server.get("server_id"))
|
||||
|
||||
# reset executable path
|
||||
if current_master in server["executable"]:
|
||||
server_obj.executable = str(server["executable"]).replace(
|
||||
current_master, server_dir
|
||||
)
|
||||
# reset run command path
|
||||
if current_master in server["execution_command"]:
|
||||
server_obj.executable = str(server["execution_command"]).replace(
|
||||
server_obj.execution_command = str(server["execution_command"]).replace(
|
||||
current_master, server_dir
|
||||
)
|
||||
# reset log path
|
||||
if current_master in server["log_path"]:
|
||||
server_obj.log_path = str(server["log_path"]).replace(
|
||||
current_master, server_dir
|
||||
)
|
||||
server_obj.path = new_server_path
|
||||
|
Loading…
Reference in New Issue
Block a user