]>
git.proxmox.com Git - proxmox-backup.git/log
Dietmar Maurer [Fri, 26 Jun 2020 06:59:51 +0000 (08:59 +0200)]
examples/upload-speed.rs: fix compile error
Dietmar Maurer [Fri, 26 Jun 2020 06:22:46 +0000 (08:22 +0200)]
src/api2/backup.rs: call register_chunk in previous download api
Dietmar Maurer [Fri, 26 Jun 2020 06:14:45 +0000 (08:14 +0200)]
src/backup/index.rs: add chunk_info method
Dietmar Maurer [Thu, 25 Jun 2020 10:23:30 +0000 (12:23 +0200)]
update backup api for incremental backup
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
Dietmar Maurer [Thu, 25 Jun 2020 10:55:34 +0000 (12:55 +0200)]
allow to abort verify jobs
And improve job description rendering on gui.
Thomas Lamprecht [Thu, 25 Jun 2020 09:54:46 +0000 (11:54 +0200)]
ui: file browser: expand child node if only one archive present
Get the first visible node through the Ext.data.NodeInterface defined
"firstChild" element and expand that if there's only one archive
present.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Thomas Lamprecht [Thu, 25 Jun 2020 09:54:22 +0000 (11:54 +0200)]
ui: file browser: adapt height for 4:3 instead of weird 2:1 ratio
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Stefan Reiter [Wed, 24 Jun 2020 13:27:40 +0000 (15:27 +0200)]
extract create_download_response API helper
and put it into a new "api2::helpers" module.
Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
Wolfgang Bumiller [Thu, 25 Jun 2020 07:46:24 +0000 (09:46 +0200)]
[chore] bump to using pxar 0.2.0
This breaks all previously created pxar archives!
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Dietmar Maurer [Wed, 24 Jun 2020 11:34:45 +0000 (13:34 +0200)]
src/bin/proxmox-backup-manager.rs: implement verify
Dietmar Maurer [Wed, 24 Jun 2020 11:11:45 +0000 (13:11 +0200)]
src/api2/admin/datastore.rs: add verify api
Dietmar Maurer [Wed, 24 Jun 2020 10:25:45 +0000 (12:25 +0200)]
src/backup/backup_info.rs: impl Display for BackupGroup
Wolfgang Bumiller [Wed, 24 Jun 2020 09:57:12 +0000 (11:57 +0200)]
update to pxar 0.1.9, update ReadAt implementations
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Dietmar Maurer [Wed, 24 Jun 2020 08:13:56 +0000 (10:13 +0200)]
bump version to 0.3.0-1
Stefan Reiter [Tue, 23 Jun 2020 12:43:10 +0000 (14:43 +0200)]
add incremental backup support
To support incremental backups (where not all chunks are sent to the
server), a new parameter "reuse-csum" is introduced on the
"create_fixed_index" API call. When set and equal to last backups'
checksum, the backup writer clones the data from the last index of this
archive file, and only updates chunks it actually receives.
In incremental mode some checks usually done on closing an index cannot
be made, since they would be inaccurate.
Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
Dietmar Maurer [Wed, 24 Jun 2020 07:15:13 +0000 (09:15 +0200)]
remove debug println
Stefan Reiter [Tue, 23 Jun 2020 12:43:09 +0000 (14:43 +0200)]
fix overflow panic during upload
if *only* data chunks are registered (high chance during incremental
backup), then chunk_count might be one lower then upload_stat.count
because of the zero chunk being unconditionally uploaded but not used.
Thus when subtracting the two, an overflow would occur.
In general, don't let the client make the server panic, instead just set
duplicates to 0.
Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
Dominik Csapak [Tue, 23 Jun 2020 14:00:12 +0000 (16:00 +0200)]
api2/node/disks/zfs: check if default zfs mount path exists
and if it does bail, because otherwise we would get an
error on mounting and have a zpool that is not imported
and disks that are used
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Tue, 23 Jun 2020 13:29:57 +0000 (15:29 +0200)]
ui: fix missing deleteEmpty on SyncJobEdit
else we cannot delete those fields
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Tue, 23 Jun 2020 10:09:54 +0000 (12:09 +0200)]
ui: add pxar FileBrowser
for unencrypted backups, enables browsing the pxar archives and
downloading single files from it
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Tue, 23 Jun 2020 10:09:53 +0000 (12:09 +0200)]
api2/admin/datastore: add pxar-file-download api call
streams a file from a pxar file of an unencrypted backup
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Tue, 23 Jun 2020 10:09:52 +0000 (12:09 +0200)]
api2/admin/datastore: add 'catalog' api call
returns the dir listing of the given filepath of the backup snapshot
the filepath has to be base64 encoded or 'root'
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Tue, 23 Jun 2020 10:09:51 +0000 (12:09 +0200)]
add From<&DirEntryAttribute to CatalogEntryType and make it pub(crate)
we want to get a string representation of the DirEntryAttribute
like 'f' for file, etc. and since we have such a mapping already
in the CatalogEntryType, use that
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Tue, 23 Jun 2020 10:09:50 +0000 (12:09 +0200)]
derive Clone for the LocalChunkReader
this will be necessary for accessing local pxar behind didx files
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Tue, 23 Jun 2020 10:09:49 +0000 (12:09 +0200)]
add LocalDynamicReadAt
mostly copied from BufferedDynamicReadAt from proxmox-backup-client
but the reader is wrapped in an Arc in addition to the Mutex
we will use this for local access to a pxar behind a didx file
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Tue, 23 Jun 2020 10:09:48 +0000 (12:09 +0200)]
ui: add BackupFileDownloader
enables to be able to download whole files from the backup (e.g.
the decoded didx/fidx/blobs) for unencrypted backups
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Tue, 23 Jun 2020 10:09:47 +0000 (12:09 +0200)]
ui: fix sorting of backup snapshots
we have to sort the treestore not the original store where we get the data
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Tue, 23 Jun 2020 10:09:46 +0000 (12:09 +0200)]
ui: fix encrypted column
do not use two different gettexts for groups and single backups
and correct logic for backup groups
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dietmar Maurer [Wed, 24 Jun 2020 04:58:14 +0000 (06:58 +0200)]
src/backup/datastore.rs: add new helpers to load blobs and verify chunks
Dietmar Maurer [Wed, 24 Jun 2020 04:56:48 +0000 (06:56 +0200)]
src/backup/data_blob.rs: cleanup - improve code reuse
Dietmar Maurer [Wed, 24 Jun 2020 04:54:21 +0000 (06:54 +0200)]
src/backup/chunk_store.rs: allow to read name()
This is helpful for logging ...
Dominik Csapak [Tue, 23 Jun 2020 08:30:15 +0000 (10:30 +0200)]
ui: fix undefined data for iodelay
if ios are 0 and io_ticks are defined, the io_delay is zero
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dietmar Maurer [Tue, 23 Jun 2020 09:32:38 +0000 (11:32 +0200)]
tests/prune.rs: fix compile error
Dietmar Maurer [Tue, 23 Jun 2020 06:16:56 +0000 (08:16 +0200)]
cleanup: implement FromStr for BackupGroup
Dietmar Maurer [Tue, 23 Jun 2020 06:09:52 +0000 (08:09 +0200)]
cleanup: implement FromStr for BackupDir
Dietmar Maurer [Tue, 23 Jun 2020 05:44:09 +0000 (07:44 +0200)]
src/bin/proxmox_backup_manager/disk.rs: add renderer for wearout
So that we display the same value as the GUI.
Dominik Csapak [Mon, 15 Jun 2020 09:16:11 +0000 (11:16 +0200)]
remove absolute paths when executing binaries
we set the paths manually, so this is ok
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Mon, 22 Jun 2020 14:44:15 +0000 (16:44 +0200)]
remove debug prints
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Mon, 22 Jun 2020 14:44:14 +0000 (16:44 +0200)]
remove tokio:main from download-speed example
we use proxmox_backup::tools::runtime::main already
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Mon, 22 Jun 2020 14:44:13 +0000 (16:44 +0200)]
add AsyncReaderStream
and replace AsyncIndexReader's stream implementation with that
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dietmar Maurer [Mon, 22 Jun 2020 11:06:11 +0000 (13:06 +0200)]
src/tools/daemon.rs: reopen STDOUT/STDERR journald streams to get correct PID in logs
Wolfgang Bumiller [Mon, 22 Jun 2020 09:10:15 +0000 (11:10 +0200)]
bump pxar dep to 0.1.8
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Dietmar Maurer [Mon, 22 Jun 2020 08:44:26 +0000 (10:44 +0200)]
debian/postinst: use try-reload-or-restart for both services
Wolfgang Bumiller [Mon, 22 Jun 2020 08:58:04 +0000 (10:58 +0200)]
tools::daemon: sync with child after MainPid message
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 22 Jun 2020 08:49:56 +0000 (10:49 +0200)]
tools: add socketpair helper
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 22 Jun 2020 08:20:51 +0000 (10:20 +0200)]
tools::daemon: fetch exe name in the beginning
We get the path to our executable via a readlink() on
"/proc/self/exe", which appends a " (deleted)" during
package reloads.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Dietmar Maurer [Mon, 22 Jun 2020 07:39:37 +0000 (09:39 +0200)]
try to reload proxmox-backup-proxy on package upgrade
Dietmar Maurer [Sat, 20 Jun 2020 05:24:02 +0000 (07:24 +0200)]
avoid compiler warnings
Dietmar Maurer [Sat, 20 Jun 2020 05:19:25 +0000 (07:19 +0200)]
zpool_status.rs - indented_list_to_tree: do not set name property
This is no necessary. We only touch/set 'children' and 'leaf' properties.
Dietmar Maurer [Sat, 20 Jun 2020 05:15:32 +0000 (07:15 +0200)]
src/api2/node/disks/zfs.rs: always set pool name
Dietmar Maurer [Sat, 20 Jun 2020 04:49:06 +0000 (06:49 +0200)]
src/tools/disks/zpool_status.rs: add 'leaf' attribute to root node, rename 'prev' into 'parent'
Dietmar Maurer [Sat, 20 Jun 2020 04:17:22 +0000 (06:17 +0200)]
src/tools/disks/zpool_status.rs: move use clause top of file
Dietmar Maurer [Sat, 20 Jun 2020 04:15:26 +0000 (06:15 +0200)]
fixup for previous commit
Dietmar Maurer [Fri, 19 Jun 2020 16:47:29 +0000 (18:47 +0200)]
src/tools/disks/zpool_status.rs - cleanup: use struct StackItem instead of tuple
Dietmar Maurer [Fri, 19 Jun 2020 16:27:39 +0000 (18:27 +0200)]
src/tools/disks/zpool_status.rs: remove unnecessary checks
Thos things can never happen, so simply use unwrap().
Dietmar Maurer [Fri, 19 Jun 2020 15:51:13 +0000 (17:51 +0200)]
src/tools/disks/zpool_status.rs: simplify code by using serde_json::to_value
Dietmar Maurer [Fri, 19 Jun 2020 14:55:28 +0000 (16:55 +0200)]
src/tools/disks/zpool_status.rs - add all attributes to the tree
Wolfgang Bumiller [Fri, 19 Jun 2020 12:37:40 +0000 (14:37 +0200)]
add general indented_list_to_tree implementation
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Wed, 17 Jun 2020 11:44:21 +0000 (13:44 +0200)]
lru_cache: restrict and annotate Send impl
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Dominik Csapak [Thu, 18 Jun 2020 11:55:29 +0000 (13:55 +0200)]
api2/admin/datastore: add download-decoded endpoint
similar to 'download', but streams the decoded file
when it is not encrypted
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Thu, 18 Jun 2020 11:55:28 +0000 (13:55 +0200)]
impl Sync for DataBlobReader
this is safe for the reason explained in the comment
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Thu, 18 Jun 2020 11:55:27 +0000 (13:55 +0200)]
add AsyncIndexReader
implements AsyncRead as well as Stream for an IndexFile and a store
that implements AsyncReadChunk
we can use this to asyncread or stream the content of a FixedIndex or
DynamicIndex
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Fri, 19 Jun 2020 06:05:09 +0000 (08:05 +0200)]
add Display trait to BackupDir
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Thu, 18 Jun 2020 11:55:26 +0000 (13:55 +0200)]
implement AsyncReadChunk for LocalChunkReader
same as the sync ReadChunk but uses tokio::fs::read instead
of file_get_contents
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Thu, 18 Jun 2020 11:55:25 +0000 (13:55 +0200)]
ui: add encryption info to snapshot list
show which backups/files are encrypted in the snapshot list
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Thu, 18 Jun 2020 11:55:24 +0000 (13:55 +0200)]
api2/admin/datastore/snapshos: show encrypted and size info per file
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Thu, 18 Jun 2020 11:55:23 +0000 (13:55 +0200)]
add encrypted info to Manifest
we want to save if a file of a backup is encrypted, so that we can
* show that info on the gui
* can later decide if we need to decrypt the backup
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Thu, 18 Jun 2020 11:55:22 +0000 (13:55 +0200)]
use the existing async method for read_raw_chunk
does the same, except the manual drop, but thats handled there by
letting the value go out of scope
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Thu, 18 Jun 2020 11:55:20 +0000 (13:55 +0200)]
api2/admin/datastore: log stream error during file download
the client cannot get an error during an chunked http transfer, so at
least log it server side
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Thu, 18 Jun 2020 11:55:19 +0000 (13:55 +0200)]
remove unsafe copy code
copy_nonoverlapping is basically a memcpy which can also be done
via copy_from_slice which is not unsafe
(copy_from_slice uses copy_nonoverlapping internally)
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dietmar Maurer [Thu, 18 Jun 2020 17:40:01 +0000 (19:40 +0200)]
parse_zpool_status_field: handle tabs without copying input
Dietmar Maurer [Thu, 18 Jun 2020 16:38:56 +0000 (18:38 +0200)]
parse_zpool_status_vdev: consider tabs as 8 spaces
Dietmar Maurer [Thu, 18 Jun 2020 13:04:46 +0000 (15:04 +0200)]
src/api2/node/disks/zfs.rs: add zpool_details api
Dietmar Maurer [Thu, 18 Jun 2020 12:55:22 +0000 (14:55 +0200)]
src/tools/disks/zpool_status.rs: improve parser
Dietmar Maurer [Thu, 18 Jun 2020 10:57:55 +0000 (12:57 +0200)]
src/tools/nom.rs: new helper parse_complete_line() for single line parsers
Like parse_complete(), but generates simpler error messages.
Dietmar Maurer [Thu, 18 Jun 2020 10:41:13 +0000 (12:41 +0200)]
src/tools/nom.rs: move nom helpers into separate file
Dietmar Maurer [Thu, 18 Jun 2020 08:31:07 +0000 (10:31 +0200)]
src/tools/disks/zpool_list.rs: split code into separate file
Dietmar Maurer [Thu, 18 Jun 2020 08:23:15 +0000 (10:23 +0200)]
src/tools/disks/zpool_status.rs: parse zpool status output
Dietmar Maurer [Wed, 17 Jun 2020 07:08:26 +0000 (09:08 +0200)]
src/tools/disks/zfs.rs: rename ZFSPoolStatus into ZFSPoolInfo, fix error message
Dietmar Maurer [Wed, 17 Jun 2020 06:31:11 +0000 (08:31 +0200)]
src/api2/node/disks/directory.rs: add early check if disk is unused
Dietmar Maurer [Wed, 17 Jun 2020 06:07:54 +0000 (08:07 +0200)]
src/bin/proxmox_backup_manager/disk.rs: add cli to create mounted disks
Dietmar Maurer [Wed, 17 Jun 2020 06:07:42 +0000 (08:07 +0200)]
avoid compiler warning
Dietmar Maurer [Wed, 17 Jun 2020 05:47:11 +0000 (07:47 +0200)]
src/tools/disks/zfs.rs: cleanup parse_pool_header
Dietmar Maurer [Wed, 17 Jun 2020 05:38:19 +0000 (07:38 +0200)]
src/tools/disks/zfs.rs: add more parser tests
Dietmar Maurer [Wed, 17 Jun 2020 05:14:26 +0000 (07:14 +0200)]
src/tools/disks/zfs.rs: add comment
Dietmar Maurer [Wed, 17 Jun 2020 05:00:54 +0000 (07:00 +0200)]
src/tools/disks/zfs.rs: make zfs list parser private
Dietmar Maurer [Tue, 16 Jun 2020 16:14:35 +0000 (18:14 +0200)]
src/tools/disks/zfs.rs: add regression tests for parse_zfs_list
Dietmar Maurer [Tue, 16 Jun 2020 15:51:17 +0000 (17:51 +0200)]
src/tools/disks/zfs.rs: simplify code
Wolfgang Bumiller [Tue, 16 Jun 2020 12:41:28 +0000 (14:41 +0200)]
move api dump binaries back to src/bin for package building
they're required for docs
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Dominik Csapak [Tue, 16 Jun 2020 09:13:34 +0000 (11:13 +0200)]
ui: add DiskList and DirectoryList
this also contains an adapted CreateDirectory window
for now this is mostly copied, since refactoring was not that
straightforward (changed parameters, etc.)
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dietmar Maurer [Tue, 16 Jun 2020 11:35:21 +0000 (13:35 +0200)]
src/api2/node/disks.rs: expose directory api
Wolfgang Bumiller [Tue, 16 Jun 2020 11:32:23 +0000 (13:32 +0200)]
move test binaries to examples/
These aren't installed and are only used for manual testing,
so there's no reason to force them to be built all the time.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Dietmar Maurer [Tue, 16 Jun 2020 11:24:22 +0000 (13:24 +0200)]
src/api2/node/disks/zfs.rs: add zpool api
Dietmar Maurer [Tue, 16 Jun 2020 11:21:26 +0000 (13:21 +0200)]
src/tools/disks/zfs.rs: cleanup (rename usage properties)
And allow to parse zpool list output without -v flag.
Dietmar Maurer [Tue, 16 Jun 2020 09:47:10 +0000 (11:47 +0200)]
src/tools/disks/zfs.rs: parse more infos (dedup, fragmentation, health)
Dietmar Maurer [Tue, 16 Jun 2020 07:46:06 +0000 (09:46 +0200)]
avoid compiler warnings
Dietmar Maurer [Tue, 16 Jun 2020 05:53:23 +0000 (07:53 +0200)]
use new run_command helper
Wolfgang Bumiller [Tue, 16 Jun 2020 09:25:54 +0000 (11:25 +0200)]
catalog: don't panic on invalid file mtimes
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Tue, 16 Jun 2020 09:25:31 +0000 (11:25 +0200)]
fix file timestamps in catalog
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Tue, 16 Jun 2020 09:04:56 +0000 (11:04 +0200)]
pxar: fix missing subdirectories in catalogs
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>