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 |
|
Houkime
|
348ece8b9c
|
fix(backups): singleton metaclass was screwing with tests
|
2023-07-17 16:05:00 +03:00 |
|
Houkime
|
a280e5c999
|
test(backups): localfile repo by default in tests
|
2023-07-17 16:05:00 +03:00 |
|
Houkime
|
add4e21f39
|
feature(backups): throw an error if repo init fails
|
2023-07-17 16:05:00 +03:00 |
|
Houkime
|
5efb351159
|
feature(backups): register localfile backend
|
2023-07-17 16:05:00 +03:00 |
|
Houkime
|
529608d52e
|
feature(backups): localfile repo
|
2023-07-17 16:05:00 +03:00 |
|
Houkime
|
3f30469532
|
refactor(backups): repo init service method
|
2023-07-17 16:05:00 +03:00 |
|
Houkime
|
a405eddbcf
|
refactor(backups): add repo init
|
2023-07-17 16:05:00 +03:00 |
|
Houkime
|
5371c7feef
|
refactor(backups): snapshotlist and local secret groundwork
|
2023-07-17 16:05:00 +03:00 |
|
Houkime
|
e156e9cd58
|
test(backup): no snapshots
|
2023-07-17 16:05:00 +03:00 |
|
Houkime
|
83b24f5fcd
|
refactor(backup): snapshot model
|
2023-07-17 16:05:00 +03:00 |
|
Houkime
|
4ca2e62b5c
|
feature(backup): loading snapshots
|
2023-07-17 16:05:00 +03:00 |
|
Houkime
|
a42294b706
|
feature(backup): add a restore function to restic backuper
|
2023-07-17 16:05:00 +03:00 |
|
Houkime
|
a0a0e1fb3b
|
feat(backup): hooks
|
2023-07-17 16:05:00 +03:00 |
|
Houkime
|
178c456593
|
refactor(backup): add a backup function to Backups singleton class
|
2023-07-17 16:05:00 +03:00 |
|
Houkime
|
ff72d4124e
|
refactor(backup): add a placeholder Backups singleton class
|
2023-07-17 16:05:00 +03:00 |
|
Houkime
|
54103973bc
|
test(backup): try to back up!
|
2023-07-17 16:05:00 +03:00 |
|
Houkime
|
a9cd8dda37
|
fix(backup): add memory backup class,forgot to add to git
|
2023-07-17 16:05:00 +03:00 |
|
Houkime
|
86c99c0be8
|
feat(backup): add backuping to restic backuper
|
2023-07-17 16:05:00 +03:00 |
|
Houkime
|
37c18ead99
|
feat(backup): add in-memory backup
|
2023-07-17 16:05:00 +03:00 |
|
Houkime
|
e5a965ea29
|
feat(backup): allow no auth
|
2023-07-17 16:05:00 +03:00 |
|
Houkime
|
45ab9423b9
|
test(backup): dummy service
|
2023-07-17 16:05:00 +03:00 |
|
Houkime
|
9097ba02d7
|
test(backup): provider class selection
|
2023-07-17 16:05:00 +03:00 |
|
Houkime
|
7d76b74dbc
|
feature(backups): copy cli logic to new restic backuper
|
2023-07-17 16:05:00 +03:00 |
|
Houkime
|
1e5fb67374
|
feature(backups): placeholders for the backupers and backup providers
|
2023-07-17 16:05:00 +03:00 |
|
Houkime
|
a3d58be0d5
|
feature(backups): placeholders for the modules of the new backup system
|
2023-07-17 16:05:00 +03:00 |
|
Houkime
|
a1071fd2c9
|
feature(backups): add backup structures and queries
|
2023-07-17 16:05:00 +03:00 |
|
Houkime
|
7b7f782185
|
refactor(backup): do not use config file
|
2023-07-17 16:05:00 +03:00 |
|
Houkime
|
f65c0522b0
|
refactor(backup): pass key and account to exec
|
2023-07-17 16:05:00 +03:00 |
|
Houkime
|
6bf5ee4b64
|
refactor(backup): extract restic repo
|
2023-07-17 16:05:00 +03:00 |
|
Houkime
|
8eab26d552
|
refactor(backup): extract rclone args
|
2023-07-17 16:05:00 +03:00 |
|
Houkime
|
70cf0306a9
|
refactor(backup): delete unused import
|
2023-07-17 16:05:00 +03:00 |
|
Houkime
|
9f19c677d0
|
feature(backup):calculate needed space for inplace restoration
|
2023-07-14 12:34:45 +00:00 |
|
Houkime
|
4aa87edf47
|
fix(servers): hopefully fix moving
|
2023-07-14 10:58:31 +00:00 |
|
Houkime
|
92cfd00f93
|
feature(servers): set default timeout of server operations to 10 min
|
2023-07-12 17:03:24 +00:00 |
|
Houkime
|
e43478d437
|
feature(backups): stop services before restores
|
2023-07-12 16:53:49 +00:00 |
|
Houkime
|
7af7600599
|
feature(backups): stop services before backups
|
2023-07-12 16:43:26 +00:00 |
|
Houkime
|
326e3d3b0c
|
test(backups): do not store the status file in backupped folders
|
2023-07-12 16:00:36 +00:00 |
|
Houkime
|
de8ef744eb
|
refactor(backups): make a StoppedService context manager
|
2023-07-12 15:14:54 +00:00 |
|
Houkime
|
713296c520
|
test(backups): make delay settable per dummyservice
|
2023-07-12 12:27:55 +00:00 |
|
Houkime
|
e7a6700522
|
test(backups): test async service start n stop simulation
|
2023-07-12 12:10:40 +00:00 |
|
Houkime
|
169e9ad57d
|
test(backups): simulating async service start n stop
|
2023-07-10 17:03:10 +00:00 |
|
Houkime
|
6523105d89
|
feature(utils): a hopefully reusable waitloop
|
2023-07-10 10:33:01 +00:00 |
|
Houkime
|
1cefaefa3b
|
feature(backups): expose restore strategies to the API
|
2023-07-07 13:24:05 +00:00 |
|
Houkime
|
2743441e1e
|
fix(backups): actually mount if asked for an inplace restore
|
2023-07-07 13:14:30 +00:00 |
|
Houkime
|
9075afd38a
|
test(backups): test out that pre-restore backup plays nice with jobs
|
2023-07-07 12:50:20 +00:00 |
|
Houkime
|
af5edb695f
|
feature(backups): implement inplace restore strategy
|
2023-07-07 11:54:48 +00:00 |
|
Houkime
|
c74b3df32c
|
feature(backups): restore strategies enum
|
2023-07-07 10:50:59 +00:00 |
|
Houkime
|
53bb5cc4e2
|
feature(backups): forgetting snapshots
|
2023-07-05 13:13:30 +00:00 |
|
Houkime
|
03313b739a
|
feature(backups): check restore exit code
|
2023-07-03 20:53:21 +00:00 |
|
Houkime
|
3dc6fb91f2
|
refactor(backups): download a copy before replacing original
|
2023-07-03 20:41:52 +00:00 |
|
Houkime
|
b6eb27dc5e
|
feature(backups): mounting a repo
|
2023-07-03 15:32:00 +00:00 |
|
Houkime
|
953860a02c
|
refactor(backups): move syncing (non-restic) into backup utils
|
2023-07-03 15:32:00 +00:00 |
|
Houkime
|
6a00d3cff9
|
refactor(backups): move output yielding into backup utils
|
2023-07-03 15:32:00 +00:00 |
|
Houkime
|
9793201ca1
|
feature(backups): a wrapper for rclone sync
|
2023-07-03 15:32:00 +00:00 |
|
Inex Code
|
64e7afe53e
|
feat(backups): Add backup descriptions for UI
|
2023-06-29 14:27:08 +03:00 |
|
Inex Code
|
15ce344bc8
|
feat(backups): expose if the service can be backed up
|
2023-06-29 13:45:00 +03:00 |
|
Inex Code
|
b480c84041
|
style: fix styling
|
2023-06-29 13:44:29 +03:00 |
|
Houkime
|
cd2e9d3ba3
|
fix(jobs): make finishing the job set progress to 100
|
2023-06-28 13:22:53 +00:00 |
|
Inex Code
|
11184a55e8
|
feat(jobs): return type_id of the job in graphql api
|
2023-06-28 15:56:30 +03:00 |
|
Houkime
|
e4865aa094
|
fix(services): proper backup progress reporting
|
2023-06-28 11:45:07 +00:00 |
|
Houkime
|
35258bad38
|
fix(services): cleanup a stray get_location
|
2023-06-28 09:48:32 +00:00 |
|
Houkime
|
59fef1d016
|
fix(backups): register the correct tasks
|
2023-06-28 09:41:03 +00:00 |
|
Inex Code
|
d9b26e12e2
|
fix(backups): missing space in rclone args
|
2023-06-28 12:10:12 +03:00 |
|
Houkime
|
ae16a527a2
|
refactor(backups): rename service_snapshot_size to snapshot_restored_size
|
2023-06-26 19:41:26 +00:00 |
|
Houkime
|
7147f97077
|
refactor(backups): remove the by-service getting of cached snapshots
|
2023-06-26 19:29:29 +00:00 |
|
Houkime
|
bae81b2f69
|
refactor(backups): rename force_snapshot_reload to force_snapshot_cache_reload
|
2023-06-26 19:20:49 +00:00 |
|
Houkime
|
a76834d1ba
|
refactor(backups): merge sync_all_snapshots with force_snapshot_reload
|
2023-06-26 19:16:18 +00:00 |
|
Houkime
|
f8029d133a
|
refactor(backups): straighten get_all_snapshots
|
2023-06-26 19:01:26 +00:00 |
|