]>
git.proxmox.com Git - proxmox-backup.git/log
Dietmar Maurer [Fri, 22 Mar 2019 09:14:50 +0000 (10:14 +0100)]
src/backup.rs: add documentation about ChunkStore locking
Dietmar Maurer [Fri, 22 Mar 2019 08:42:15 +0000 (09:42 +0100)]
datastore: use new ProcessLocker
To make sure only one process runs garbage collection while having active writers.
Dietmar Maurer [Fri, 22 Mar 2019 08:41:32 +0000 (09:41 +0100)]
src/tools/process_locker.rs: new() - use generic path parameter
Dietmar Maurer [Fri, 22 Mar 2019 07:04:12 +0000 (08:04 +0100)]
src/tools/process_locker.rs: implement inter-process reader-writer locks
Wolfgang Bumiller [Wed, 20 Mar 2019 08:57:13 +0000 (09:57 +0100)]
tools: style fixup
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Christian Ebner [Wed, 20 Mar 2019 08:28:14 +0000 (09:28 +0100)]
Cleanup of if statement with unwraps by a more compact match statement
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
Dietmar Maurer [Tue, 19 Mar 2019 11:50:15 +0000 (12:50 +0100)]
src/server/rest.rs: correctly extract content type
Dietmar Maurer [Tue, 19 Mar 2019 11:22:17 +0000 (12:22 +0100)]
docs/index.rst: cleanup
Wolfgang Bumiller [Mon, 18 Mar 2019 13:13:44 +0000 (14:13 +0100)]
daemon: simplify daemon creation
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 18 Mar 2019 12:44:37 +0000 (13:44 +0100)]
tools: daemon: rename some structs
Reloadable resources are now 'Reloadable' instead of
'ReexecContinue'.
The struct handling the reload is a 'Reloader', not a
'ReexecStore'.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 18 Mar 2019 11:27:00 +0000 (12:27 +0100)]
add reload support to api daemon
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 11 Mar 2019 08:38:35 +0000 (09:38 +0100)]
add reload support to proxy
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 18 Mar 2019 10:52:04 +0000 (11:52 +0100)]
tools: implement ReexecContinue for tokio's TcpListener
This is the only thing we currently need to keep alive for
reloads.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 18 Mar 2019 10:50:10 +0000 (11:50 +0100)]
tools: daemon: add a default signalfd helper
Proxy and daemon for now just want to handle reload via
`SIGHUP`, so provide a helper creating the signalfd stream
doing that - this is simply a filtered stream which passes
the remaining signals through, so it can be used exactly
like the signalfd stream could before to add more signals.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Tue, 12 Mar 2019 09:40:25 +0000 (10:40 +0100)]
tools: add daemon helpers
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 18 Mar 2019 10:39:09 +0000 (11:39 +0100)]
tools: add fd_change_cloexec helper
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 18 Mar 2019 10:57:37 +0000 (11:57 +0100)]
proxy: listener error handling fixup
If the listening socket goes into some error state we'll get
std::io::Errors rather than higher level errors from the
native_tls::TlsAcceptor, those are usually fatal. (Ran into
this after performing a shutdown() on the file descriptor,
after which the future just endlessly loops in accept().)
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Dietmar Maurer [Mon, 18 Mar 2019 11:27:30 +0000 (12:27 +0100)]
src/pxar.rs: improve docu
Dietmar Maurer [Mon, 18 Mar 2019 09:00:58 +0000 (10:00 +0100)]
avoid compiler warnings
Dietmar Maurer [Sat, 16 Mar 2019 15:44:45 +0000 (16:44 +0100)]
start file format docu
Dietmar Maurer [Sat, 16 Mar 2019 13:22:14 +0000 (14:22 +0100)]
src/bin/dynamic-files.rs: test case for file shrink during backup
Dietmar Maurer [Sat, 16 Mar 2019 10:02:12 +0000 (11:02 +0100)]
pxar: implement hardlinks
So we are no longer compatible with catar ...
Wolfgang Bumiller [Fri, 15 Mar 2019 13:28:08 +0000 (14:28 +0100)]
protocol: c-api: add proxmox_backup_finish_backup to .h
this was missing
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Fri, 15 Mar 2019 13:21:12 +0000 (14:21 +0100)]
protocol: use Option<fn()> for nullable function
This should have the same memory layoutas a simple `fn()`
with NULL function pointers mapping to None.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Fri, 15 Mar 2019 11:35:38 +0000 (12:35 +0100)]
protocol: add C header work in progress and test client
The test client simply (optionally) requests a list of
hashes of an existing file.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Fri, 15 Mar 2019 11:35:24 +0000 (12:35 +0100)]
protocol: add C bindings for Connector
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Fri, 15 Mar 2019 11:35:08 +0000 (12:35 +0100)]
protocol: C-API improvements
- make Client creation reusable
- add helper to create a CApiSocket for any Read + Write
streams
- add drop callback (required for the above)
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Fri, 15 Mar 2019 11:33:51 +0000 (12:33 +0100)]
protocol: add connector
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Dietmar Maurer [Fri, 15 Mar 2019 11:19:51 +0000 (12:19 +0100)]
src/pxar/encoder.rs: detect hardlinks
Dietmar Maurer [Fri, 15 Mar 2019 11:15:38 +0000 (12:15 +0100)]
src/pxar/sequential_decoder.rs: dump_entry - fix FIFO/SOCKET handling
Dietmar Maurer [Fri, 15 Mar 2019 10:34:31 +0000 (11:34 +0100)]
src/pxar/binary_search_tree.rs: fix test
Dietmar Maurer [Fri, 15 Mar 2019 09:18:28 +0000 (10:18 +0100)]
cleanup: remove dead code
Dietmar Maurer [Fri, 15 Mar 2019 08:36:05 +0000 (09:36 +0100)]
src/pxar/decoder.rs: implement seekable decoder
Dietmar Maurer [Fri, 15 Mar 2019 07:36:02 +0000 (08:36 +0100)]
renamed: src/pxar/decoder.rs -> src/pxar/sequential_decoder.rs
Dietmar Maurer [Fri, 15 Mar 2019 07:24:32 +0000 (08:24 +0100)]
simplify pxar module structure
Dietmar Maurer [Fri, 15 Mar 2019 07:03:44 +0000 (08:03 +0100)]
src/bin/pxar.rs: implement extract
Dietmar Maurer [Fri, 15 Mar 2019 07:02:04 +0000 (08:02 +0100)]
src/pxar/decoder.rs: correctly call callback()
Dietmar Maurer [Fri, 15 Mar 2019 06:20:22 +0000 (07:20 +0100)]
rename PxarBackupWriter into PxarDecodeWriter
Dietmar Maurer [Fri, 15 Mar 2019 06:16:26 +0000 (07:16 +0100)]
src/client/http_client.rs: avoid compiler warning
Dietmar Maurer [Fri, 15 Mar 2019 06:12:40 +0000 (07:12 +0100)]
src/cli/command.rs: fix iterator usage
Dietmar Maurer [Fri, 15 Mar 2019 06:12:11 +0000 (07:12 +0100)]
src/pxar/decoder.rs: improve docu
Dietmar Maurer [Thu, 14 Mar 2019 16:45:47 +0000 (17:45 +0100)]
src/pxar/decoder.rs: avoid compiler warnings
Dietmar Maurer [Thu, 14 Mar 2019 16:43:11 +0000 (17:43 +0100)]
src/bin/pxar.rs: implement dump/list
Dietmar Maurer [Thu, 14 Mar 2019 12:10:27 +0000 (13:10 +0100)]
src/pxar/decoder.rs: implement dump_archive
use this to debug archive problems ...
Dietmar Maurer [Thu, 14 Mar 2019 09:54:09 +0000 (10:54 +0100)]
rename catar into pxar
To avoid confusion with the casync implementation.
Dietmar Maurer [Thu, 14 Mar 2019 09:14:32 +0000 (10:14 +0100)]
rename catar into pxar
Seems impossible to stay compatible with the original catar specification,
so we change the name to avoid confusions.
Dietmar Maurer [Thu, 14 Mar 2019 07:17:35 +0000 (08:17 +0100)]
src/tools.rs: improve file name completion
Use current working directory by default.
Dietmar Maurer [Thu, 14 Mar 2019 07:09:35 +0000 (08:09 +0100)]
src/bin/proxmox-backup-client.rs: complete archive names
Wolfgang Bumiller [Wed, 13 Mar 2019 13:15:46 +0000 (14:15 +0100)]
protocol: add missing finish_backup to C API
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Wed, 13 Mar 2019 13:15:30 +0000 (14:15 +0100)]
protocol: cleanup finish_backup
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Dietmar Maurer [Wed, 13 Mar 2019 12:31:29 +0000 (13:31 +0100)]
src/bin/proxmox-backup-client.rs: implement completion for snapshots
Dietmar Maurer [Wed, 13 Mar 2019 11:26:01 +0000 (12:26 +0100)]
src/bin/proxmox-backup-client.rs: implement chunk-size completion
Dietmar Maurer [Wed, 13 Mar 2019 11:17:39 +0000 (12:17 +0100)]
src/bin/proxmox-backup-client.rs: cleanup
Dietmar Maurer [Wed, 13 Mar 2019 10:56:37 +0000 (11:56 +0100)]
src/bin/proxmox-backup-client.rs: implement completion for backup groups
Dietmar Maurer [Wed, 13 Mar 2019 09:09:39 +0000 (10:09 +0100)]
src/client/backup_repo.rs: implement FromStr trait
Dietmar Maurer [Wed, 13 Mar 2019 08:57:36 +0000 (09:57 +0100)]
src/client/backup_repo.rs: implement Display trait
Dietmar Maurer [Wed, 13 Mar 2019 08:47:12 +0000 (09:47 +0100)]
src/bin/proxmox-backup-client.rs: implement repository completions
Dietmar Maurer [Wed, 13 Mar 2019 06:23:59 +0000 (07:23 +0100)]
src/bin/proxmox-backup-client.rs: fix BACKUPSPEC_REGEX - correctly specify non-capture group
And improve bash completion.
Dietmar Maurer [Tue, 12 Mar 2019 13:53:41 +0000 (14:53 +0100)]
src/cli/command.rs: fix completion - never display argument parameters as option
Dietmar Maurer [Tue, 12 Mar 2019 13:39:51 +0000 (14:39 +0100)]
src/cli/command.rs: pass parsed parameters to completion function
Dietmar Maurer [Tue, 12 Mar 2019 13:38:47 +0000 (14:38 +0100)]
src/cli/getopts.rs: factor out reusable code
Dietmar Maurer [Tue, 12 Mar 2019 11:54:16 +0000 (12:54 +0100)]
src/cli/command.rs: use a HashMap to store fixed param as key/value pairs
Dietmar Maurer [Tue, 12 Mar 2019 11:07:45 +0000 (12:07 +0100)]
src/cli/command.rs: improve completions
Wolfgang Bumiller [Tue, 12 Mar 2019 08:57:31 +0000 (09:57 +0100)]
signalfd cleanup
- add comment about the boxed file descriptor (and others)
- reexport SigSet and Signal for convenience
- remove Result wrapper (only used once)
- enforce drop order of the PollEvented2 struct with respect
to the boxed fd
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Tue, 12 Mar 2019 07:05:55 +0000 (08:05 +0100)]
add missing mio crate for signalfd
This is what actually provides EventedFd used by tokio.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 11 Mar 2019 08:35:47 +0000 (09:35 +0100)]
tools: add async signalfd handler
This provides a Stream<Item = siginfo> via nix' signalfd,
by wrapping it in tokio's PollEvented2 struct to allow
polling via tokio's event loop.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Dietmar Maurer [Mon, 11 Mar 2019 13:31:01 +0000 (14:31 +0100)]
src/catar/decoder.rs: simplify public restore API
Dietmar Maurer [Mon, 11 Mar 2019 09:51:48 +0000 (10:51 +0100)]
src/bin/proxmox-backup-client.rs: strip .didx file extensions
Dietmar Maurer [Mon, 11 Mar 2019 09:23:16 +0000 (10:23 +0100)]
src/bin/proxmox-backup-client.rs: include file extension in backupspec
Dietmar Maurer [Mon, 11 Mar 2019 07:14:28 +0000 (08:14 +0100)]
src/catar/decoder.rs: cleanup style
Dietmar Maurer [Mon, 11 Mar 2019 06:27:45 +0000 (07:27 +0100)]
src/catar/decoder.rs: dir_mkdirat - add create_new flag
Dietmar Maurer [Fri, 8 Mar 2019 15:55:54 +0000 (16:55 +0100)]
src/catar/decoder.rs: implement real sequential decoder (no Seek)
I copied the old code to src/catar/inspector.rs. Will modify
that later to implement a random access decoder ...
Dietmar Maurer [Fri, 8 Mar 2019 08:33:53 +0000 (09:33 +0100)]
src/bin/proxmox-backup-client.rs: impl option all-file-systems
Wolfgang Bumiller [Fri, 8 Mar 2019 08:29:27 +0000 (09:29 +0100)]
move chunker into proxmox_protocol
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Dietmar Maurer [Fri, 8 Mar 2019 08:28:12 +0000 (09:28 +0100)]
src/bin/catar.rs: implement all-file-systems option
Dietmar Maurer [Fri, 8 Mar 2019 08:25:00 +0000 (09:25 +0100)]
src/catar/encoder.rs: log skipped mount points
Dietmar Maurer [Fri, 8 Mar 2019 07:23:07 +0000 (08:23 +0100)]
src/catar/encoder.rs: remove debug output
Dietmar Maurer [Fri, 8 Mar 2019 07:20:56 +0000 (08:20 +0100)]
src/bin/catar.rs: implement verbose flags
Dietmar Maurer [Fri, 8 Mar 2019 07:14:26 +0000 (08:14 +0100)]
src/catar/encoder.rs: use simply flag "all_file_systems"
Wolfgang Bumiller [Thu, 7 Mar 2019 13:36:57 +0000 (14:36 +0100)]
protocol: use size_t for c api instead of ulong
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Thu, 7 Mar 2019 13:32:12 +0000 (14:32 +0100)]
protocol: expose chunker and digest function
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Thu, 7 Mar 2019 12:50:41 +0000 (13:50 +0100)]
protocol: allow explicitly polling for a single packet
When using *blocking* I/O wait_for_* functions need to be
able to not read past their awaited packet.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Thu, 7 Mar 2019 12:50:27 +0000 (13:50 +0100)]
protocol: also build a cdylib
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Thu, 7 Mar 2019 12:48:58 +0000 (13:48 +0100)]
protocol: remove redundant WouldBlock handling
The packet reading code already translates this to a bool.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Dietmar Maurer [Thu, 7 Mar 2019 11:57:04 +0000 (12:57 +0100)]
Makefile: copy zstd-sys into build
Dietmar Maurer [Thu, 7 Mar 2019 11:53:19 +0000 (12:53 +0100)]
depend on zstd 1.3.8
On debiln stretch, you need to install that from debian backuports ...
Wolfgang Bumiller [Thu, 7 Mar 2019 10:50:32 +0000 (11:50 +0100)]
cargo: patch zstd-sys to use system library
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Thu, 7 Mar 2019 10:44:48 +0000 (11:44 +0100)]
Revert "TEMP: dynamically link against liblz4 for testing"
This reverts commit
dc04ce7fe5f61095b6c67addcdd35524baaf274b .
Dietmar Maurer [Thu, 7 Mar 2019 11:14:26 +0000 (12:14 +0100)]
src/cli/command.rs: print_bash_completion - avoid crash
Dietmar Maurer [Thu, 7 Mar 2019 10:42:59 +0000 (11:42 +0100)]
src/backup/chunk_store.rs: use zstd compression insteadf of lz4
Provides better compressionm rate, and is still fast.
Dietmar Maurer [Thu, 7 Mar 2019 09:40:01 +0000 (10:40 +0100)]
src/backup/chunk_store.rs: read_chunk - clear buffer before calling read_to_end
Wolfgang Bumiller [Thu, 7 Mar 2019 07:42:50 +0000 (08:42 +0100)]
TEMP: dynamically link against liblz4 for testing
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Dietmar Maurer [Wed, 6 Mar 2019 10:18:46 +0000 (11:18 +0100)]
src/bin/proxmox-backup-client.rs: correctly strip file extension
Dietmar Maurer [Wed, 6 Mar 2019 09:50:46 +0000 (10:50 +0100)]
src/bin/proxmox-backup-client.rs: impl restore
Dietmar Maurer [Wed, 6 Mar 2019 09:49:59 +0000 (10:49 +0100)]
src/api2/admin/datastore.rs: impl list_snapshot_files
Dietmar Maurer [Wed, 6 Mar 2019 09:49:01 +0000 (10:49 +0100)]
src/backup/backup_info.rs: new helper to list files
Dietmar Maurer [Wed, 6 Mar 2019 09:47:09 +0000 (10:47 +0100)]
src/api2/admin/datastore/catar.rs: use archive_name directly
Dietmar Maurer [Wed, 6 Mar 2019 09:45:38 +0000 (10:45 +0100)]
src/client/http_client.rs: impl download
Wolfgang Bumiller [Wed, 6 Mar 2019 09:39:00 +0000 (09:39 +0000)]
buildsys: copy proxmox-protocol to build/
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Wed, 6 Mar 2019 09:23:56 +0000 (10:23 +0100)]
add protocol test client
This uses futures for everything which is mostly useful as a
test to see if the protocol crate's non-blocking I/O support
can handle it...
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>