mirror of
https://gitlab.com/crafty-controller/crafty-4.git
synced 2024-08-30 18:23:09 +00:00
Merge branch 'dev' into refactor/wiki-links
This commit is contained in:
commit
73af3166f5
@ -9,8 +9,11 @@
|
||||
- Fix incompatible buildx provenance meta, causing digest issues on GL/DH container registries ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/582))
|
||||
- Fix Auth'd servers in roles | Refine server ordering ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/574))
|
||||
- Fix import loop detection ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/575))
|
||||
- Fix Cargo errors on Ubuntu 23.04 installs ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/579))
|
||||
- Fix project root error on first start ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/580))
|
||||
### Tweaks
|
||||
TBD
|
||||
- Check for python version so we don't just fail out on unsupported python versions ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/577))
|
||||
- Show warning for serverjars API connection issues ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/581))
|
||||
### Lang
|
||||
TBD
|
||||
<br><br>
|
||||
|
@ -325,6 +325,16 @@ class Helpers:
|
||||
except Exception:
|
||||
return False
|
||||
|
||||
@staticmethod
|
||||
def check_address_status(address):
|
||||
try:
|
||||
requests.get(address, timeout=1)
|
||||
time.sleep(1)
|
||||
requests.get(address, timeout=1)
|
||||
return True
|
||||
except:
|
||||
return False
|
||||
|
||||
@staticmethod
|
||||
def check_port(server_port):
|
||||
try:
|
||||
|
@ -763,31 +763,37 @@ class TasksManager:
|
||||
def check_for_old_logs(self):
|
||||
# check for server logs first
|
||||
self.controller.servers.check_for_old_logs()
|
||||
# check for crafty logs now
|
||||
logs_path = os.path.join(self.controller.project_root, "logs")
|
||||
logs_delete_after = int(
|
||||
self.helper.get_setting("crafty_logs_delete_after_days")
|
||||
)
|
||||
latest_log_files = [
|
||||
"session.log",
|
||||
"schedule.log",
|
||||
"tornado-access.log",
|
||||
"session.log",
|
||||
"commander.log",
|
||||
]
|
||||
# we won't delete if delete logs after is set to 0
|
||||
if logs_delete_after != 0:
|
||||
log_files = list(
|
||||
filter(
|
||||
lambda val: val not in latest_log_files,
|
||||
os.listdir(logs_path),
|
||||
)
|
||||
try:
|
||||
# check for crafty logs now
|
||||
logs_path = os.path.join(self.controller.project_root, "logs")
|
||||
logs_delete_after = int(
|
||||
self.helper.get_setting("crafty_logs_delete_after_days")
|
||||
)
|
||||
latest_log_files = [
|
||||
"session.log",
|
||||
"schedule.log",
|
||||
"tornado-access.log",
|
||||
"session.log",
|
||||
"commander.log",
|
||||
]
|
||||
# we won't delete if delete logs after is set to 0
|
||||
if logs_delete_after != 0:
|
||||
log_files = list(
|
||||
filter(
|
||||
lambda val: val not in latest_log_files,
|
||||
os.listdir(logs_path),
|
||||
)
|
||||
)
|
||||
for log_file in log_files:
|
||||
log_file_path = os.path.join(logs_path, log_file)
|
||||
if Helpers.check_file_exists(
|
||||
log_file_path
|
||||
) and Helpers.is_file_older_than_x_days(
|
||||
log_file_path, logs_delete_after
|
||||
):
|
||||
os.remove(log_file_path)
|
||||
except:
|
||||
logger.debug(
|
||||
"Unable to find project root."
|
||||
" If this issue persists please contact support."
|
||||
)
|
||||
for log_file in log_files:
|
||||
log_file_path = os.path.join(logs_path, log_file)
|
||||
if Helpers.check_file_exists(
|
||||
log_file_path
|
||||
) and Helpers.is_file_older_than_x_days(
|
||||
log_file_path, logs_delete_after
|
||||
):
|
||||
os.remove(log_file_path)
|
||||
|
@ -143,7 +143,11 @@ class ServerHandler(BaseHandler):
|
||||
"not a server creator or server limit reached"
|
||||
)
|
||||
return
|
||||
|
||||
page_data["server_api"] = False
|
||||
if page_data["online"]:
|
||||
page_data["server_api"] = self.helper.check_address_status(
|
||||
"https://serverjars.com/api/fetchTypes"
|
||||
)
|
||||
page_data["server_types"] = self.controller.server_jars.get_serverjar_data()
|
||||
page_data["js_server_types"] = json.dumps(
|
||||
self.controller.server_jars.get_serverjar_data()
|
||||
|
@ -19,7 +19,7 @@
|
||||
<div class="row">
|
||||
{% if data['online'] %}
|
||||
<div class="col-sm-6 grid-margin stretch-card">
|
||||
<div class="card">
|
||||
<div class="card" id="creation_wizard">
|
||||
<div class="card-body">
|
||||
|
||||
<h4>{{ translate('serverWizard', 'newServer', data['lang']) }}</h4>
|
||||
@ -27,6 +27,38 @@
|
||||
<p class="card-description">
|
||||
|
||||
<form method="post" class="server-wizard" onSubmit="wait_msg()">
|
||||
{% if data["server_api"] %}
|
||||
<fieldset>
|
||||
{% else %}
|
||||
<fieldset disabled="disabled">
|
||||
<style>
|
||||
#creation_wizard {
|
||||
-webkit-filter: grayscale(1);
|
||||
}
|
||||
.api-alert{
|
||||
position:absolute;
|
||||
top:-5px;
|
||||
left:0;
|
||||
font-size: 50px !important;
|
||||
color:#fff;
|
||||
background:rgb(0,170,170);
|
||||
opacity:.4;
|
||||
width:100%;
|
||||
height:100%;
|
||||
z-index: 100;
|
||||
}
|
||||
.api-alert p {
|
||||
margin: 0;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
text-align: center;
|
||||
font-size: 20px;
|
||||
-ms-transform: translate(-50%, -50%);
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
</style>
|
||||
{% end %}
|
||||
{% raw xsrf_form_html() %}
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
@ -145,11 +177,16 @@
|
||||
data['lang']) }}</button>
|
||||
<button type="reset" class="btn btn-danger mr-2">{{ translate('serverWizard', 'resetForm', data['lang'])
|
||||
}}</button>
|
||||
|
||||
</form>
|
||||
</p>
|
||||
</fieldset>
|
||||
{% if not data["server_api"] %}
|
||||
<div class="api-alert" style="position: absolute; top: -5px; z-index: 100; opacity: .99;">
|
||||
<p style="color: white !important;"><i class="fas fa-exclamation-triangle" style="color: white;"></i> {{ translate('error', 'serverJars1', data['lang']) }}<a style="color: red;"; href="https://status.craftycontrol.com/status/craftycontrol"
|
||||
target="_blank"> {{ translate('error', 'craftyStatus', data['lang']) }}</a>
|
||||
{{ translate('error', 'serverJars2', data['lang']) }}</p></div>
|
||||
{% end %}
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
{% end %}
|
||||
</div>
|
||||
|
||||
|
@ -187,6 +187,9 @@
|
||||
"superError": "You must be a super user to complete this action.",
|
||||
"fileError": "File type must be an image.",
|
||||
"migration": "Crafty's main server storage is being mirgated to a new location. All server starts have been suspended during this time. Please wait while we finish this migration",
|
||||
"serverJars1": "Server JARs API unreachable. Please check",
|
||||
"craftyStatus": "Crafty's status page",
|
||||
"serverJars2": "for the most up to date information.",
|
||||
"cronFormat": "Invalid Cron format detected"
|
||||
},
|
||||
"footer": {
|
||||
@ -620,4 +623,4 @@
|
||||
"manager": "Manager",
|
||||
"selectManager": "Select Manager for User"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
11
main.py
11
main.py
@ -27,6 +27,17 @@ if helper.check_root():
|
||||
time.sleep(5)
|
||||
Console.critical("Crafty shutting down. Root/Admin access denied.")
|
||||
sys.exit(0)
|
||||
if not (sys.version_info.major == 3 and sys.version_info.minor >= 9):
|
||||
Console.critical(
|
||||
"Python version mismatch. Python "
|
||||
f"{sys.version_info.major}.{sys.version_info.minor} detected."
|
||||
)
|
||||
Console.critical("Crafty requires Python 3.9 or above. Please upgrade python.")
|
||||
time.sleep(5)
|
||||
Console.critical("Crafty shutting down.")
|
||||
time.sleep(3)
|
||||
Console.info("Crafty stopped. Exiting...")
|
||||
sys.exit(0)
|
||||
# pylint: disable=wrong-import-position
|
||||
try:
|
||||
from app.classes.models.base_model import database_proxy
|
||||
|
@ -18,4 +18,4 @@ termcolor==1.1
|
||||
tornado==6.0
|
||||
tzlocal==4.0
|
||||
jsonschema==4.5.1
|
||||
orjson==3.6.7
|
||||
orjson==3.8.12
|
||||
|
Loading…
Reference in New Issue
Block a user