Marek Marczykowski-Górecki
7b1e9f3bfb
backups: implement backup header
...
It stores basic backup information like used hmac/crypto algorithm,
whether backup is encrypted/compressed and possibly more. The header
file is parsed only after successful HMAC verification. Because we do
not know which HMAC algorithm was used before reading the header, try to
guess trying all supported (starting with the default one).
Backup header is stored as the first file, which is always not encrypted
and not compressed. Then qubes.xml follows.
2014-01-15 03:53:45 +01:00
Marek Marczykowski-Górecki
4c29d743c8
backups: introduce configurable HMAC/encryption algo
...
For now always set it to default values (no frontend application uses
those parameters), but be prepared for further improvements.
2014-01-15 03:50:29 +01:00
Marek Marczykowski-Górecki
4b493b6d9a
backups: unify compress/encrypt parameter names
2014-01-15 03:45:12 +01:00
Marek Marczykowski-Górecki
a2037a4985
backups: do not hardcode limit values in the code ( #771 )
...
Also introduce limit for stderr read from VM (anti DoS protection).
2014-01-15 03:36:16 +01:00
Marek Marczykowski-Górecki
b85cd0448f
backups: minor fixes, mostly formatting
2014-01-15 01:05:54 +01:00
Marek Marczykowski-Górecki
40953176f4
backups: reorganise restore API
...
Call backup_restore_header from backup_restore_prepare, there is no
sense in requiring the user to call them separately. Also store all
parameters in restore_info object as special '$OPTIONS$' VM to not
require passing them twice (with all the chances for the errors).
2014-01-13 04:45:02 +01:00
Marek Marczykowski-Górecki
338fc74ea2
backups: misc minor fixes
2014-01-13 04:37:54 +01:00
Marek Marczykowski-Górecki
c6ca2725a1
backups: rename classes according to coding style
2014-01-13 04:27:19 +01:00
Marek Marczykowski-Górecki
c825a41909
backups: ignore EPIPE on pipe.close()
...
This is most likely some padding left in output buffer. See #764
comments for details.
2014-01-10 03:31:15 +01:00
Marek Marczykowski-Górecki
6abca8ce57
backups: do not chdir() in main process
...
This can be any application, for example Qubes Manager. Changing current
dir can have side effects, especially when we do not change it back
after restore (or in any error encountered).
2014-01-10 03:30:59 +01:00
Marek Marczykowski-Górecki
29bd92aad9
backups: terminate Extract_Worker on error in main process
2014-01-10 03:28:53 +01:00
Marek Marczykowski-Górecki
d86865d299
backups: fix passing -z option to openssl
...
Note that this is not fix #775 in any way.
2014-01-10 03:26:50 +01:00
Marek Marczykowski-Górecki
01312a17d6
backups: improve error handling in Extract_Worker
...
Terminate children when exception raised. Also rename tar2_command to
tar2_process to improve readability.
2014-01-10 03:23:51 +01:00
Marek Marczykowski-Górecki
eeca3eb697
backups: improve error reporting when something failed in dest VM
2014-01-10 03:20:48 +01:00
Marek Marczykowski-Górecki
bcf1a19807
backups: fix include/exclude of dom0 home in backup
...
Place it in the list just like the other VMs. Then handle separately.
2014-01-10 03:19:22 +01:00
Marek Marczykowski-Górecki
994e963ab8
backup: fix handling errors in source VM
2013-12-29 03:20:27 +01:00
Olivier MEDOC
3fcfbbac22
backups: fix trailing slashes for anonymized vm dirnames
2013-12-10 17:02:45 +01:00
Marek Marczykowski-Górecki
84f8a8a8f1
backups: fix restore dom0 home from old backup format
2013-12-06 06:55:23 +01:00
Marek Marczykowski-Górecki
99b001502a
backups: compression support
2013-12-02 14:05:41 +01:00
Marek Marczykowski-Górecki
1939cf7ce8
backups: report exception on backup write error
...
This is only partial solution - this happens in separate thread so main
thread may not notice this problem (and simply will wait on work queue).
2013-12-02 14:04:20 +01:00
Marek Marczykowski-Górecki
93b7924bc6
backups: hide unwanted "next volume requests" from tar
2013-12-02 03:49:44 +01:00
Marek Marczykowski-Górecki
e9f08aefd7
backups: disable debugging code
2013-12-01 02:35:42 +01:00
Marek Marczykowski-Górecki
3d70402778
backups: add support for restoring old backup format
...
Actually the code is quite similar, so just add few "if" instead of
copying the whole functions.
2013-11-29 03:25:41 +01:00
Marek Marczykowski-Górecki
eaebf04b34
backups: remove some old unneeded code
2013-11-27 03:21:17 +01:00
Marek Marczykowski-Górecki
c8b8cd0d1f
backups: fix restore in non-debug mode
2013-11-27 03:20:45 +01:00
Marek Marczykowski-Górecki
105428accb
backups: fix encrypted backup restore
2013-11-27 03:20:26 +01:00
Marek Marczykowski-Górecki
10100767da
backups: hide VM names in encrypted backup
...
Even when encrypted backup is selected, file list isn't encrypted. Do
not leak VM names in the filenames.
2013-11-27 03:19:23 +01:00
Marek Marczykowski-Górecki
8bdea5b0ab
backups: fix backup of selected appmenus for VM
...
This wasn't working for a long time...
2013-11-27 03:18:14 +01:00
Marek Marczykowski-Górecki
2d68b79bff
backups: fix backup of templates
...
Template is saved as single archive of the whole VM directory. Preserve
backup directory structure regardless of its content - in this case it
means we need "." archive (with template directory content) placed in
"vm-tempates/<template-name>/" backup directory. This allows restore
process to select right files to restore regardless of VM type.
2013-11-26 16:46:34 +01:00
Marek Marczykowski-Górecki
50662bf090
backups: correctly calculate size of file to backup
2013-11-26 16:46:09 +01:00
Marek Marczykowski-Górecki
0b0d50edf3
backups: move import at the beginning of .py file
2013-11-26 16:45:51 +01:00
Marek Marczykowski-Górecki
0743531244
backups: fix VM exclude logic (restore)
2013-11-25 06:33:06 +01:00
Marek Marczykowski-Górecki
bf6bf8ed8f
backups: fix backup header extraction
...
Pass only 'qubes.xml.000' to tar2qfile - this way it will stop reading
the source after requested file(s).
2013-11-25 06:31:38 +01:00
Marek Marczykowski-Górecki
cc37927080
backups: fix backup cleanup
2013-11-25 05:46:57 +01:00
Marek Marczykowski-Górecki
c781a522d8
backups: move backup code to separate file
...
Also some major cleanups: Reduce some more code duplication
(verify_hmac, simplify backup_restore_prepare). Rename
backup_dir/backup_tmpdir variables to better match its purpose. Rename
backup_do_copy back to backup_do. Require QubesVm object (instead of VM
name) as appvm param.
2013-11-25 05:41:13 +01:00