crafty-4/app/classes/controllers/management_controller.py

209 lines
6.8 KiB
Python
Raw Normal View History

2021-09-08 22:01:10 +00:00
import logging
import queue
2021-09-08 22:01:10 +00:00
from app.classes.models.management import HelpersManagement
from app.classes.models.servers import HelperServers
2021-09-08 22:01:10 +00:00
logger = logging.getLogger(__name__)
class ManagementController:
def __init__(self, management_helper):
self.management_helper = management_helper
self.command_queue = queue.Queue()
2021-09-08 22:01:10 +00:00
# **********************************************************************************
# Config Methods
# **********************************************************************************
@staticmethod
def set_login_image(path):
HelpersManagement.set_login_image(path)
@staticmethod
def get_login_image():
return HelpersManagement.get_login_image()
@staticmethod
def set_login_opacity(opacity):
return HelpersManagement.set_login_opacity(opacity)
@staticmethod
def get_login_opacity():
return HelpersManagement.get_login_opacity()
2021-09-08 22:01:10 +00:00
# **********************************************************************************
2021-09-08 22:01:10 +00:00
# Host_Stats Methods
# **********************************************************************************
2021-09-08 22:01:10 +00:00
@staticmethod
def get_latest_hosts_stats():
return HelpersManagement.get_latest_hosts_stats()
2021-09-08 22:01:10 +00:00
@staticmethod
def set_crafty_api_key(key):
HelpersManagement.set_secret_api_key(key)
@staticmethod
def get_crafty_api_key():
return HelpersManagement.get_secret_api_key()
@staticmethod
def set_cookie_secret(key):
HelpersManagement.set_cookie_secret(key)
@staticmethod
def add_crafty_row():
HelpersManagement.create_crafty_row()
# **********************************************************************************
2021-09-08 22:01:10 +00:00
# Commands Methods
# **********************************************************************************
2021-09-08 22:01:10 +00:00
def send_command(self, user_id, server_id, remote_ip, command):
server_name = HelperServers.get_server_friendly_name(server_id)
2021-09-08 22:01:10 +00:00
# Example: Admin issued command start_server for server Survival
self.management_helper.add_to_audit_log(
user_id,
f"issued command {command} for server {server_name}",
server_id,
remote_ip,
)
self.queue_command(
{"server_id": server_id, "user_id": user_id, "command": command}
)
2021-09-08 22:01:10 +00:00
def queue_command(self, command_data):
self.command_queue.put(command_data)
# **********************************************************************************
2021-09-08 22:01:10 +00:00
# Audit_Log Methods
# **********************************************************************************
2021-09-08 22:01:10 +00:00
@staticmethod
def get_actity_log():
return HelpersManagement.get_actity_log()
2021-09-08 22:01:10 +00:00
def add_to_audit_log(self, user_id, log_msg, server_id=None, source_ip=None):
return self.management_helper.add_to_audit_log(
user_id, log_msg, server_id, source_ip
)
2021-09-08 22:01:10 +00:00
def add_to_audit_log_raw(self, user_name, user_id, server_id, log_msg, source_ip):
return self.management_helper.add_to_audit_log_raw(
user_name, user_id, server_id, log_msg, source_ip
)
2021-09-08 22:01:10 +00:00
# **********************************************************************************
2021-09-08 22:01:10 +00:00
# Schedules Methods
# **********************************************************************************
@staticmethod
def create_scheduled_task(
server_id,
action,
interval,
interval_type,
start_time,
command,
2022-08-05 17:52:50 +00:00
name,
enabled=True,
2023-01-16 16:20:15 +00:00
one_time=False,
cron_string="* * * * *",
parent=None,
delay=0,
):
return HelpersManagement.create_scheduled_task(
server_id,
action,
interval,
interval_type,
start_time,
command,
2022-08-05 17:52:50 +00:00
name,
enabled,
2023-01-16 20:16:43 +00:00
one_time,
cron_string,
parent,
delay,
)
2021-09-08 22:01:10 +00:00
@staticmethod
def delete_scheduled_task(schedule_id):
return HelpersManagement.delete_scheduled_task(schedule_id)
2021-09-08 22:01:10 +00:00
2022-11-09 19:13:35 +00:00
@staticmethod
2021-09-08 22:01:10 +00:00
def update_scheduled_task(schedule_id, updates):
return HelpersManagement.update_scheduled_task(schedule_id, updates)
2021-09-08 22:01:10 +00:00
@staticmethod
def get_scheduled_task(schedule_id):
return HelpersManagement.get_scheduled_task(schedule_id)
2021-09-08 22:01:10 +00:00
@staticmethod
def get_scheduled_task_model(schedule_id):
return HelpersManagement.get_scheduled_task_model(schedule_id)
2022-02-26 00:53:38 +00:00
@staticmethod
def get_child_schedules(sch_id):
return HelpersManagement.get_child_schedules(sch_id)
2022-02-26 00:53:38 +00:00
2021-09-08 22:01:10 +00:00
@staticmethod
def get_schedules_by_server(server_id):
return HelpersManagement.get_schedules_by_server(server_id)
2021-09-08 22:01:10 +00:00
@staticmethod
def get_schedules_all():
return HelpersManagement.get_schedules_all()
2021-09-08 22:01:10 +00:00
@staticmethod
def get_schedules_enabled():
return HelpersManagement.get_schedules_enabled()
2021-09-08 22:01:10 +00:00
# **********************************************************************************
2021-09-08 22:01:10 +00:00
# Backups Methods
# **********************************************************************************
2021-09-08 22:01:10 +00:00
@staticmethod
def get_backup_config(server_id):
return HelpersManagement.get_backup_config(server_id)
2021-09-08 22:01:10 +00:00
def set_backup_config(
self,
server_id: int,
backup_path: str = None,
max_backups: int = None,
excluded_dirs: list = None,
compress: bool = False,
2022-06-20 21:33:36 +00:00
shutdown: bool = False,
2023-01-21 18:13:02 +00:00
before: str = "",
after: str = "",
):
return self.management_helper.set_backup_config(
server_id,
backup_path,
max_backups,
excluded_dirs,
compress,
shutdown,
2023-01-21 18:13:02 +00:00
before,
after,
)
@staticmethod
def get_excluded_backup_dirs(server_id: int):
return HelpersManagement.get_excluded_backup_dirs(server_id)
def add_excluded_backup_dir(self, server_id: int, dir_to_add: str):
self.management_helper.add_excluded_backup_dir(server_id, dir_to_add)
def del_excluded_backup_dir(self, server_id: int, dir_to_del: str):
self.management_helper.del_excluded_backup_dir(server_id, dir_to_del)
2023-01-27 00:21:39 +00:00
# **********************************************************************************
# Crafty Methods
# **********************************************************************************
@staticmethod
def get_master_server_dir():
return HelpersManagement.get_master_server_dir()
@staticmethod
def set_master_server_dir(server_dir):
HelpersManagement.set_master_server_dir(server_dir)