Dane Everitt
98c68142cd
Remove all of the remaining API logic and port it all to the remote.Client type
2021-02-01 21:28:46 -08:00
Dane Everitt
6ef0bd7496
Get general concept for backup resotration using a unified interface implemented
2021-01-18 21:20:58 -08:00
Dane Everitt
66b6f40b61
Fix import cycle issue
2021-01-17 21:05:51 -08:00
Dane Everitt
7dd0acebc0
Initial untested pass at restoring from local backups
2021-01-16 18:06:22 -08:00
Dane Everitt
902f9f5944
Include more (and customizable) context with backup logs
2020-12-27 16:16:40 -08:00
Matthew Penner
b26db99ee7
Fix part_id field in logs
2020-12-27 13:02:50 -07:00
Matthew Penner
de4d2f4724
Make logs follow a more consistent format
2020-12-27 13:01:34 -07:00
Matthew Penner
640e30de8a
Ignore symlinks with missing target, add better backup logging, update copyright year to 2021
2020-12-27 12:54:18 -07:00
Matthew Penner
5c78cb9ab3
Add transfer logging output ( #77 )
...
Co-authored-by: Dane Everitt <dane@daneeveritt.com>
2020-12-25 13:32:41 -08:00
Matthew Penner
901ab1157d
Rework archiving logic to be more consistent and less impactful on disk IO ( #79 )
...
Co-authored-by: Dane Everitt <dane@daneeveritt.com>
2020-12-25 11:52:57 -08:00
Dane Everitt
59a111de39
Invite our lord and savior emperror back to the table
2020-12-15 21:56:53 -08:00
Matthew Penner
8e29ffed50
Add configurable disk write speed limit for backups ( #74 )
...
* Add configurable disk write speed limit for backups
2020-12-08 09:13:48 -07:00
Matthew Penner
b52c3fb61e
Cleanup backup/backup_s3.go
2020-12-06 15:25:11 -07:00
Matthew Penner
ee08829a28
s3 backups: handle CompleteMultipartUpload and AbortMultipartUpload on the panel
2020-12-06 13:56:17 -07:00
Matthew Penner
de51fd1c51
Error handling improvements ( #71 )
...
* Remove `emperror.dev/errors`, remove all `errors#Wrap` and `errors#WithStack` calls
* Improve logging in `server/backup.go`
2020-11-28 16:57:10 -07:00
Matthew Penner
287b286940
Oh, that's why it was done like that
2020-11-18 18:44:25 -07:00
Matthew Penner
1d0e85cf55
Attempt to fix 'archive/tar: write too long' error when creating a backup
2020-11-18 16:30:34 -07:00
Dane Everitt
be9d1a3986
Replace error handling package with emperror; add better reporting for errors escaping server root
2020-11-08 13:52:20 -08:00
Matthew Penner
05cfb59e18
Add better logging for s3 backup uploads
2020-11-01 15:36:16 -07:00
Matthew Penner
5475cb02c1
Cleanup s3 backup uploads, add request timeouts
2020-11-01 15:23:46 -07:00
Matthew Penner
1239b1c0ca
Switch to s3 multipart uploads for backups
2020-11-01 15:23:46 -07:00
Dane Everitt
de30e2fcc9
Dont attempt to get size within archive process, will return empty; ref pterodactyl/panel#2420
...
The stat call is operating against an unflushed file if called in the archive function, so you'll just get the emtpy archive size, rather than the final size.
Plus, we only used the file stat in one place, so slight efficiency win?
2020-09-27 11:16:38 -07:00
Matthew Penner
7ba32aca84
Fix some typos and run gofmt on all .go files
2020-09-05 13:08:40 -06:00
Dane Everitt
5f1d9ff151
Don't throw a 500 error if the backup is missing; closes pterodactyl/panel#2280
2020-08-31 20:24:07 -07:00
Dane Everitt
0dde54fc8f
Don't blow up if a file gets removed during the backup
2020-08-27 19:57:35 -07:00
Dane Everitt
0e474c8b24
Better error captures
2020-08-27 19:57:22 -07:00
Dane Everitt
a1288565f0
Significant CPU and syscall performance improvements when iterating large directories
2020-08-24 20:45:54 -07:00
Dane Everitt
7287b8e198
Pass the checksum type along in the request
2020-08-23 17:52:46 -07:00
Dane Everitt
d1485d7c5f
Limit the number of threads to avoid pinning a host machine
2020-08-23 17:46:35 -07:00
Matthew Penner
08bcb31b9e
Change compression level to BestSpeed and use sha1 instead of sha256
2020-08-23 18:34:48 -06:00
Dane Everitt
09826fc7ad
Performance improvements by using a smaller buffer size
2020-08-23 17:18:40 -07:00
Matthew Penner
f4c10e5a23
Add some missing error handling, fix a few typos
2020-07-15 13:11:12 -06:00
Dane Everitt
c1e591c99b
Support generating a compressed archive for a server via the API
2020-07-11 13:13:49 -07:00
Dane Everitt
7d4a8d7f7e
Update everything expect transfers & sftp to not use zap
2020-06-13 10:40:26 -07:00
Dane Everitt
0bd28a4480
Cleanup S3 support; send actual backup details in response
2020-05-09 19:24:30 -07:00
Dane Everitt
b2797ed292
Abstract out shared backup functionality
2020-05-02 15:02:02 -07:00
Dane Everitt
507d0100cf
Hilariously rough code to get a backup pushed into S3
2020-04-26 17:20:26 -07:00
Dane Everitt
91d12ab9a7
More abstract support for backups & misc code cleanup in that area
2020-04-26 16:43:18 -07:00
Dane Everitt
1e2da95d26
Support data coming from the panel better
2020-04-26 16:21:58 -07:00
Dane Everitt
df6d98bbda
Add support for ignoring directories/files; fix compression of archives
2020-04-18 23:26:23 -07:00
Dane Everitt
4ff7bd2777
Abstract out more of the backup functionality
2020-04-17 13:46:36 -07:00
Dane Everitt
11035b561a
Break out the backup functions of the daemon in prep for S3 support
2020-04-13 22:01:07 -07:00