software packages and deploying
This commit is contained in:
@@ -17,6 +17,7 @@ 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"))
|
||||
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-"
|
||||
@@ -101,6 +102,7 @@ def system_storage_information(log_dir: Path | None = None) -> dict:
|
||||
"database_connected": True,
|
||||
"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"))),
|
||||
"backups": _directory_status(BACKUP_DIR, create=True),
|
||||
"backup_count": len(backups),
|
||||
@@ -158,6 +160,10 @@ def create_backup(created_by: str = "system", reason: str = "manual") -> dict:
|
||||
target = files_dir / "uploads"
|
||||
shutil.copytree(UPLOAD_DIR, target)
|
||||
included.append("files/uploads/")
|
||||
if SOFTWARE_PACKAGE_DIR.is_dir():
|
||||
target = files_dir / "software-packages"
|
||||
shutil.copytree(SOFTWARE_PACKAGE_DIR, target)
|
||||
included.append("files/software-packages/")
|
||||
|
||||
metadata = {
|
||||
"format": 1,
|
||||
@@ -324,6 +330,14 @@ def restore_backup(name: str) -> dict:
|
||||
else:
|
||||
child.unlink()
|
||||
shutil.copytree(files / "uploads", UPLOAD_DIR, dirs_exist_ok=True)
|
||||
if (files / "software-packages").is_dir():
|
||||
SOFTWARE_PACKAGE_DIR.mkdir(parents=True, exist_ok=True)
|
||||
for child in SOFTWARE_PACKAGE_DIR.iterdir():
|
||||
if child.is_dir():
|
||||
shutil.rmtree(child)
|
||||
else:
|
||||
child.unlink()
|
||||
shutil.copytree(files / "software-packages", SOFTWARE_PACKAGE_DIR, dirs_exist_ok=True)
|
||||
return _metadata(path)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user