Merge branch 'dev' into refactor/wiki-links

This commit is contained in:
Zedifus 2023-05-14 22:49:29 +01:00
commit 73af3166f5
8 changed files with 109 additions and 35 deletions

View File

@ -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>

View File

@ -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:

View File

@ -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)

View File

@ -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()

View File

@ -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>&nbsp;{{ translate('error', 'serverJars1', data['lang']) }}<a style="color: red;"; href="https://status.craftycontrol.com/status/craftycontrol"
target="_blank">&nbsp;{{ translate('error', 'craftyStatus', data['lang']) }}</a>
&nbsp;{{ translate('error', 'serverJars2', data['lang']) }}</p></div>
{% end %}
</div>
</div>
</form>
{% end %}
</div>

View File

@ -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
View File

@ -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

View File

@ -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