mirror of
https://github.com/dw-0/kiauh.git
synced 2025-12-11 17:44:28 +05:00
feat(backup): integrate backup functionality into multiple extensions and config management
This commit is contained in:
@@ -96,6 +96,7 @@ def install_klipperscreen() -> None:
|
||||
|
||||
|
||||
def patch_klipperscreen_update_manager(instances: List[Moonraker]) -> None:
|
||||
BackupService().backup_moonraker_conf()
|
||||
add_config_section(
|
||||
section=KLIPPERSCREEN_UPDATER_SECTION_NAME,
|
||||
instances=instances,
|
||||
@@ -182,6 +183,7 @@ def remove_klipperscreen() -> None:
|
||||
mr_instances: List[Moonraker] = get_instances(Moonraker)
|
||||
if mr_instances:
|
||||
Logger.print_status("Removing KlipperScreen from update manager ...")
|
||||
BackupService().backup_moonraker_conf()
|
||||
remove_config_section("update_manager KlipperScreen", mr_instances)
|
||||
Logger.print_ok("KlipperScreen successfully removed from update manager!")
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ from components.webui_client.base_data import BaseWebClientConfig
|
||||
from core.logger import Logger
|
||||
from core.services.message_service import Message
|
||||
from core.types.color import Color
|
||||
from utils.common import backup_printer_config_dir
|
||||
from utils.config_utils import remove_config_section
|
||||
from utils.fs_utils import run_remove_routines
|
||||
from utils.instance_type import InstanceType
|
||||
@@ -35,6 +36,8 @@ def run_client_config_removal(
|
||||
if run_remove_routines(client_config.config_dir):
|
||||
completion_msg.text.append(f"● {client_config.display_name} removed")
|
||||
|
||||
backup_printer_config_dir()
|
||||
|
||||
completion_msg = remove_moonraker_config_section(
|
||||
completion_msg, client_config, mr_instances
|
||||
)
|
||||
|
||||
@@ -67,6 +67,7 @@ def run_client_removal(
|
||||
if remove_client_nginx_logs(client, kl_instances):
|
||||
completion_msg.text.append("● NGINX logs removed")
|
||||
|
||||
BackupService().backup_moonraker_conf()
|
||||
section = f"update_manager {client_name}"
|
||||
handled_instances: List[Moonraker] = remove_config_section(
|
||||
section, mr_instances
|
||||
|
||||
@@ -151,6 +151,7 @@ class MobilerakerExtension(BaseExtension):
|
||||
Logger.print_status(
|
||||
"Removing Mobileraker's companion from update manager ..."
|
||||
)
|
||||
BackupService().backup_moonraker_conf()
|
||||
remove_config_section(MOBILERAKER_UPDATER_SECTION_NAME, mr_instances)
|
||||
Logger.print_ok(
|
||||
"Mobileraker's companion successfully removed from update manager!"
|
||||
@@ -162,6 +163,7 @@ class MobilerakerExtension(BaseExtension):
|
||||
Logger.print_error(f"Error removing Mobileraker's companion:\n{e}")
|
||||
|
||||
def _patch_mobileraker_update_manager(self, instances: List[Moonraker]) -> None:
|
||||
BackupService().backup_moonraker_conf()
|
||||
add_config_section(
|
||||
section=MOBILERAKER_UPDATER_SECTION_NAME,
|
||||
instances=instances,
|
||||
|
||||
@@ -31,7 +31,11 @@ from extensions.obico import (
|
||||
from extensions.obico.moonraker_obico import (
|
||||
MoonrakerObico,
|
||||
)
|
||||
from utils.common import check_install_dependencies, moonraker_exists
|
||||
from utils.common import (
|
||||
backup_printer_config_dir,
|
||||
check_install_dependencies,
|
||||
moonraker_exists,
|
||||
)
|
||||
from utils.config_utils import (
|
||||
add_config_section,
|
||||
remove_config_section,
|
||||
@@ -119,6 +123,8 @@ class ObicoExtension(BaseExtension):
|
||||
|
||||
cmd_sysctl_manage("daemon-reload")
|
||||
|
||||
backup_printer_config_dir()
|
||||
|
||||
# add to klippers config
|
||||
self._patch_printer_cfg(kl_instances)
|
||||
InstanceManager.restart_all(kl_instances)
|
||||
@@ -165,6 +171,7 @@ class ObicoExtension(BaseExtension):
|
||||
self._remove_obico_instances(ob_instances)
|
||||
self._remove_obico_dir()
|
||||
self._remove_obico_env()
|
||||
backup_printer_config_dir()
|
||||
remove_config_section(f"include {OBICO_MACROS_CFG_NAME}", kl_instances)
|
||||
remove_config_section(f"include {OBICO_UPDATE_CFG_NAME}", mr_instances)
|
||||
Logger.print_dialog(
|
||||
|
||||
@@ -13,6 +13,7 @@ from components.klipper.klipper import Klipper
|
||||
from components.moonraker.moonraker import Moonraker
|
||||
from core.instance_manager.instance_manager import InstanceManager
|
||||
from core.logger import DialogType, Logger
|
||||
from core.services.backup_service import BackupService
|
||||
from extensions.base_extension import BaseExtension
|
||||
from extensions.octoapp import (
|
||||
OA_DEPS_JSON_FILE,
|
||||
@@ -133,6 +134,7 @@ class OctoappExtension(BaseExtension):
|
||||
self._remove_OA_store_dirs()
|
||||
self._remove_OA_dir()
|
||||
self._remove_OA_env()
|
||||
BackupService().backup_moonraker_conf()
|
||||
remove_config_section(f"include {OA_SYS_CFG_NAME}", mr_instances)
|
||||
run_remove_routines(OA_INSTALLER_LOG_FILE)
|
||||
Logger.print_dialog(
|
||||
|
||||
@@ -12,6 +12,7 @@ from typing import List
|
||||
from components.moonraker.moonraker import Moonraker
|
||||
from core.instance_manager.instance_manager import InstanceManager
|
||||
from core.logger import DialogType, Logger
|
||||
from core.services.backup_service import BackupService
|
||||
from extensions.base_extension import BaseExtension
|
||||
from extensions.octoeverywhere import (
|
||||
OE_DEPS_JSON_FILE,
|
||||
@@ -133,6 +134,7 @@ class OctoeverywhereExtension(BaseExtension):
|
||||
self._remove_oe_instances(ob_instances)
|
||||
self._remove_oe_dir()
|
||||
self._remove_oe_env()
|
||||
BackupService().backup_moonraker_conf()
|
||||
remove_config_section(f"include {OE_SYS_CFG_NAME}", mr_instances)
|
||||
run_remove_routines(OE_INSTALLER_LOG_FILE)
|
||||
Logger.print_dialog(
|
||||
|
||||
@@ -100,6 +100,7 @@ class SpoolmanExtension(BaseExtension):
|
||||
mr_instances: List[Moonraker] = mrsvc.get_all_instances()
|
||||
|
||||
Logger.print_status("Removing Spoolman configuration from moonraker.conf...")
|
||||
BackupService().backup_moonraker_conf()
|
||||
remove_config_section("spoolman", mr_instances)
|
||||
|
||||
Logger.print_status("Removing Spoolman from moonraker.asvc...")
|
||||
@@ -289,6 +290,7 @@ class SpoolmanExtension(BaseExtension):
|
||||
mrsvc.load_instances()
|
||||
mr_instances = mrsvc.get_all_instances()
|
||||
|
||||
BackupService().backup_moonraker_conf()
|
||||
# noinspection HttpUrlsUsage
|
||||
add_config_section(
|
||||
section="spoolman",
|
||||
|
||||
@@ -13,6 +13,7 @@ from typing import List
|
||||
from components.moonraker.moonraker import Moonraker
|
||||
from core.instance_manager.instance_manager import InstanceManager
|
||||
from core.logger import DialogType, Logger
|
||||
from core.services.backup_service import BackupService
|
||||
from extensions.base_extension import BaseExtension
|
||||
from extensions.telegram_bot import TG_BOT_REPO, TG_BOT_REQ_FILE
|
||||
from extensions.telegram_bot.moonraker_telegram_bot import (
|
||||
@@ -105,6 +106,7 @@ class TelegramBotExtension(BaseExtension):
|
||||
cmd_sysctl_manage("daemon-reload")
|
||||
|
||||
# add to moonraker update manager
|
||||
BackupService().backup_moonraker_conf()
|
||||
self._patch_bot_update_manager(mr_instances)
|
||||
|
||||
# restart moonraker
|
||||
@@ -150,6 +152,7 @@ class TelegramBotExtension(BaseExtension):
|
||||
self._remove_bot_instances(tb_instances)
|
||||
self._remove_bot_dir()
|
||||
self._remove_bot_env()
|
||||
BackupService().backup_moonraker_conf()
|
||||
remove_config_section("update_manager moonraker-telegram-bot", mr_instances)
|
||||
self._delete_bot_logs(tb_instances)
|
||||
except Exception as e:
|
||||
|
||||
@@ -73,7 +73,7 @@ def add_config_section_at_top(section: str, instances: List[InstanceType]) -> No
|
||||
tmp.writelines(org_content)
|
||||
|
||||
cfg_file.unlink()
|
||||
shutil.move(tmp_cfg_path, cfg_file)
|
||||
shutil.move(tmp_cfg_path.as_posix(), cfg_file)
|
||||
|
||||
Logger.print_ok("OK!")
|
||||
|
||||
@@ -81,7 +81,7 @@ def add_config_section_at_top(section: str, instances: List[InstanceType]) -> No
|
||||
def remove_config_section(
|
||||
section: str, instances: List[InstanceType]
|
||||
) -> List[InstanceType]:
|
||||
removed_from: List[instances] = []
|
||||
removed_from: List[InstanceType] = []
|
||||
for instance in instances:
|
||||
cfg_file = instance.cfg_file
|
||||
Logger.print_status(f"Remove section '[{section}]' from '{cfg_file}' ...")
|
||||
|
||||
Reference in New Issue
Block a user