test(backups): test backup API - backing up

pull/35/head
Houkime 2023-06-14 09:52:44 +00:00 committed by Inex Code
parent 32a242b560
commit 42a5b6f70a
3 changed files with 11 additions and 10 deletions

View File

@ -23,18 +23,12 @@ def validate_datetime(dt: datetime):
# huey tasks need to return something # huey tasks need to return something
@huey.task() @huey.task()
def start_backup(service: Service) -> bool: def start_backup(service: Service) -> bool:
# Backups can create the job, but doing this here
# allows us to see the job as queued before it is actually executed
add_backup_job(service)
Backups.back_up(service) Backups.back_up(service)
return True return True
@huey.task() @huey.task()
def restore_snapshot(snapshot: Snapshot) -> bool: def restore_snapshot(snapshot: Snapshot) -> bool:
add_restore_job(snapshot)
Backups.restore_snapshot(snapshot) Backups.restore_snapshot(snapshot)
return True return True

View File

@ -17,7 +17,7 @@ from selfprivacy_api.graphql.common_types.jobs import job_to_api_job
from selfprivacy_api.backup import Backups from selfprivacy_api.backup import Backups
from selfprivacy_api.services import get_all_services, get_service_by_id from selfprivacy_api.services import get_all_services, get_service_by_id
from selfprivacy_api.backup.tasks import start_backup, restore_snapshot from selfprivacy_api.backup.tasks import start_backup, restore_snapshot
from selfprivacy_api.backup.jobs import get_backup_job, get_restore_job from selfprivacy_api.backup.jobs import add_backup_job, add_restore_job
@strawberry.input @strawberry.input
@ -86,11 +86,16 @@ class BackupMutations:
message=f"nonexistent service: {service_id}", message=f"nonexistent service: {service_id}",
job=None, job=None,
) )
job = add_backup_job(service)
start_backup(service) start_backup(service)
job = get_backup_job(service) job = job_to_api_job(job)
return GenericJobButationReturn( return GenericJobButationReturn(
success=True, code=200, message="Backup job queued", job=job_to_api_job(job) success=True,
code=200,
message="Backup job queued",
job=job,
) )
@strawberry.mutation(permission_classes=[IsAuthenticated]) @strawberry.mutation(permission_classes=[IsAuthenticated])
@ -106,13 +111,14 @@ class BackupMutations:
job=None, job=None,
) )
job = add_restore_job(snap)
restore_snapshot(snap) restore_snapshot(snap)
return GenericJobButationReturn( return GenericJobButationReturn(
success=True, success=True,
code=200, code=200,
message="restore job created", message="restore job created",
job=get_restore_job(service), job=job,
) )
@strawberry.mutation(permission_classes=[IsAuthenticated]) @strawberry.mutation(permission_classes=[IsAuthenticated])

View File

@ -13,6 +13,7 @@ from selfprivacy_api.graphql.mutations.services_mutations import ServicesMutatio
from selfprivacy_api.graphql.mutations.ssh_mutations import SshMutations from selfprivacy_api.graphql.mutations.ssh_mutations import SshMutations
from selfprivacy_api.graphql.mutations.storage_mutations import StorageMutations from selfprivacy_api.graphql.mutations.storage_mutations import StorageMutations
from selfprivacy_api.graphql.mutations.system_mutations import SystemMutations from selfprivacy_api.graphql.mutations.system_mutations import SystemMutations
from selfprivacy_api.graphql.mutations.backup_mutations import BackupMutations
from selfprivacy_api.graphql.queries.api_queries import Api from selfprivacy_api.graphql.queries.api_queries import Api
from selfprivacy_api.graphql.queries.backup import Backup from selfprivacy_api.graphql.queries.backup import Backup