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
|
### New features
|
||||||
- Add server import status indicators ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/433))
|
- 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))
|
- 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
|
### Bug fixes
|
||||||
- Fix creation quota not refilling after server delete ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/434))
|
- Fix creation quota not refilling after server delete ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/434))
|
||||||
### Tweaks
|
### Tweaks
|
||||||
|
@ -39,6 +39,7 @@ class Servers(BaseModel):
|
|||||||
type = CharField(default="minecraft-java")
|
type = CharField(default="minecraft-java")
|
||||||
show_status = BooleanField(default=1)
|
show_status = BooleanField(default=1)
|
||||||
created_by = IntegerField(default=-100)
|
created_by = IntegerField(default=-100)
|
||||||
|
shutdown_timeout = IntegerField(default=60)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
table_name = "servers"
|
table_name = "servers"
|
||||||
|
@ -612,21 +612,25 @@ class ServerInstance:
|
|||||||
# caching the name and pid number
|
# caching the name and pid number
|
||||||
server_name = self.name
|
server_name = self.name
|
||||||
server_pid = self.process.pid
|
server_pid = self.process.pid
|
||||||
|
self.shutdown_timeout = self.settings["shutdown_timeout"]
|
||||||
|
|
||||||
while running:
|
while running:
|
||||||
i += 1
|
i += 1
|
||||||
logstr = (
|
ttk = int(self.shutdown_timeout - (i * 2))
|
||||||
f"Server {server_name} is still running "
|
if i <= self.shutdown_timeout / 2:
|
||||||
f"- waiting 2s to see if it stops ({int(60-(i*2))} "
|
logstr = (
|
||||||
f"seconds until force close)"
|
f"Server {server_name} is still running "
|
||||||
)
|
"- waiting 2s to see if it stops"
|
||||||
logger.info(logstr)
|
f"({ttk} "
|
||||||
Console.info(logstr)
|
f"seconds until force close)"
|
||||||
|
)
|
||||||
|
logger.info(logstr)
|
||||||
|
Console.info(logstr)
|
||||||
running = self.check_running()
|
running = self.check_running()
|
||||||
time.sleep(2)
|
time.sleep(2)
|
||||||
|
|
||||||
# if we haven't closed in 60 seconds, let's just slam down on the PID
|
# 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(
|
logger.info(
|
||||||
f"Server {server_name} is still running - Forcing the process down"
|
f"Server {server_name} is still running - Forcing the process down"
|
||||||
)
|
)
|
||||||
|
@ -1488,6 +1488,7 @@ class PanelHandler(BaseHandler):
|
|||||||
return
|
return
|
||||||
server_name = self.get_argument("server_name", None)
|
server_name = self.get_argument("server_name", None)
|
||||||
server_obj = self.controller.servers.get_server_obj(server_id)
|
server_obj = self.controller.servers.get_server_obj(server_id)
|
||||||
|
shutdown_timeout = self.get_argument("shutdown_timeout", 60)
|
||||||
if superuser:
|
if superuser:
|
||||||
server_path = self.get_argument("server_path", None)
|
server_path = self.get_argument("server_path", None)
|
||||||
if Helpers.is_os_windows():
|
if Helpers.is_os_windows():
|
||||||
@ -1568,6 +1569,7 @@ class PanelHandler(BaseHandler):
|
|||||||
)
|
)
|
||||||
|
|
||||||
server_obj.server_name = server_name
|
server_obj.server_name = server_name
|
||||||
|
server_obj.shutdown_timeout = shutdown_timeout
|
||||||
if superuser:
|
if superuser:
|
||||||
if Helpers.validate_traversal(
|
if Helpers.validate_traversal(
|
||||||
self.helper.get_servers_root_dir(), server_path
|
self.helper.get_servers_root_dir(), server_path
|
||||||
|
@ -165,6 +165,18 @@
|
|||||||
</div>
|
</div>
|
||||||
{% end %}
|
{% 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">
|
<div class="form-group">
|
||||||
<label for="logs_delete_after">{{ translate('serverConfig', 'removeOldLogsAfter', data['lang']) }}
|
<label for="logs_delete_after">{{ translate('serverConfig', 'removeOldLogsAfter', data['lang']) }}
|
||||||
<small class="text-muted ml-1"> - {{ translate('serverConfig', 'removeOldLogsAfterDesc',
|
<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",
|
"stopBeforeDeleting": "Please stop the server before deleting it",
|
||||||
"update": "Update Executable",
|
"update": "Update Executable",
|
||||||
"yesDelete": "Yes, delete",
|
"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": {
|
"serverConfigHelp": {
|
||||||
"desc": "Here is where you can change the configuration of your server",
|
"desc": "Here is where you can change the configuration of your server",
|
||||||
|
Loading…
Reference in New Issue
Block a user