Commit graph

383 commits

Author SHA1 Message Date
Houkime b04dfc6c4e fix(backups): register queries 2023-07-17 16:05:00 +03:00
Houkime 42a5b6f70a test(backups): test backup API - backing up 2023-07-17 16:05:00 +03:00
Inex Code 32a242b560 feat(backups): register backups in GraphQL schema 2023-07-17 16:05:00 +03:00
Inex Code a4b0e6f208 fix: BackupConfiguration argument order 2023-07-17 16:05:00 +03:00
Houkime ad130e392c feature(backups): check available space before restoring 2023-07-17 16:05:00 +03:00
Houkime 780c12df6c refactor(backups): expect one more error of restic json output parsing 2023-07-17 16:05:00 +03:00
Houkime 6da0791b47 feature(backups): integration between restore and jobs 2023-07-17 16:05:00 +03:00
Houkime 792dcd459d fix(backups): return one job, not an array of one 2023-07-17 16:05:00 +03:00
Houkime 5100f1a497 fix(backups): return 400, not 300 2023-07-17 16:05:00 +03:00
Houkime 44e45a5124 BREAKING CHANGE(backups): support only individual service backup requests(combinable) 2023-07-17 16:05:00 +03:00
Houkime 0b8f77e6f7 feature(backups): set autobackup period from gql 2023-07-17 16:05:00 +03:00
Houkime e3545d4541 feature(backups): get all snapshots if requested by api 2023-07-17 16:05:00 +03:00
Houkime 550f7fa620 refactor(backups): introduce get_all_snapshots() 2023-07-17 16:05:00 +03:00
Houkime cc073155db feature(backups): feature(backups): return a snapshot from start_backup 2023-07-17 16:05:00 +03:00
Houkime 891993e4cd feature(backups): a graphql call to invalidate cache 2023-07-17 16:05:00 +03:00
Houkime 7e022e0cfe feature(backups): graphql mutation for restore 2023-07-17 16:05:00 +03:00
Houkime 44ddd27e84 fix(backups): return correct snapshots per service 2023-07-17 16:05:00 +03:00
Houkime 761b6be4e5 refactor(backups): global snapshots 2023-07-17 16:05:00 +03:00
Houkime a76b4ac134 feature(backups): start backup graphql API 2023-07-17 16:05:00 +03:00
Houkime ac9fbbff3e feature(backups): drop repository call 2023-07-17 16:05:00 +03:00
Houkime bdae6cfb75 feature(backups): global init instead of per-service 2023-07-17 16:05:00 +03:00
Houkime e7683352cd feature(backups): a graphql query to get provider info 2023-07-17 16:05:00 +03:00
Houkime d0b27da641 feature(backups): init repo mutation 2023-07-17 16:05:00 +03:00
Houkime d10bf99927 fix(backups): make sure location and credentials get properly passed around 2023-07-17 16:05:00 +03:00
Houkime c5c41b3ced refactor(backups): remove extraneous asserts from jobs 2023-07-17 16:05:00 +03:00
Houkime c8512eacdc refactor(backups): refactor realtime updating 2023-07-17 16:05:00 +03:00
Houkime d38b8180cb feature(backups): realtime progress updates of backups 2023-07-17 16:05:00 +03:00
Houkime 135fb0c42d feature(backups): job progress logs 2023-07-17 16:05:00 +03:00
Houkime ca036b294a refactor(backups): break out job logs status prefix 2023-07-17 16:05:00 +03:00
Houkime afdbf01cfc refactor(backups): use single repo and multiplex by tags 2023-07-17 16:05:00 +03:00
Houkime ecf44e5169 feature(backups): deny adding a backup job if another one is already queued 2023-07-17 16:05:00 +03:00
Houkime ebff2b308a test(backups): test that the job has run 2023-07-17 16:05:00 +03:00
Houkime 2a87eb80f9 refactor(backups): quick-expiration logs of jobs status updates 2023-07-17 16:05:00 +03:00
Houkime f116ce1bdb feature(backups): set job status to error if backup fails 2023-07-17 16:05:00 +03:00
Houkime 05f2cc3f14 refactor(backups): cleanup unused imports in tasks 2023-07-17 16:05:00 +03:00
Houkime f622d617cf test(backups): test jobs starting and finishing when from Backups 2023-07-17 16:05:00 +03:00
Houkime ac6d25c4c1 refactor(backups): make a backup job running when the backup code itself is executed 2023-07-17 16:05:00 +03:00
Houkime 026d72b551 refactor(backups): delete unused redis import from backups ckass 2023-07-17 16:05:00 +03:00
Houkime 029cb47db6 feature(backups): also create a job if not called from a task 2023-07-17 16:05:00 +03:00
Houkime fa86c45bd0 feature(backups): simplest jobs intergration in tasks: created and finished 2023-07-17 16:05:00 +03:00
Houkime 4572c00640 feature(backups): restore task 2023-07-17 16:05:00 +03:00
Houkime d3f9ce7bf5 test(backups): test local secrets 2023-07-17 16:05:00 +03:00
Houkime ebeb76149b refactor(services): make local secret setting public 2023-07-17 16:05:00 +03:00
Houkime 592eb1a1f8 refactor(services): use fully generic foldermoves 2023-07-17 16:05:00 +03:00
Houkime f09d21a031 test(services): test derivation of foldermoves 2023-07-17 16:05:00 +03:00
Houkime 7a5af6af99 test(services): test that we indeed return correct folders and owned folders from real services 2023-07-17 16:05:00 +03:00
Houkime aca05f26ea fix(services): folder methods typing 2023-07-17 16:05:00 +03:00
Houkime 92be699031 refactor(services): make a foldermove from owned path 2023-07-17 16:05:00 +03:00
Houkime 71b987da57 refactor(services): add folder owner derivation 2023-07-17 16:05:00 +03:00
Houkime 9f2dbaa98d refactor(services): add overridable get owner and get group 2023-07-17 16:05:00 +03:00
Houkime 6057e350ef refactor(services): add OwnedPath struct 2023-07-17 16:05:00 +03:00
Houkime df5b318fff refactor(services): remove special storage counting from pleroma 2023-07-17 16:05:00 +03:00
Houkime f0d6ac624d refactor(services): remove special storage counting from ocserv 2023-07-17 16:05:00 +03:00
Houkime ae7f53d1ec refactor(services): remove special storage counting from nextcloud 2023-07-17 16:05:00 +03:00
Houkime 34854b5118 documentation(services): move the storage count docstring to parent service class 2023-07-17 16:05:00 +03:00
Houkime f5de4974e7 refactor(services): remove special storage counting from mail 2023-07-17 16:05:00 +03:00
Houkime 208e256c0f refactor(services): remove special storage counting from jitsi 2023-07-17 16:05:00 +03:00
Houkime 44041662c2 refactor(services): remove special storage counting from gitea 2023-07-17 16:05:00 +03:00
Houkime 3b8168c25d refactor(services): remove special storage counting from bitwarden 2023-07-17 16:05:00 +03:00
Houkime c2cd972805 refactor(services): add a generic storage counter 2023-07-17 16:05:00 +03:00
Houkime 0a9848be47 refactor(services): make get_folders() a mandatory part of Service interface 2023-07-17 16:05:00 +03:00
Houkime ac04425221 refactor(services): add get_folders() to the rest of the services 2023-07-17 16:05:00 +03:00
Houkime 1019031b5b fix(services): use get_foldername() for moving around 2023-07-17 16:05:00 +03:00
Houkime 95b88ea2e4 test(backups): implement get_folders() for gitea 2023-07-17 16:05:00 +03:00
Houkime 498208f083 test(backups): implement get_folders() for bitwarden 2023-07-17 16:05:00 +03:00
Houkime b21d63be63 refactor(backups): set a list of folders for our dummy service 2023-07-17 16:05:00 +03:00
Houkime 3aefbaaf0b refactor(backups): actually accept a list of folders 2023-07-17 16:05:00 +03:00
Houkime f0aabec947 refactor(backups): make api accept a list of folders 2023-07-17 16:05:00 +03:00
Houkime d1e1039519 refactor(backups): make a dedicated get_folders() function 2023-07-17 16:05:00 +03:00
Houkime 507cdb3bbd refactor(services): rename get_location() to get_drive() 2023-07-17 16:05:00 +03:00
Houkime 6132f1bb4c test(backups): register dummy service 2023-07-17 16:05:00 +03:00
Houkime 1940b29161 feature(backups): automatic backup 2023-07-17 16:05:00 +03:00
Houkime 5e9c651c65 test(backups): test autobackup timing 2023-07-17 16:05:00 +03:00
Houkime b305c19559 refactor(backups): split out storage 2023-07-17 16:05:00 +03:00
Houkime f9eaaab929 feature(backups): enable snapshot cache usage 2023-07-17 16:05:00 +03:00
Houkime 2c510ae884 feature(backups): add snapshot cache sync functions 2023-07-17 16:05:00 +03:00
Houkime ed0861aacc test(backups): test last backup date retrieval 2023-07-17 16:05:00 +03:00
Houkime 054b07baa3 feature(backups): add a datetime validator function for huey autobackups 2023-07-17 16:05:00 +03:00
Houkime 343fda0630 test(backups): test setting autobackup period 2023-07-17 16:05:00 +03:00
Houkime 0a4338596b test(backups): test setting services as enabled for autobackups 2023-07-17 16:05:00 +03:00
Houkime 79b9bb352a feature(backups): methods for autobackup period setting and getting 2023-07-17 16:05:00 +03:00
Houkime 951bb8d5ec fix(backups): remove self from static method 2023-07-17 16:05:00 +03:00
Houkime d354f4ac0b feature(backups): check, set and unset service autobackup status 2023-07-17 16:05:00 +03:00
Houkime 43b6ebd04d feature(backups): cache snapshots and last backup timestamps 2023-07-17 16:05:00 +03:00
Houkime d57dc3f7d2 test(backups): test that we do return snapshot on backup 2023-07-17 16:05:00 +03:00
Houkime 35a4fec9d4 feature(backups): return snapshot info from backup function 2023-07-17 16:05:00 +03:00
Houkime a134009165 feature(backups): huey task to back up 2023-07-17 16:05:00 +03:00
Houkime d972fdc3cc refactor(backups): make backups stateless 2023-07-17 16:05:00 +03:00
Houkime 6f8f5cbb9e feature(backups): repo init tracking 2023-07-17 16:05:00 +03:00
Houkime 02deae217d feature(backups): provider storage and retrieval 2023-07-17 16:05:00 +03:00
Houkime 48dc63a590 refactor(backups): add a provider model for redis storage 2023-07-17 16:05:00 +03:00
Houkime 873bc8282e refactor(backups): redis model storage utils 2023-07-17 16:05:00 +03:00
Houkime c928263fce feature(backups): load from json 2023-07-17 16:05:00 +03:00
Houkime 0847e16089 feat(backups): local secret generation and storage 2023-07-17 16:05:00 +03:00
Houkime 60dcde458c feat(backups): sizing up snapshots 2023-07-17 16:05:00 +03:00
Houkime 1d403b0e94 test(backups): test restoring a file 2023-07-17 16:05:00 +03:00
Houkime c8a8d45110 feat(backups): add restore_snapshot and restore_service_from_snapshot 2023-07-17 16:05:00 +03:00
Houkime ff6bc2a142 feat(backups): a better error on failed snapshot retrieval 2023-07-17 16:05:00 +03:00
Houkime e56907f2cd feat(backups): return proper snapshot structs when listing 2023-07-17 16:05:00 +03:00
Houkime 228eab44bb feat(backups): throw an error on a failed backup 2023-07-17 16:05:00 +03:00