software package profiles implemeted, job deletion optimized

This commit is contained in:
2026-09-26 13:07:23 +02:00
parent 87a5041162
commit 7d314057e4
54 changed files with 3492 additions and 342 deletions
+21 -6
View File
@@ -13,11 +13,13 @@ from urllib.parse import urlsplit, urlunsplit
from .version import APP_VERSION
BACKUP_DIR = Path(os.getenv("BACKUP_DIR", "/data/backups"))
CONFIG_PATH = Path(os.getenv("APP_CONFIG", "/app/config/config.json"))
APPINFO_PATH = Path(os.getenv("APPINFO_PATH", "/app/config/APPINFO.json"))
UPLOAD_DIR = Path(os.getenv("UPLOAD_DIR", "/app/app/static/uploads"))
SOFTWARE_PACKAGE_DIR = Path(os.getenv("SOFTWARE_PACKAGE_DIR", "/app/data/software-packages"))
DATA_ROOT = Path(os.getenv("ASSETMANAGER_DATA_ROOT", "/assetmanager-data"))
BACKUP_DIR = Path(os.getenv("BACKUP_DIR", str(DATA_ROOT / "backups")))
CONFIG_PATH = Path(os.getenv("APP_CONFIG", str(DATA_ROOT / "config" / "config.json")))
APPINFO_PATH = Path(os.getenv("APPINFO_PATH", str(DATA_ROOT / "config" / "APPINFO.json")))
UPLOAD_DIR = Path(os.getenv("UPLOAD_DIR", str(DATA_ROOT / "uploads")))
SOFTWARE_PACKAGE_DIR = Path(os.getenv("SOFTWARE_PACKAGE_DIR", str(DATA_ROOT / "software-packages")))
ANALYZER_PROFILE_DIR = Path(os.getenv("ANALYZER_PROFILE_DIR", str(DATA_ROOT / "analyzer-profiles")))
BACKUP_INTERVAL_HOURS = max(1, int(os.getenv("BACKUP_INTERVAL_HOURS", "8")))
BACKUP_RETENTION_DAYS = max(1, int(os.getenv("BACKUP_RETENTION_DAYS", "3")))
BACKUP_PREFIX = "assetmanager-backup-"
@@ -103,7 +105,8 @@ def system_storage_information(log_dir: Path | None = None) -> dict:
"config": _directory_status(CONFIG_PATH.parent),
"uploads": _directory_status(UPLOAD_DIR),
"software_packages": _directory_status(SOFTWARE_PACKAGE_DIR, create=True),
"logs": _directory_status(log_dir or Path(os.getenv("LOG_DIR", "/app/data/logs"))),
"analyzer_profiles": _directory_status(ANALYZER_PROFILE_DIR, create=True),
"logs": _directory_status(log_dir or Path(os.getenv("LOG_DIR", str(DATA_ROOT / "logs")))),
"backups": _directory_status(BACKUP_DIR, create=True),
"backup_count": len(backups),
"backup_total_size": total_size,
@@ -164,6 +167,10 @@ def create_backup(created_by: str = "system", reason: str = "manual") -> dict:
target = files_dir / "software-packages"
shutil.copytree(SOFTWARE_PACKAGE_DIR, target)
included.append("files/software-packages/")
if ANALYZER_PROFILE_DIR.is_dir():
target = files_dir / "analyzer-profiles"
shutil.copytree(ANALYZER_PROFILE_DIR, target)
included.append("files/analyzer-profiles/")
metadata = {
"format": 1,
@@ -338,6 +345,14 @@ def restore_backup(name: str) -> dict:
else:
child.unlink()
shutil.copytree(files / "software-packages", SOFTWARE_PACKAGE_DIR, dirs_exist_ok=True)
if (files / "analyzer-profiles").is_dir():
ANALYZER_PROFILE_DIR.mkdir(parents=True, exist_ok=True)
for child in ANALYZER_PROFILE_DIR.iterdir():
if child.is_dir():
shutil.rmtree(child)
else:
child.unlink()
shutil.copytree(files / "analyzer-profiles", ANALYZER_PROFILE_DIR, dirs_exist_ok=True)
return _metadata(path)