Houkime
17a1e34c0d
feature(services): check before moving task and before move itself
2024-03-06 18:40:05 +03:00
Houkime
d7ef2ed09a
refactor(services): make moving a part of generic service functionality
2024-03-06 18:39:27 +03:00
Houkime
7fd09982a4
fix(services): a better error message
2024-03-06 18:39:27 +03:00
Houkime
d34db3d661
fix(services): report moving errors fully
2024-03-06 18:39:27 +03:00
Houkime
28fdf8fb49
refactor(service_mover): decompose the giant move_service
2024-03-06 18:39:27 +03:00
Inex Code
f895f2a38b
refactor: Return last 10 log lines when system rebuild failed
2024-03-06 18:33:55 +03:00
Inex Code
c733cfeb9e
Merge remote-tracking branch 'origin/system-rebuild-tracking' into system-rebuild-tracking
2024-03-05 14:41:43 +03:00
Inex Code
71433da424
refactor: move systemd functions to utils
2024-03-05 11:55:52 +03:00
Houkime
1bed9d87ca
doc(services): explain the Owned Path reason d'etre after trying to remove it
2024-03-04 17:16:08 +00:00
Houkime
2c1c783b5e
fix(services): fix merge bug
2024-03-04 14:26:26 +00:00
Houkime
8402f66a33
refactor(services): remove too many imports and cleanup
2024-03-04 14:12:44 +00:00
Houkime
1599f601a2
refactor(services): introduce Bind class and test moving deeper
2024-03-04 14:12:44 +00:00
Houkime
0068272382
feature(backups): intermittent commit for binds, to be replaced
2024-03-04 14:12:43 +00:00
Houkime
18934a53e6
refactor(services): break out location construction when moving
2024-03-04 14:12:43 +00:00
Houkime
baaf3299ce
refactor(services): fix type annotation
2024-03-04 14:12:43 +00:00
Houkime
f059c83b57
fix(services): check for possible None progress when moving folders
2024-03-04 14:12:43 +00:00
Houkime
fb41c092f1
feature(services): check before moving task and before move itself
2024-03-04 14:12:37 +00:00
Houkime
c947922a5d
refactor(services): make moving a part of generic service functionality
2024-03-04 13:30:03 +00:00
Houkime
b22dfc0469
fix(services): a better error message
2024-03-04 13:30:03 +00:00
Houkime
e42da357fb
fix(services): report moving errors fully
2024-03-04 13:30:03 +00:00
Houkime
2863dd9763
refactor(service_mover): decompose the giant move_service
2024-03-04 13:30:03 +00:00
Inex Code
96f8aad146
Merge branch 'master' into system-rebuild-tracking
2024-03-04 10:54:43 +02:00
Inex Code
36d026a8ca
style: Formatting
2024-03-04 00:45:45 +03:00
Houkime
7ccf495958
refactor(backups): remove excessive format-strings
2024-03-01 13:59:43 +00:00
Houkime
f5d7666614
refactor(backups): remove excessive imports
2024-03-01 13:54:10 +00:00
Houkime
76f5b57c86
refactor(jobs): add explicit return statements
2024-03-01 12:44:08 +00:00
Houkime
bf33fff20d
fix(backups): finish the autobackup job
2024-03-01 12:44:08 +00:00
Houkime
742bb239e7
fix(backups): simplify autobackups to avoid deadlocks
2024-03-01 12:44:08 +00:00
Inex Code
5616dbe77a
style: rename ip6 addresses variable
2024-03-01 15:06:32 +03:00
Inex Code
bbec9d9d33
refactor: use ipaddress library for ip validation
2024-03-01 14:58:28 +03:00
Inex Code
a4327fa669
fix(dns): Ignore link-local IPv6 address
2024-03-01 03:21:31 +03:00
Inex Code
2443ae0144
chore: Remove version flavor
2024-02-26 22:51:31 +03:00
Inex Code
c63552241c
tests: Cover upgrade and rebuild task
2024-02-26 22:49:32 +03:00
Inex Code
d8666fa179
Merge commit '4757bedc4ec62d3577fd1f259abbe34ba6dce893' into system-rebuild-tracking
2024-02-26 18:27:54 +03:00
Inex Code
3965203d28
chore: Bump version to 3.0.1
2024-02-23 20:19:08 +03:00
Houkime
52f8e283be
fix(backups): fix wrong typing in autobackups
2024-02-23 16:45:59 +00:00
Houkime
4757bedc4e
test(backup): add tests for cache reloads
2024-02-13 14:12:41 +02:00
Houkime
bc0602bfcb
fix(backup): rework caching so that there are rarer api calls
2024-02-13 14:12:41 +02:00
Inex Code
25c691104f
fix: non-0 exit status of is-active
2024-02-12 18:58:27 +03:00
Inex Code
1a34558e23
chore: Shorten the output on status_text
2024-02-12 18:54:32 +03:00
Inex Code
c851c3d193
chore: more debugging outuput
2024-02-12 18:53:14 +03:00
Inex Code
ad069a2ad2
fix: wrong unit name again
2024-02-12 18:47:37 +03:00
Inex Code
b98c020f23
fix: wrong systemd unit used
2024-02-12 18:41:24 +03:00
Inex Code
94456af7d4
fix: debugging
2024-02-12 18:34:55 +03:00
Inex Code
ab1ca6e59c
fix: register huey task
2024-02-12 18:27:32 +03:00
Inex Code
56de00226a
chore: Testing env
2024-02-12 18:21:09 +03:00
Inex Code
2019da1e10
feat: Track the status of the nixos rebuild systemd unit
2024-02-12 18:17:18 +03:00
Inex Code
591138c353
Merge pull request 'fix(backups): hopefully clearer errors on backup' ( #87 ) from backup-errorhandling into master
...
Reviewed-on: https://git.selfprivacy.org/SelfPrivacy/selfprivacy-rest-api/pulls/87
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-01-26 15:15:47 +02:00
Houkime
eaf29178fe
fix(backups): hopefully clearer errors on backup
2024-01-24 16:41:49 +00:00
Inex Code
23adf95898
style: Remove unused import
2024-01-24 19:31:56 +04:00
Houkime
e13ad71a93
feature(backups): remove all json logic
2024-01-24 14:36:44 +00:00
Houkime
7ec62a8f79
fix(backups): do not autobackup disabled services
2024-01-12 14:35:15 +00:00
Inex Code
a0eb5d572f
fix(graphql): Typing of the deprecated move_service function
2024-01-10 15:05:10 +02:00
Inex Code
b6f436d8b3
refactor: Adapt API to the NixOS configuration changes
2024-01-10 15:05:10 +02:00
Houkime
2b21df9ad3
chore(version): bump version to 3.0, no Rest API
2024-01-08 13:14:50 +00:00
Houkime
8e21e6d378
feature(services): introduce 'modules' field in userdata and group services settings there
2024-01-08 13:12:27 +00:00
Houkime
8e551a8fe0
refactor(services): use generic code for enabling and disabling
2024-01-08 13:12:27 +00:00
Houkime
b8d02231cf
fix(services): handle the async nature of moving.
2024-01-08 13:12:27 +00:00
Houkime
3080f5a18b
feature(rest): remove rest
2024-01-08 13:12:27 +00:00
Houkime
02b10b5078
feature(auth): remove rest auth code
2024-01-08 13:12:27 +00:00
Houkime
3e1fbdd4aa
feature(services): remove rest services code
2024-01-08 13:12:27 +00:00
Houkime
41cd876f57
feature(users): remove rest users code
2024-01-08 13:12:27 +00:00
Houkime
43d9d47aed
feature(system): remove rest system code
2024-01-08 13:12:27 +00:00
Houkime
4a580e9b7b
feature(system): better error handling for shell calls
2024-01-08 13:12:27 +00:00
Houkime
2e775dad90
fix(users): handle no admin name defined when adding a user
2024-01-08 13:12:27 +00:00
Houkime
e835173fea
fix(users): handle no admin case
2024-01-08 13:12:27 +00:00
Houkime
bcbe1ff50c
refactor(dkim): do not use popen
2024-01-08 13:12:27 +00:00
Houkime
2f25329c43
refactor(backup): remove a redundant constant
2024-01-08 13:12:27 +00:00
Houkime
1b520a8093
feature(ssh): change ssh settings from graphql
2024-01-08 13:12:27 +00:00
Houkime
9f04729296
test(services, system): untie dkim tests from rest
2024-01-08 13:12:27 +00:00
Houkime
9d3fd45c2c
test(services): missing info on service enabled status returns False
2024-01-08 13:12:27 +00:00
Houkime
ffc60fc8b4
test(services): use actual json enabling and disabling
2024-01-08 13:12:27 +00:00
Houkime
368ab22fbb
fix(services): replace stray gitea reference with a generic identifier in deiable/enable
2024-01-08 13:12:27 +00:00
Houkime
f5999516fa
feature(services): better error reporting in disable and enable service
2024-01-08 13:12:27 +00:00
Houkime
0078ed0c3a
refactor(services): delete xxenablexx functions from jitsi
2024-01-08 13:12:27 +00:00
Houkime
c7be9c7427
refactor(services): delete is_enabled() from gitea
2024-01-08 13:12:27 +00:00
Houkime
6f035dc0db
refactor(services): add default implementation to get_enabled
2024-01-08 13:12:27 +00:00
Houkime
708c5cbc98
refactor(services): delete enable/disable from gitea
2024-01-08 13:12:27 +00:00
Houkime
e1083f3221
refactor(services): make a default implementation of enable/disable
2024-01-08 13:12:27 +00:00
Houkime
267cdd391b
fix(backup): do not store maybe unpicklable service on the queue
2024-01-08 13:12:27 +00:00
Houkime
9a1d82ec12
test(service): somewhat support moves for dummy service
2024-01-08 13:12:27 +00:00
Houkime
a12126f685
feature(service): error handling on moves
2024-01-08 13:12:27 +00:00
Houkime
9d7857cb3f
fix(blockdevices): handle nested lsblk
2024-01-08 13:12:27 +00:00
Houkime
9a3800ac7b
test(service): moving errors
2024-01-08 13:12:27 +00:00
Houkime
1e77129f4f
test(service): restart
2024-01-08 13:12:27 +00:00
Houkime
b9f3aa49bd
test(service): enable-disable return values
2024-01-08 13:12:27 +00:00
Houkime
92612906ef
test(service): enabled status get
2024-01-08 13:12:27 +00:00
Houkime
6e9d86e844
test(backup): break out dummy service fixture
2024-01-08 13:12:27 +00:00
Houkime
85c90105ea
test(backup): ensure we use correct repo folder
2024-01-08 13:12:27 +00:00
Houkime
d4b2ca14bb
feature(backups): a task to autorefresh cache. Redis expiry abolished
2024-01-08 13:12:27 +00:00
Inex Code
cbd3cafe0a
chore: Bump version
2023-12-25 10:42:18 +03:00
Inex Code
6d09c7aa9b
feat: Provide display names in DNS records
2023-11-24 13:57:52 +03:00
Houkime
993b58d52d
beauty(backup): remove stray comments and imports, format
2023-11-20 11:29:42 +00:00
Houkime
4339c00058
test(backups): test the trimming task
2023-11-17 15:53:57 +00:00
Houkime
f1a452009a
refactor(backups): only async snapshot trimming
2023-11-17 15:39:21 +00:00
Houkime
5ac93c30ae
refactor(backups): async quota setting
2023-11-17 15:22:21 +00:00
Houkime
25378273eb
refactor(backups): also batch the forget_all_snapshots command
2023-11-17 14:48:41 +00:00
Houkime
615e962965
feature(backups): batched removals of snapshots
2023-11-17 14:36:11 +00:00
Houkime
96bff873a9
test(backups): use backup fixture (weird, i surely used it before)
2023-11-17 14:33:03 +00:00
Inex Code
c3cec36ad4
style: formatting
2023-11-13 19:36:12 +03:00
Houkime
e414f3b8fd
fix(auth): fix timezone issues with recovery tokens
2023-11-13 09:15:12 -07:00
Houkime
1bbb804919
test(auth): token tests clearer about timezone assumptions
2023-11-10 17:40:52 +00:00
Houkime
dd6f37a17d
feature(auth): tz_aware recovery
2023-11-10 17:10:01 +00:00
Houkime
8badb9aaaf
refactor(auth): tz_aware expiration comparison
2023-11-10 13:31:12 +00:00
Houkime
8453f62c74
refactor(time): more time functions
2023-11-10 13:05:38 +00:00
Houkime
73a847f288
feature(time): timestamp parsers
2023-11-10 12:19:32 +00:00
Houkime
b545a400c3
doc(jobs): document that we are tz-naive when storing jobs
2023-11-10 11:47:48 +00:00
Houkime
8caf7e1b24
fix(backups): do not infinitely retry automatic backup if it errors out
2023-11-10 10:20:27 +00:00
Houkime
b7cd703eaa
fix(tokens): missing timezone import
2023-10-25 14:53:18 +00:00
Inex Code
829aca14be
Merge branch 'master' into redis/connection-pool
2023-10-24 19:25:36 +03:00
Houkime
26c0a8fafe
feature(jobs): set 1 hour ttl for successful autobackup jobs
2023-10-10 20:25:14 +03:00
Houkime
0912ac1831
feature(jobs): set ttl via method
2023-10-10 20:25:14 +03:00
Inex Code
07aaa21602
chore: bump version
2023-10-09 12:45:22 +03:00
Inex Code
cebb71ff4a
feat(ssh): Add support for ecdsa keys
2023-10-03 16:51:06 +03:00
Inex Code
62d5de0dd6
refactor(ssh): Remove unused add_root_ssh_key function
2023-10-03 16:41:09 +03:00
Inex Code
8b840d4c2c
fix(backups): expose snapshot reason and set the default value
2023-09-09 09:52:20 +03:00
Inex Code
39baa3725b
Merge remote-tracking branch 'origin/master' into quotas
2023-09-09 03:36:17 +03:00
Inex Code
450a998ea6
chore:bump version
2023-09-09 03:32:57 +03:00
Inex Code
dedd6a9cc9
refactor(backups): use restic-like rotation policy
2023-09-09 03:26:41 +03:00
Houkime
56be3d9c31
fix(backup): trim auto-snapshots on setting the quotas
2023-09-08 16:22:53 +00:00
Houkime
0dfb41a689
feature(backups): a task to autorefresh cache. Redis expiry abolished
2023-09-01 10:41:27 +00:00
Inex Code
ad9384c850
fix(graphql): backup quotas field typing
2023-08-30 12:03:19 +03:00
Houkime
9fdc536f9f
BROKEN(backups): hooking up quotas to API fails. AutobackupQuotas needs to be an input type, but if input type, it fails because it needs to be an Output type, which is not documented
2023-08-28 18:24:29 +00:00
Houkime
0c04975ea4
flx(backups): commit forgotten time.py
2023-08-28 17:24:20 +00:00
Houkime
1fc47b049d
refactor(backups): clean up caps code
2023-08-28 17:23:21 +00:00
Houkime
9207f5385c
feature(backups): actual finegrained quotas
2023-08-28 17:02:45 +00:00
Inex Code
9db717c774
style: linting
2023-08-25 19:28:37 +03:00
Inex Code
ada89a2494
Merge branch 'master' into fix-restores-wrt-service-status
2023-08-25 19:01:16 +03:00
Houkime
1333aad57d
feature(backups): temporarily revert restore job status to created for inplace restore to run backup
2023-08-23 14:35:03 +00:00
Houkime
c68239044f
feature(backups): report status text for restore jobs
2023-08-23 14:18:33 +00:00
Houkime
02b03cf401
feature(backups): report the error text in a job
2023-08-23 14:02:07 +00:00
Houkime
de52dffdda
refactor(backups): a better backup-related service timeout error
2023-08-23 13:55:23 +00:00
Houkime
72535f8655
fix(backups): default timeout to 5 min for service starting and stopping in backup operations
2023-08-23 13:40:04 +00:00
Houkime
0a852d8b50
fix(backups): consider failing services MORE and not try to stop them
2023-08-23 13:39:12 +00:00
Inex Code
f2c972ed5f
chore: bump version
2023-08-23 14:51:15 +03:00
Inex Code
d6cf2abdc2
style: remove unused imports
2023-08-23 14:51:01 +03:00
Houkime
b2c7e8b73a
feature(backups): caps for autobackups
2023-08-21 12:45:31 +00:00
Houkime
30b62c351a
feature(redis): compatibility with str enums
2023-08-21 11:31:29 +00:00
Houkime
027a37bb47
feature(backup): remember the reason for making a snapshot
2023-08-21 11:11:56 +00:00
Houkime
d621ca6449
refactor(backups): clean up unused mounting tools
2023-08-14 12:50:45 +00:00
Houkime
c89f9cf89d
feature(backups): do not rely on mounting
2023-08-14 12:43:44 +00:00
Houkime
69f6e62877
test(backups): more checks regarding tmpdirs and mounting
2023-08-14 11:59:44 +00:00
Houkime
2c9011cc87
fix(backups): robustness against stale locks: everything else
2023-08-09 15:18:20 +00:00
Houkime
0eb70e1551
fix(backups): robustness against stale locks: snapshot sizing
2023-08-09 14:46:27 +00:00
Houkime
26ab7b4d7b
fix(backups): robustness against stale locks: is_initted
2023-08-09 14:27:14 +00:00
Houkime
eca4b26a31
fix(backups): robustness against stale locks: backing up
2023-08-09 13:47:18 +00:00
Houkime
752a0b807e
feature(backups): lock and unlock at will
2023-08-07 13:33:10 +00:00
Inex Code
52336b885d
fix: check if repo is initted by checking retcode
2023-08-04 14:08:23 +03:00
Inex Code
ff70a3588e
chore: bump version
2023-08-04 12:57:31 +03:00
Inex Code
e6189e4e73
Merge branch 'master' into backups-forget
2023-08-04 12:46:08 +03:00
Inex Code
f4263b0288
style: remove unused imports
2023-08-02 08:54:18 +03:00
Inex Code
f08eafc3d8
refactor(services): extract get_drive to the base Service class
2023-08-02 08:51:42 +03:00
Inex Code
a87889b252
refactor: Change Mail Server id from "mailserver" to "email"
...
Nix config uses "email" so we should too.
2023-08-02 07:41:55 +03:00
Houkime
bba837530a
feature(backups): expose forget to API
2023-07-28 10:40:40 +00:00
Inex Code
88af27a8ba
chore: bump version
2023-07-28 03:20:33 +03:00
Inex Code
641ab26069
fix(storage): fix root device detection and ignore iso9660
2023-07-28 03:14:50 +03:00
Inex Code
6660e1d9d5
fix(services): ocserv and jitsi were returning wrong volumes too
2023-07-28 02:31:28 +03:00
Inex Code
3bff43a6bf
fix(mailserver): Location of the "location" attribute was inconsistent
2023-07-28 02:18:05 +03:00
Houkime
00317cc7e4
test(backups): erase repos between tests
2023-07-26 16:52:58 +00:00
Houkime
cfa7f4ae59
feature(backups): add full repo erasure capability
2023-07-26 16:45:08 +00:00
Houkime
ffec344ba8
test(backups): make the test repo overridable by envs
2023-07-26 14:26:04 +00:00
Houkime
aa7cc71557
feature(backups):add a function to set provider from env
2023-07-26 11:54:17 +00:00
Houkime
d664fcbdc4
refactor(jobs):track 100-on-finished as a progress update
2023-07-21 13:06:18 +00:00
Houkime
26488aa12f
fix(backup):force backup function to return same length ids as when getting snapshots
2023-07-21 11:11:24 +00:00
Inex Code
b01247bc55
refactor: remove legacy backups implementations
2023-07-20 20:11:42 +03:00
Inex Code
413911849d
refactor(backups): remove calls of legacy backups API
2023-07-20 20:06:39 +03:00
Inex Code
eafc7a412c
fix: timezone awareness of automatic backup task
2023-07-20 19:42:44 +03:00
Inex Code
c9d20e8efd
fix(backups): make datetimes from huey timezone aware
2023-07-20 19:39:10 +03:00
Inex Code
e0a5ecdd9d
style: reformat
2023-07-20 19:37:01 +03:00
Inex Code
95dbd4fac2
chore: bump version
2023-07-20 19:35:35 +03:00
Inex Code
4b575b6138
fix(graphql): duplicate imports
2023-07-20 18:25:32 +03:00
Inex Code
0245d629fd
refactor(backups): linting
2023-07-20 18:24:26 +03:00
Inex Code
2df448a4a9
fix(backups): Do not shut down the service during backup
...
We do not want the user to expirience outages during automatic backups.
Generally, they are not even needed.
We should use hooks to service-specific tasks, such as
creating the database dump, so we don't have to shut down Postgres.
2023-07-20 17:11:02 +03:00
Houkime
f4ac3d29a9
feature(backup):remove code for finegrained autobackup control
2023-07-19 15:36:25 +00:00
Houkime
466160dbf9
feature(backup):disable finegrain control over services to back up
2023-07-19 15:36:25 +00:00
Inex Code
5253780cc8
style: linting of backups module
2023-07-19 15:59:51 +03:00
Inex Code
3067d353d8
fix(backups): Do not remove failsafe snapshot after recovery
2023-07-19 15:59:29 +03:00
Houkime
fa53264136
refactor(backup):remove unused verify arg from do_restore
2023-07-19 10:51:36 +00:00
Houkime
a303e5ce37
Merge branch 'restic-rewrite' of https://git.selfprivacy.org/SelfPrivacy/selfprivacy-rest-api into restic-rewrite
2023-07-19 10:35:30 +00:00
Inex Code
8b504993d0
fix(backups): backup strategies were unused
2023-07-18 20:15:22 +03:00
Houkime
45011450c5
feature(backup):calculate needed space for inplace restoration
2023-07-17 16:05:00 +03:00
Houkime
097cf50b37
fix(servers): hopefully fix moving
2023-07-17 16:05:00 +03:00
Houkime
c53f35c947
feature(servers): set default timeout of server operations to 10 min
2023-07-17 16:05:00 +03:00
Houkime
b001e198bf
feature(backups): stop services before restores
2023-07-17 16:05:00 +03:00
Houkime
40ad1b5ce4
feature(backups): stop services before backups
2023-07-17 16:05:00 +03:00
Houkime
a7427f3cb5
test(backups): do not store the status file in backupped folders
2023-07-17 16:05:00 +03:00
Houkime
86c2ae2c1f
refactor(backups): make a StoppedService context manager
2023-07-17 16:05:00 +03:00
Houkime
ea4e53f826
test(backups): make delay settable per dummyservice
2023-07-17 16:05:00 +03:00
Houkime
e2b906b219
test(backups): test async service start n stop simulation
2023-07-17 16:05:00 +03:00
Houkime
d33e9d6335
test(backups): simulating async service start n stop
2023-07-17 16:05:00 +03:00
Houkime
8e29634d02
feature(utils): a hopefully reusable waitloop
2023-07-17 16:05:00 +03:00
Houkime
be95b84d52
feature(backups): expose restore strategies to the API
2023-07-17 16:05:00 +03:00
Houkime
cacbf8335d
fix(backups): actually mount if asked for an inplace restore
2023-07-17 16:05:00 +03:00
Houkime
65ce86f0f9
test(backups): test out that pre-restore backup plays nice with jobs
2023-07-17 16:05:00 +03:00
Houkime
95e4296d0b
feature(backups): implement inplace restore strategy
2023-07-17 16:05:00 +03:00
Houkime
59fe386463
feature(backups): restore strategies enum
2023-07-17 16:05:00 +03:00
Houkime
02e3c9bd5e
feature(backups): forgetting snapshots
2023-07-17 16:05:00 +03:00
Houkime
f361f44ded
feature(backups): check restore exit code
2023-07-17 16:05:00 +03:00
Houkime
4423db7458
refactor(backups): download a copy before replacing original
2023-07-17 16:05:00 +03:00
Houkime
9137536294
feature(backups): mounting a repo
2023-07-17 16:05:00 +03:00