mirror of
https://gitlab.com/crafty-controller/crafty-4.git
synced 2024-08-30 18:23:09 +00:00
Merge branch 'feature/pretzel-variable-shutdown-timeout' into 'dev'
Add variable shutdown timeouts See merge request crafty-controller/crafty-4!435
This commit is contained in:
commit
c7b8b4b313
@ -3,6 +3,7 @@
|
||||
### New features
|
||||
- Add server import status indicators ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/433))
|
||||
- Users can now be assigned as manager of other users/roles ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/434))
|
||||
- Add variable shutdown timeouts ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/435))
|
||||
### Bug fixes
|
||||
- Fix creation quota not refilling after server delete ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/434))
|
||||
### Tweaks
|
||||
|
@ -39,6 +39,7 @@ class Servers(BaseModel):
|
||||
type = CharField(default="minecraft-java")
|
||||
show_status = BooleanField(default=1)
|
||||
created_by = IntegerField(default=-100)
|
||||
shutdown_timeout = IntegerField(default=60)
|
||||
|
||||
class Meta:
|
||||
table_name = "servers"
|
||||
|
@ -612,21 +612,25 @@ class ServerInstance:
|
||||
# caching the name and pid number
|
||||
server_name = self.name
|
||||
server_pid = self.process.pid
|
||||
self.shutdown_timeout = self.settings["shutdown_timeout"]
|
||||
|
||||
while running:
|
||||
i += 1
|
||||
logstr = (
|
||||
f"Server {server_name} is still running "
|
||||
f"- waiting 2s to see if it stops ({int(60-(i*2))} "
|
||||
f"seconds until force close)"
|
||||
)
|
||||
logger.info(logstr)
|
||||
Console.info(logstr)
|
||||
ttk = int(self.shutdown_timeout - (i * 2))
|
||||
if i <= self.shutdown_timeout / 2:
|
||||
logstr = (
|
||||
f"Server {server_name} is still running "
|
||||
"- waiting 2s to see if it stops"
|
||||
f"({ttk} "
|
||||
f"seconds until force close)"
|
||||
)
|
||||
logger.info(logstr)
|
||||
Console.info(logstr)
|
||||
running = self.check_running()
|
||||
time.sleep(2)
|
||||
|
||||
# if we haven't closed in 60 seconds, let's just slam down on the PID
|
||||
if i >= 30:
|
||||
if i >= round(self.shutdown_timeout / 2, 0):
|
||||
logger.info(
|
||||
f"Server {server_name} is still running - Forcing the process down"
|
||||
)
|
||||
|
@ -1488,6 +1488,7 @@ class PanelHandler(BaseHandler):
|
||||
return
|
||||
server_name = self.get_argument("server_name", None)
|
||||
server_obj = self.controller.servers.get_server_obj(server_id)
|
||||
shutdown_timeout = self.get_argument("shutdown_timeout", 60)
|
||||
if superuser:
|
||||
server_path = self.get_argument("server_path", None)
|
||||
if Helpers.is_os_windows():
|
||||
@ -1568,6 +1569,7 @@ class PanelHandler(BaseHandler):
|
||||
)
|
||||
|
||||
server_obj.server_name = server_name
|
||||
server_obj.shutdown_timeout = shutdown_timeout
|
||||
if superuser:
|
||||
if Helpers.validate_traversal(
|
||||
self.helper.get_servers_root_dir(), server_path
|
||||
|
@ -165,6 +165,18 @@
|
||||
</div>
|
||||
{% end %}
|
||||
|
||||
<div class="form-group">
|
||||
<label for="shutdown_timeout">{{ translate('serverConfig', 'shutdownTimeout', data['lang']) }}
|
||||
<small class="text-muted ml-1"> - {{ translate('serverConfig', 'timeoutExplain1', data['lang'])
|
||||
}}
|
||||
{{ data['server_stats']['server_id']['stop_command'] }} {{ translate('serverConfig',
|
||||
'timeoutExplain2', data['lang']) }}
|
||||
</small> </label>
|
||||
<input type="number" class="form-control" name="shutdown_timeout" id="shutdown_timeout"
|
||||
value="{{ data['server_stats']['server_id']['shutdown_timeout'] }}" step="2" max="300" min="60"
|
||||
required>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="logs_delete_after">{{ translate('serverConfig', 'removeOldLogsAfter', data['lang']) }}
|
||||
<small class="text-muted ml-1"> - {{ translate('serverConfig', 'removeOldLogsAfterDesc',
|
||||
|
16
app/migrations/20220821_shutdown_timeout.py
Normal file
16
app/migrations/20220821_shutdown_timeout.py
Normal file
@ -0,0 +1,16 @@
|
||||
# Generated by database migrator
|
||||
import peewee
|
||||
|
||||
|
||||
def migrate(migrator, database, **kwargs):
|
||||
migrator.add_columns("servers", shutdown_timeout=peewee.IntegerField(default=60))
|
||||
"""
|
||||
Write your migrations here.
|
||||
"""
|
||||
|
||||
|
||||
def rollback(migrator, database, **kwargs):
|
||||
migrator.drop_columns("servers", ["shutdown_timeout"])
|
||||
"""
|
||||
Write your rollback migrations here.
|
||||
"""
|
@ -325,7 +325,10 @@
|
||||
"stopBeforeDeleting": "Please stop the server before deleting it",
|
||||
"update": "Update Executable",
|
||||
"yesDelete": "Yes, delete",
|
||||
"yesDeleteFiles": "Yes, delete files"
|
||||
"yesDeleteFiles": "Yes, delete files",
|
||||
"shutdownTimeout": "Shutdown Timeout",
|
||||
"timeoutExplain1": "How long Crafty will wait for your server to shutdown after executing the",
|
||||
"timeoutExplain2": "command before it forces the process down."
|
||||
},
|
||||
"serverConfigHelp": {
|
||||
"desc": "Here is where you can change the configuration of your server",
|
||||
|
Loading…
Reference in New Issue
Block a user