mirror of
https://git.selfprivacy.org/SelfPrivacy/selfprivacy-rest-api.git
synced 2024-11-22 20:11:30 +00:00
feature(backups): check, set and unset service autobackup status
This commit is contained in:
parent
18d5cd2b83
commit
45f33e2d31
|
@ -20,6 +20,8 @@ from selfprivacy_api.graphql.queries.providers import BackupProvider
|
||||||
# a hack to store file path.
|
# a hack to store file path.
|
||||||
REDIS_SNAPSHOT_CACHE_EXPIRE_SECONDS = 24 * 60 * 60 # one day
|
REDIS_SNAPSHOT_CACHE_EXPIRE_SECONDS = 24 * 60 * 60 # one day
|
||||||
|
|
||||||
|
REDIS_AUTOBACKUP_ENABLED_PREFIX = "backup:autobackup:services:"
|
||||||
|
|
||||||
REDIS_SNAPSHOTS_PREFIX = "backups:snapshots:"
|
REDIS_SNAPSHOTS_PREFIX = "backups:snapshots:"
|
||||||
REDIS_LAST_BACKUP_PREFIX = "backups:last-backed-up:"
|
REDIS_LAST_BACKUP_PREFIX = "backups:last-backed-up:"
|
||||||
REDIS_REPO_PATH_KEY = "backups:test_repo_path"
|
REDIS_REPO_PATH_KEY = "backups:test_repo_path"
|
||||||
|
@ -74,6 +76,22 @@ class Backups:
|
||||||
store_model_as_hash(redis, snapshot_key, snapshot)
|
store_model_as_hash(redis, snapshot_key, snapshot)
|
||||||
redis.expire(snapshot_key, REDIS_SNAPSHOT_CACHE_EXPIRE_SECONDS)
|
redis.expire(snapshot_key, REDIS_SNAPSHOT_CACHE_EXPIRE_SECONDS)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def _redis_autobackup_key(service: Service):
|
||||||
|
return REDIS_AUTOBACKUP_ENABLED_PREFIX + service.get_id()
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def enable_autobackup(service: Service):
|
||||||
|
redis.set(Backups._redis_autobackup_key(service), True)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def disable_autobackup(service: Service):
|
||||||
|
redis.delete(Backups._redis_autobackup_key(service))
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def is_autobackup_enabled(service: Service) -> bool:
|
||||||
|
return redis.exists(Backups._redis_autobackup_key(service))
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def provider():
|
def provider():
|
||||||
return Backups.lookup_provider()
|
return Backups.lookup_provider()
|
||||||
|
@ -117,14 +135,15 @@ class Backups:
|
||||||
redis.delete(REDIS_PROVIDER_KEY)
|
redis.delete(REDIS_PROVIDER_KEY)
|
||||||
redis.delete(REDIS_REPO_PATH_KEY)
|
redis.delete(REDIS_REPO_PATH_KEY)
|
||||||
|
|
||||||
for key in redis.keys(REDIS_INITTED_CACHE_PREFIX + "*"):
|
prefixes_to_clean = [
|
||||||
redis.delete(key)
|
REDIS_INITTED_CACHE_PREFIX,
|
||||||
|
REDIS_SNAPSHOTS_PREFIX,
|
||||||
|
REDIS_LAST_BACKUP_PREFIX,
|
||||||
|
]
|
||||||
|
|
||||||
for key in redis.keys(REDIS_SNAPSHOTS_PREFIX + "*"):
|
for prefix in prefixes_to_clean:
|
||||||
redis.delete(key)
|
for key in redis.keys(prefix + "*"):
|
||||||
|
redis.delete(key)
|
||||||
for key in redis.keys(REDIS_LAST_BACKUP_PREFIX + "*"):
|
|
||||||
redis.delete(key)
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def lookup_provider() -> AbstractBackupProvider:
|
def lookup_provider() -> AbstractBackupProvider:
|
||||||
|
|
Loading…
Reference in a new issue