mirror of
https://git.selfprivacy.org/SelfPrivacy/selfprivacy-rest-api.git
synced 2025-01-30 04:36:39 +00:00
fix: selfprivacy API service couldn't backup
This commit is contained in:
parent
1f343815eb
commit
0163efae58
|
@ -14,6 +14,7 @@ from functools import lru_cache
|
|||
|
||||
|
||||
from shutil import copyfile, copytree, rmtree
|
||||
from selfprivacy_api.jobs import Job, JobStatus, Jobs
|
||||
from selfprivacy_api.services.prometheus import Prometheus
|
||||
from selfprivacy_api.services.mailserver import MailServer
|
||||
|
||||
|
@ -240,7 +241,12 @@ class ServiceManager(Service):
|
|||
copyfile(cls.stash_for(p), p)
|
||||
|
||||
@classmethod
|
||||
def pre_backup(cls):
|
||||
def pre_backup(cls, job: Job):
|
||||
Jobs.update(
|
||||
job,
|
||||
status_text="Stashing settings",
|
||||
status=JobStatus.RUNNING,
|
||||
)
|
||||
tempdir = cls.dump_dir()
|
||||
rmtree(join(tempdir), ignore_errors=True)
|
||||
makedirs(tempdir)
|
||||
|
@ -249,7 +255,7 @@ class ServiceManager(Service):
|
|||
cls.stash_a_path(p)
|
||||
|
||||
@classmethod
|
||||
def post_backup(cls):
|
||||
def post_backup(cls, job: Job):
|
||||
rmtree(cls.dump_dir(), ignore_errors=True)
|
||||
|
||||
@classmethod
|
||||
|
|
|
@ -456,12 +456,11 @@ class TemplatedService(Service):
|
|||
mkdir(db_dumps_folder)
|
||||
# Dump the databases
|
||||
for db_name in self.get_postgresql_databases():
|
||||
if job is not None:
|
||||
Jobs.update(
|
||||
job,
|
||||
status_text=f"Creating a dump of database {db_name}",
|
||||
status=JobStatus.RUNNING,
|
||||
)
|
||||
Jobs.update(
|
||||
job,
|
||||
status_text=f"Creating a dump of database {db_name}",
|
||||
status=JobStatus.RUNNING,
|
||||
)
|
||||
db_dumper = PostgresDumper(db_name)
|
||||
backup_file = join(db_dumps_folder, f"{db_name}.dump")
|
||||
db_dumper.backup_database(backup_file)
|
||||
|
@ -500,12 +499,11 @@ class TemplatedService(Service):
|
|||
db_dumps_folder = self._get_db_dumps_folder()
|
||||
for db_name in self.get_postgresql_databases():
|
||||
if exists(join(db_dumps_folder, f"{db_name}.dump")):
|
||||
if job is not None:
|
||||
Jobs.update(
|
||||
job,
|
||||
status_text=f"Restoring database {db_name}",
|
||||
status=JobStatus.RUNNING,
|
||||
)
|
||||
Jobs.update(
|
||||
job,
|
||||
status_text=f"Restoring database {db_name}",
|
||||
status=JobStatus.RUNNING,
|
||||
)
|
||||
db_dumper = PostgresDumper(db_name)
|
||||
backup_file = join(db_dumps_folder, f"{db_name}.dump")
|
||||
db_dumper.restore_database(backup_file)
|
||||
|
|
Loading…
Reference in a new issue