mirror of
https://gitlab.com/crafty-controller/crafty-4.git
synced 2024-08-30 18:23:09 +00:00
Merge branch 'dev' into bug/edit-user-issues
This commit is contained in:
commit
102a470348
1
.gitignore
vendored
1
.gitignore
vendored
@ -20,6 +20,7 @@ venv.bak/
|
|||||||
.idea/
|
.idea/
|
||||||
/servers/
|
/servers/
|
||||||
/backups/
|
/backups/
|
||||||
|
/temp/
|
||||||
/docker/servers/
|
/docker/servers/
|
||||||
/docker/backups/
|
/docker/backups/
|
||||||
session.lock
|
session.lock
|
||||||
|
@ -8,6 +8,7 @@ None
|
|||||||
- Fix issue with stats pinging on slow starting servers ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/391))
|
- Fix issue with stats pinging on slow starting servers ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/391))
|
||||||
- Fix unhandled exeption when serverjars api returns 'None' ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/392))
|
- Fix unhandled exeption when serverjars api returns 'None' ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/392))
|
||||||
- Fix ajax issue with unzip on firefox ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/393))
|
- Fix ajax issue with unzip on firefox ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/393))
|
||||||
|
- Turn off verbose logging on Docker ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/394))
|
||||||
### Tweaks
|
### Tweaks
|
||||||
None
|
None
|
||||||
### Lang
|
### Lang
|
||||||
|
@ -53,7 +53,7 @@ EXPOSE 25500-25600
|
|||||||
|
|
||||||
# Start Crafty through wrapper
|
# Start Crafty through wrapper
|
||||||
ENTRYPOINT ["/crafty/docker_launcher.sh"]
|
ENTRYPOINT ["/crafty/docker_launcher.sh"]
|
||||||
CMD ["-v", "-d", "-i"]
|
CMD ["-d", "-i"]
|
||||||
|
|
||||||
# Add meta labels
|
# Add meta labels
|
||||||
ARG BUILD_DATE
|
ARG BUILD_DATE
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
[](https://github.com/psf/black)
|
[](https://github.com/psf/black)
|
||||||
[](https://www.python.org)
|
[](https://www.python.org)
|
||||||
[](https://gitlab.com/crafty-controller/crafty-4/-/releases)
|
[](https://gitlab.com/crafty-controller/crafty-4/-/releases)
|
||||||
[](https://gitlab.com/crafty-controller/crafty-4)
|
[](https://gitlab.com/crafty-controller/crafty-4)
|
||||||
[](https://gitlab.com/crafty-controller/crafty-4/-/commits/master)
|
[](https://gitlab.com/crafty-controller/crafty-4/-/commits/master)
|
||||||
|
|
||||||
# Crafty Controller 4.0.4-beta
|
# Crafty Controller 4.0.5-beta
|
||||||
> Python based Control Panel for your Minecraft Server
|
> Python based Control Panel for your Minecraft Server
|
||||||
|
|
||||||
## What is Crafty Controller?
|
## What is Crafty Controller?
|
||||||
|
@ -101,7 +101,7 @@ class FileHelpers:
|
|||||||
ziproot = path_to_zip
|
ziproot = path_to_zip
|
||||||
for file in files:
|
for file in files:
|
||||||
try:
|
try:
|
||||||
logger.info(f"backing up: {os.path.join(root, file)}")
|
logger.info(f"packaging: {os.path.join(root, file)}")
|
||||||
if os.name == "nt":
|
if os.name == "nt":
|
||||||
zip_file.write(
|
zip_file.write(
|
||||||
os.path.join(root, file),
|
os.path.join(root, file),
|
||||||
@ -115,7 +115,7 @@ class FileHelpers:
|
|||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.warning(
|
logger.warning(
|
||||||
f"Error backing up: {os.path.join(root, file)}!"
|
f"Error packaging: {os.path.join(root, file)}!"
|
||||||
f" - Error was: {e}"
|
f" - Error was: {e}"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -4,7 +4,6 @@ from pathlib import Path
|
|||||||
import shutil
|
import shutil
|
||||||
import time
|
import time
|
||||||
import logging
|
import logging
|
||||||
import tempfile
|
|
||||||
from peewee import DoesNotExist
|
from peewee import DoesNotExist
|
||||||
|
|
||||||
# TZLocal is set as a hidden import on win pipeline
|
# TZLocal is set as a hidden import on win pipeline
|
||||||
@ -85,27 +84,38 @@ class Controller:
|
|||||||
self.users.set_prepare(exec_user["user_id"])
|
self.users.set_prepare(exec_user["user_id"])
|
||||||
logger.info("Checking for previous support logs.")
|
logger.info("Checking for previous support logs.")
|
||||||
if exec_user["support_logs"] != "":
|
if exec_user["support_logs"] != "":
|
||||||
logger.info(
|
if os.path.exists(exec_user["support_logs"]):
|
||||||
f"Found previous support log request at {exec_user['support_logs']}"
|
logger.info(
|
||||||
)
|
f"Found previous support log request at {exec_user['support_logs']}"
|
||||||
if self.helper.validate_traversal(
|
)
|
||||||
tempfile.gettempdir(), exec_user["support_logs"]
|
if self.helper.validate_traversal(
|
||||||
):
|
os.path.join(self.project_root, "temp"), exec_user["support_logs"]
|
||||||
logger.debug("No transversal detected. Going for the delete.")
|
):
|
||||||
self.del_support_file(exec_user["support_logs"])
|
logger.debug("No transversal detected. Going for the delete.")
|
||||||
|
self.del_support_file(exec_user["support_logs"])
|
||||||
# pausing so on screen notifications can run for user
|
# pausing so on screen notifications can run for user
|
||||||
time.sleep(7)
|
time.sleep(7)
|
||||||
self.helper.websocket_helper.broadcast_user(
|
self.helper.websocket_helper.broadcast_user(
|
||||||
exec_user["user_id"], "notification", "Preparing your support logs"
|
exec_user["user_id"], "notification", "Preparing your support logs"
|
||||||
)
|
)
|
||||||
temp_dir = tempfile.mkdtemp()
|
self.helper.ensure_dir_exists(
|
||||||
temp_zip_storage = tempfile.mkdtemp()
|
os.path.join(self.project_root, "temp", str(exec_user["user_id"]))
|
||||||
full_temp = os.path.join(temp_dir, "support_logs")
|
)
|
||||||
os.mkdir(full_temp)
|
temp_dir = os.path.join(
|
||||||
|
self.project_root, "temp", str(exec_user["user_id"]), "support_logs"
|
||||||
|
)
|
||||||
|
|
||||||
|
self.helper.ensure_dir_exists(
|
||||||
|
os.path.join(self.project_root, "temp", str(exec_user["user_id"]), "zip")
|
||||||
|
)
|
||||||
|
temp_zip_storage = os.path.join(
|
||||||
|
self.project_root, "temp", str(exec_user["user_id"]), "zip"
|
||||||
|
)
|
||||||
|
os.mkdir(temp_dir)
|
||||||
temp_zip_storage = os.path.join(temp_zip_storage, "support_logs")
|
temp_zip_storage = os.path.join(temp_zip_storage, "support_logs")
|
||||||
crafty_path = os.path.join(full_temp, "crafty")
|
crafty_path = os.path.join(temp_dir, "crafty")
|
||||||
os.mkdir(crafty_path)
|
os.mkdir(crafty_path)
|
||||||
server_path = os.path.join(full_temp, "server")
|
server_path = os.path.join(temp_dir, "server")
|
||||||
os.mkdir(server_path)
|
os.mkdir(server_path)
|
||||||
if exec_user["superuser"]:
|
if exec_user["superuser"]:
|
||||||
defined_servers = self.servers.list_defined_servers()
|
defined_servers = self.servers.list_defined_servers()
|
||||||
@ -160,15 +170,14 @@ class Controller:
|
|||||||
"interval",
|
"interval",
|
||||||
seconds=1,
|
seconds=1,
|
||||||
id="logs_" + str(exec_user["user_id"]),
|
id="logs_" + str(exec_user["user_id"]),
|
||||||
args=[full_temp, temp_zip_storage + ".zip", exec_user],
|
args=[temp_dir, temp_zip_storage + ".zip", exec_user],
|
||||||
)
|
)
|
||||||
FileHelpers.make_archive(temp_zip_storage, temp_dir)
|
FileHelpers.make_compressed_archive(temp_zip_storage, temp_dir)
|
||||||
|
|
||||||
if len(self.helper.websocket_helper.clients) > 0:
|
if len(self.helper.websocket_helper.clients) > 0:
|
||||||
self.helper.websocket_helper.broadcast_user(
|
self.helper.websocket_helper.broadcast_user(
|
||||||
exec_user["user_id"],
|
exec_user["user_id"],
|
||||||
"support_status_update",
|
"support_status_update",
|
||||||
Helpers.calc_percent(full_temp, temp_zip_storage + ".zip"),
|
Helpers.calc_percent(temp_dir, temp_zip_storage + ".zip"),
|
||||||
)
|
)
|
||||||
|
|
||||||
temp_zip_storage += ".zip"
|
temp_zip_storage += ".zip"
|
||||||
|
@ -15,6 +15,7 @@ from app.classes.models.management import HelpersManagement
|
|||||||
from app.classes.models.users import HelperUsers
|
from app.classes.models.users import HelperUsers
|
||||||
from app.classes.controllers.users_controller import UsersController
|
from app.classes.controllers.users_controller import UsersController
|
||||||
from app.classes.shared.console import Console
|
from app.classes.shared.console import Console
|
||||||
|
from app.classes.shared.file_helpers import FileHelpers
|
||||||
from app.classes.shared.helpers import Helpers
|
from app.classes.shared.helpers import Helpers
|
||||||
from app.classes.shared.main_controller import Controller
|
from app.classes.shared.main_controller import Controller
|
||||||
from app.classes.web.tornado_handler import Webserver
|
from app.classes.web.tornado_handler import Webserver
|
||||||
@ -145,6 +146,15 @@ class TasksManager:
|
|||||||
self.controller.servers.stop_all_servers()
|
self.controller.servers.stop_all_servers()
|
||||||
except:
|
except:
|
||||||
logger.info("Caught error during shutdown", exc_info=True)
|
logger.info("Caught error during shutdown", exc_info=True)
|
||||||
|
try:
|
||||||
|
temp_dir = os.path.join(self.controller.project_root, "temp")
|
||||||
|
FileHelpers.del_dirs(temp_dir)
|
||||||
|
except:
|
||||||
|
logger.info(
|
||||||
|
"Caught error during shutdown - "
|
||||||
|
"unable to delete files from Crafty Temp Dir",
|
||||||
|
exc_info=True,
|
||||||
|
)
|
||||||
|
|
||||||
logger.info("***** Crafty Shutting Down *****\n\n")
|
logger.info("***** Crafty Shutting Down *****\n\n")
|
||||||
Console.info("***** Crafty Shutting Down *****\n\n")
|
Console.info("***** Crafty Shutting Down *****\n\n")
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"major": 4,
|
"major": 4,
|
||||||
"minor": 0,
|
"minor": 0,
|
||||||
"sub": 4,
|
"sub": 5,
|
||||||
"meta": "beta"
|
"meta": "beta"
|
||||||
}
|
}
|
||||||
|
6
main.py
6
main.py
@ -226,6 +226,12 @@ if __name__ == "__main__":
|
|||||||
|
|
||||||
Console.info("Crafty has fully started and is now ready for use!")
|
Console.info("Crafty has fully started and is now ready for use!")
|
||||||
crafty_prompt.prompt = f"Crafty Controller v{helper.get_version_string()} > "
|
crafty_prompt.prompt = f"Crafty Controller v{helper.get_version_string()} > "
|
||||||
|
try:
|
||||||
|
logger.info("Removing old temp dirs")
|
||||||
|
FileHelpers.del_dirs(os.path.join(controller.project_root, "temp"))
|
||||||
|
except:
|
||||||
|
logger.info("Did not find old temp dir.")
|
||||||
|
os.mkdir(os.path.join(controller.project_root, "temp"))
|
||||||
|
|
||||||
if not args.daemon:
|
if not args.daemon:
|
||||||
# Put the prompt under the cursor
|
# Put the prompt under the cursor
|
||||||
|
Loading…
Reference in New Issue
Block a user