software package profiles implemeted, job deletion optimized
This commit is contained in:
+21
-6
@@ -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)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user