Merge branch 'feature/relative-paths-logs-jar' into 'master'

Use relative paths for the jarfile and logs

See merge request crafty-controller/crafty-4!347
This commit is contained in:
Craft Breadth 2022-06-16 00:00:51 +00:00
commit fb73f0a200
8 changed files with 27 additions and 28 deletions

View File

@ -529,8 +529,7 @@ class ServersController(metaclass=Singleton):
def check_for_old_logs(self):
servers = HelperServers.get_all_defined_servers()
for server in servers:
logs_path = os.path.split(server["log_path"])[0]
latest_log_file = os.path.split(server["log_path"])[1]
logs_path, latest_log_file = os.path.split(server["log_path"])
logs_delete_after = int(server["logs_delete_after"])
if logs_delete_after == 0:
continue

View File

@ -280,9 +280,7 @@ class Controller:
return str(int(gibs * 1024))
def _wrap_jar_if_windows():
return (
f'"{full_jar_path}"' if Helpers.is_os_windows() else full_jar_path
)
return f'"{server_file}"' if Helpers.is_os_windows() else server_file
server_command = (
f"java -Xms{_gibs_to_mibs(min_mem)}M "
@ -339,8 +337,7 @@ class Controller:
stop_command = "stop"
log_location = data.get("log_location", "")
if log_location == "":
# TODO: different default log locations for server creation types
if log_location == "" and data["create_type"] == "minecraft_java":
log_location = "./logs/latest.log"
if data["monitoring_type"] == "minecraft_java":
@ -404,7 +401,6 @@ class Controller:
backup_path.replace(" ", "^ ")
server_file = f"{server}-{version}.jar"
full_jar_path = os.path.join(server_dir, server_file)
# make the dir - perhaps a UUID?
Helpers.ensure_dir_exists(server_dir)
@ -433,15 +429,15 @@ class Controller:
server_command = (
f"java -Xms{Helpers.float_to_string(min_mem)}M "
f"-Xmx{Helpers.float_to_string(max_mem)}M "
f'-jar "{full_jar_path}" nogui'
f'-jar "{server_file}" nogui'
)
else:
server_command = (
f"java -Xms{Helpers.float_to_string(min_mem)}M "
f"-Xmx{Helpers.float_to_string(max_mem)}M "
f"-jar {full_jar_path} nogui"
f"-jar {server_file} nogui"
)
server_log_file = f"{server_dir}/logs/latest.log"
server_log_file = "./logs/latest.log"
server_stop = "stop"
new_id = self.register_server(
@ -458,7 +454,9 @@ class Controller:
)
# download the jar
self.server_jars.download_jar(server, version, full_jar_path, new_id)
self.server_jars.download_jar(
server, version, os.path.join(server_dir, server_file), new_id
)
return new_id
@ -534,7 +532,7 @@ class Controller:
f"-Xmx{Helpers.float_to_string(max_mem)}M "
f"-jar {full_jar_path} nogui"
)
server_log_file = f"{new_server_dir}/logs/latest.log"
server_log_file = "./logs/latest.log"
server_stop = "stop"
new_id = self.register_server(
@ -614,7 +612,7 @@ class Controller:
f"-jar {full_jar_path} nogui"
)
logger.debug("command: " + server_command)
server_log_file = f"{new_server_dir}/logs/latest.log"
server_log_file = "./logs/latest.log"
server_stop = "stop"
new_id = self.register_server(
@ -677,7 +675,7 @@ class Controller:
else:
server_command = f"./{server_exe}"
logger.debug("command: " + server_command)
server_log_file = "N/A"
server_log_file = ""
server_stop = "stop"
new_id = self.register_server(
@ -746,7 +744,7 @@ class Controller:
else:
server_command = f"./{server_exe}"
logger.debug("command: " + server_command)
server_log_file = "N/A"
server_log_file = ""
server_stop = "stop"
new_id = self.register_server(

View File

@ -1,5 +1,6 @@
import os
import html
import pathlib
import re
import logging
import time
@ -62,7 +63,9 @@ class AjaxHandler(BaseHandler):
if full_log:
log_lines = self.helper.get_setting("max_log_lines")
data = Helpers.tail_file(
Helpers.get_os_understandable_path(server_data["log_path"]),
# If the log path is absolute it returns it as is
# If it is relative it joins the paths below like normal
pathlib.Path(server_data["path"], server_data["log_path"]),
log_lines,
)
else:

View File

@ -70,12 +70,10 @@ class ApiServersServerActionHandler(BaseApiHandler):
FileHelpers.copy_dir(server_data.get("path"), new_server_path)
# TODO get old server DB data to individual variables
new_server_command = str(server_data.get("execution_command")).replace(
server_uuid, new_server_uuid
)
new_server_command = str(server_data.get("execution_command"))
new_server_log_file = str(
self.helper.get_os_understandable_path(server_data.get("log_path"))
).replace(server_uuid, new_server_uuid)
)
new_server_id = self.controller.servers.create_server(
new_server_name,

View File

@ -1,5 +1,6 @@
import html
import logging
import pathlib
import re
from app.classes.models.server_permissions import EnumPermissionsServer
from app.classes.shared.server import ServerOutBuf
@ -44,7 +45,9 @@ class ApiServersServerLogsHandler(BaseApiHandler):
if read_log_file:
log_lines = self.helper.get_setting("max_log_lines")
raw_lines = self.helper.tail_file(
self.helper.get_os_understandable_path(server_data["log_path"]),
# If the log path is absolute it returns it as is
# If it is relative it joins the paths below like normal
pathlib.Path(server_data["path"], server_data["log_path"]),
log_lines,
)

View File

@ -225,13 +225,11 @@ class ServerHandler(BaseHandler):
# TODO get old server DB data to individual variables
stop_command = server_data.get("stop_command")
new_server_command = str(
server_data.get("execution_command")
).replace(server_uuid, new_server_uuid)
new_server_command = str(server_data.get("execution_command"))
new_executable = server_data.get("executable")
new_server_log_file = str(
Helpers.get_os_understandable_path(server_data.get("log_path"))
).replace(server_uuid, new_server_uuid)
)
backup_path = os.path.join(self.helper.backup_path, new_server_uuid)
server_port = server_data.get("server_port")
server_type = server_data.get("type")

View File

@ -305,7 +305,7 @@
"serverIP": "Server IP",
"serverIPDesc": "IP Crafty should connect to for stats (Try a real ip instead of 127.0.0.1 if you have issues)",
"serverLogLocation": "Server Log Location",
"serverLogLocationDesc": "Absolute full path to the log file",
"serverLogLocationDesc": "Path to the log file",
"serverName": "Server Name",
"serverNameDesc": "What you wish to call this server",
"serverPath": "Server Working Directory",

View File

@ -328,7 +328,7 @@
"serverIP": "Palvelimen IP-osoite",
"serverIPDesc": "IP-osoite, johon Craftyn tulisi muodostaa yhteys tilastojen saamiseen (Kokeile todellista ip:tä \"127.0.0.1\" sijaan, jos sinulla on ongelmia)",
"serverLogLocation": "Palvelimen lokin sijainti",
"serverLogLocationDesc": "Absoluuttinen polku lokitiedostoon",
"serverLogLocationDesc": "Polku lokitiedostoon",
"serverName": "Palvelimen nimi",
"serverNameDesc": "Miksi haluat kutsua tätä palvelinta",
"serverPath": "Palvelimen työkansio",