]>
git.proxmox.com Git - proxmox-backup.git/log
Dietmar Maurer [Sat, 7 Dec 2019 14:29:42 +0000 (15:29 +0100)]
src/server/formatter.rs: impl. new result attribute "active"
Dietmar Maurer [Sat, 7 Dec 2019 10:23:33 +0000 (11:23 +0100)]
src/backup/prune.rs: implement --keep-hourly
Dietmar Maurer [Sat, 7 Dec 2019 09:45:43 +0000 (10:45 +0100)]
docs/administration-guide.rst: add hint about ISO week date
Dietmar Maurer [Fri, 6 Dec 2019 18:41:38 +0000 (19:41 +0100)]
src/backup/prune.rs: prune - correctly use iso_week year
Dietmar Maurer [Fri, 6 Dec 2019 18:20:05 +0000 (19:20 +0100)]
docs/administration-guide.rst: doc prune --dry-run
Christian Ebner [Fri, 6 Dec 2019 13:31:19 +0000 (14:31 +0100)]
pxar: fuse: add support for list- and getxattr
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
Christian Ebner [Fri, 6 Dec 2019 12:53:38 +0000 (13:53 +0100)]
pxar: fuse: cache goodbye table for each directory on opendir and release it on releasedir
Cache not only the goodbye table for the last directory but for each opened
directory.
The opendir fuse callback will fill the cache with the goodbye table and
releasedir will remove it from the cache.
This should reduce the number of chuncks fetched from the server in some cases.
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
Christian Ebner [Fri, 6 Dec 2019 12:13:18 +0000 (13:13 +0100)]
pxar: fuse: use binary search instead of linear search in goodbye table.
The goodbye table is layed out as binary search tree based on the hash, so use
this to be more efficient when looking up a hash in the table for directories
with a large number of entries.
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
Dietmar Maurer [Fri, 6 Dec 2019 12:46:02 +0000 (13:46 +0100)]
docs/command-syntax.rst: include catalog-shell-synopsis.rst
Dietmar Maurer [Fri, 6 Dec 2019 12:35:59 +0000 (13:35 +0100)]
src/bin/proxmox-backup-client.rs: white space cleanup
Dietmar Maurer [Fri, 6 Dec 2019 12:35:25 +0000 (13:35 +0100)]
src/bin/proxmox-backup-client.rs: implement prune --dry-run
Dietmar Maurer [Fri, 6 Dec 2019 12:06:56 +0000 (13:06 +0100)]
src/api2/admin/datastore.rs: add new api test_prune()
Dietmar Maurer [Fri, 6 Dec 2019 11:36:41 +0000 (12:36 +0100)]
src/api2/admin/datastore.rs: cleanup - move schema defininition in front of rust method
Dietmar Maurer [Fri, 6 Dec 2019 11:32:53 +0000 (12:32 +0100)]
src/api2/admin/datastore.rs: remove prune parameters from status call
Not idea why they are added there.
Dietmar Maurer [Fri, 6 Dec 2019 11:28:31 +0000 (12:28 +0100)]
src/backup/prune.rs: add new helper keeps_something()
Dietmar Maurer [Fri, 6 Dec 2019 09:08:11 +0000 (10:08 +0100)]
proxmox-backup-client/man1.rst: include catalog shell commands
Dietmar Maurer [Fri, 6 Dec 2019 08:53:14 +0000 (09:53 +0100)]
src/bin/dump-catalog-shell-cli.rs: generate catalog shell docs
Dietmar Maurer [Fri, 6 Dec 2019 08:42:05 +0000 (09:42 +0100)]
rename catalog_shell_api() into catalog_shell_cli()
Dietmar Maurer [Fri, 6 Dec 2019 08:35:47 +0000 (09:35 +0100)]
src/backup/catalog_shell.rs: factor out catalog_shell_api()
In order to extract documentation ...
Christian Ebner [Thu, 5 Dec 2019 16:29:13 +0000 (17:29 +0100)]
debian/control: remove libreadline-dev build dependency
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
Christian Ebner [Thu, 5 Dec 2019 16:23:22 +0000 (17:23 +0100)]
src/backup/readline.rs: removed in favor of new readline impl
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
Christian Ebner [Thu, 5 Dec 2019 16:23:21 +0000 (17:23 +0100)]
src/backup/catalog_shell.rs: adapt to use API Schema definition and rustyline
This major refactoring of the catalog based shell utilizes the new API macro and
the API Schema as well as rustyline instead of the old GNU readline C API.
The code now has these 3 main components:
* The `Shell` which handles the readline loop via rustyline.
* The shell functions defined via the API macro.
* The `Context` which holds catalog and decoder instances.
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
Dietmar Maurer [Fri, 6 Dec 2019 07:56:27 +0000 (08:56 +0100)]
src/backup/prune.rs: define new struct PruneOptions
Dietmar Maurer [Fri, 6 Dec 2019 07:29:27 +0000 (08:29 +0100)]
src/backup/backup_info.rs: remove old prune code
Dietmar Maurer [Fri, 6 Dec 2019 07:15:32 +0000 (08:15 +0100)]
src/backup/prune.rs: add PruneMark::KeepPartial
Use separate mark for partial backup - dont mess them up with regular ones.
Dietmar Maurer [Fri, 6 Dec 2019 07:12:08 +0000 (08:12 +0100)]
src/backup/prune.rs: factor out code into remove_incomplete_snapshots()
Dietmar Maurer [Fri, 6 Dec 2019 07:05:40 +0000 (08:05 +0100)]
src/backup/prune.rs: moved prune related code into extra file
Dietmar Maurer [Thu, 5 Dec 2019 18:01:51 +0000 (19:01 +0100)]
tests/prune.rs: add more tests
Dietmar Maurer [Thu, 5 Dec 2019 17:41:28 +0000 (18:41 +0100)]
src/backup/backup_info.rs - prune: improve algorythm
Dietmar Maurer [Thu, 5 Dec 2019 15:47:08 +0000 (16:47 +0100)]
tests/prune_data: removed, build list manually
Dietmar Maurer [Thu, 5 Dec 2019 12:13:30 +0000 (13:13 +0100)]
src/api2/admin/datastore.rs - prune: log info about all snapshots
Dietmar Maurer [Thu, 5 Dec 2019 10:27:42 +0000 (11:27 +0100)]
docs/administration-guide.rst: explain how prune handles uncomplete backups
Dietmar Maurer [Thu, 5 Dec 2019 10:18:10 +0000 (11:18 +0100)]
src/backup/backup_info.rs - compute_prune_list: remove unfinished backups
Dietmar Maurer [Thu, 5 Dec 2019 08:57:37 +0000 (09:57 +0100)]
tests/prune_data: create test data for regression tests
Dietmar Maurer [Thu, 5 Dec 2019 08:43:46 +0000 (09:43 +0100)]
docs/administration-guide.rst: improve prune docs
Dietmar Maurer [Thu, 5 Dec 2019 07:55:19 +0000 (08:55 +0100)]
src/backup/backup_info.rs: improve prune algorithm
Dietmar Maurer [Wed, 4 Dec 2019 15:08:03 +0000 (16:08 +0100)]
tests/prune.rs: regression tests fro prune
Dietmar Maurer [Wed, 4 Dec 2019 14:49:11 +0000 (15:49 +0100)]
src/backup/backup_info.rs: new compute_prune_list helper
So that we can write regression tests for this.
Dietmar Maurer [Wed, 4 Dec 2019 13:18:11 +0000 (14:18 +0100)]
Revert "test another api macro use"
This reverts commit
a9aa52e6a8aea4fb6db05ce697df684583f3e065 .
Because we do not want to use macros for the backup protocol for now.
And because it crashes backup tasks for some unknown reason.
Dietmar Maurer [Wed, 4 Dec 2019 12:46:57 +0000 (13:46 +0100)]
docs/administration-guide.rst: add prune docs
Dietmar Maurer [Wed, 4 Dec 2019 09:47:41 +0000 (10:47 +0100)]
docs/administration-guide.rst: describe login/logout
Dietmar Maurer [Wed, 4 Dec 2019 09:03:52 +0000 (10:03 +0100)]
src/api2/admin/datastore.rs - read_backup_index: add manifest with size
So that the client can display the size of the index file.
Dietmar Maurer [Tue, 3 Dec 2019 15:58:34 +0000 (16:58 +0100)]
docs/administration-guide.rst: minor cleanups
Dietmar Maurer [Tue, 3 Dec 2019 15:51:43 +0000 (16:51 +0100)]
docs/Makefile: remove paper settings (we set that in conf.py)
Dietmar Maurer [Tue, 3 Dec 2019 15:19:30 +0000 (16:19 +0100)]
docs/administration-guide.rst: explain restore
Dietmar Maurer [Tue, 3 Dec 2019 14:23:24 +0000 (15:23 +0100)]
docs/administration-guide.rst: add encryption section
Wolfgang Bumiller [Tue, 3 Dec 2019 12:40:37 +0000 (13:40 +0100)]
test another api macro use
The api macro now supports hyphens in parameter names and
referencing externally defined `Schema`s, so here's an
example.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Christian Ebner [Wed, 27 Nov 2019 15:27:56 +0000 (16:27 +0100)]
pxar: decoder: fix incorrect read for hardlinks.
Decoders read must check if the file is a hardlink and read data from the
corresponding offset if so.
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
Christian Ebner [Wed, 27 Nov 2019 15:27:55 +0000 (16:27 +0100)]
pxar: decoder: return original name in attributes()
The returned filename should be the one of the file given at the offset, not of
the one the hardlink points to.
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
Dietmar Maurer [Tue, 3 Dec 2019 10:59:00 +0000 (11:59 +0100)]
docs/administration-guide.rst: improve section "Creating Backups"
Dietmar Maurer [Tue, 3 Dec 2019 08:52:53 +0000 (09:52 +0100)]
correctly install bash completion helpers
Dietmar Maurer [Tue, 3 Dec 2019 08:04:49 +0000 (09:04 +0100)]
docs/administration-guide.rst: improve section "Backup Content"
Dietmar Maurer [Tue, 3 Dec 2019 07:32:03 +0000 (08:32 +0100)]
docs/installation.rst: replace FIXME with todo items
Dietmar Maurer [Tue, 3 Dec 2019 07:18:52 +0000 (08:18 +0100)]
docs/introduction.rst: improve "Why Backup" section.
Dietmar Maurer [Mon, 2 Dec 2019 10:56:29 +0000 (11:56 +0100)]
use cli from proxmox::api
Dietmar Maurer [Mon, 2 Dec 2019 10:11:31 +0000 (11:11 +0100)]
src/cli/completion.rs - get_help_completion: fix for "help -" expansion
Dietmar Maurer [Mon, 2 Dec 2019 10:04:40 +0000 (11:04 +0100)]
src/bin/completion.rs: add echo command
Dietmar Maurer [Mon, 2 Dec 2019 09:57:19 +0000 (10:57 +0100)]
src/bin/completion.rs: use api macros
Dietmar Maurer [Mon, 2 Dec 2019 07:52:08 +0000 (08:52 +0100)]
src/cli/command.rs: use insert_help()
Dietmar Maurer [Mon, 2 Dec 2019 07:47:03 +0000 (08:47 +0100)]
src/cli/command.rs: cleanup, remove unused top_def parameter
Dietmar Maurer [Mon, 2 Dec 2019 07:31:03 +0000 (08:31 +0100)]
src/cli/completion.rs - get_simple_completion: remove all_arg_param parameters
Seems useless.
Dietmar Maurer [Sun, 1 Dec 2019 15:41:49 +0000 (16:41 +0100)]
src/cli: improve docs
Dietmar Maurer [Sun, 1 Dec 2019 11:54:41 +0000 (12:54 +0100)]
src/cli/command.rs: make set_help_context private - no need to expose
Dietmar Maurer [Sun, 1 Dec 2019 11:40:37 +0000 (12:40 +0100)]
src/cli/command.rs: improve help command description
Dietmar Maurer [Sun, 1 Dec 2019 10:42:17 +0000 (11:42 +0100)]
src/cli/completion.rs: moved all completion related code here
Dietmar Maurer [Sun, 1 Dec 2019 10:31:35 +0000 (11:31 +0100)]
src/cli/readline.rs: moved readline related code here
Dietmar Maurer [Sun, 1 Dec 2019 10:17:57 +0000 (11:17 +0100)]
src/cli/shellword.rs: moved shellword related code into this file
Dietmar Maurer [Sun, 1 Dec 2019 10:06:54 +0000 (11:06 +0100)]
src/cli/command.rs - get_nested_completion: allow fuzzy match
Dietmar Maurer [Sun, 1 Dec 2019 09:24:07 +0000 (10:24 +0100)]
src/cli/command.rs - get_nested_completion: return nothing if first argument does not match
Dietmar Maurer [Sun, 1 Dec 2019 09:18:47 +0000 (10:18 +0100)]
src/cli/command.rs: improve get_help_completion
Dietmar Maurer [Sun, 1 Dec 2019 08:51:05 +0000 (09:51 +0100)]
tests/verify-api.rs: remove unused use clause
Dietmar Maurer [Sun, 1 Dec 2019 08:42:51 +0000 (09:42 +0100)]
src/cli/command.rs: handle multilevel sub commands in help
Dietmar Maurer [Sat, 30 Nov 2019 14:43:44 +0000 (15:43 +0100)]
src/cli/command.rs: fix help completions
Dietmar Maurer [Sat, 30 Nov 2019 14:08:37 +0000 (15:08 +0100)]
src/bin/completion.rs: add history support
Dietmar Maurer [Sat, 30 Nov 2019 14:08:00 +0000 (15:08 +0100)]
src/cli/command.rs - handle_command: return Result instead of exit()
Dietmar Maurer [Sat, 30 Nov 2019 13:56:31 +0000 (14:56 +0100)]
src/cli.rs: add insert_help() method
Dietmar Maurer [Sat, 30 Nov 2019 11:57:02 +0000 (12:57 +0100)]
src/cli/command.rs: implement help
Wolfgang Bumiller [Fri, 29 Nov 2019 12:37:34 +0000 (13:37 +0100)]
cli/completion: use match statements and .contains()
`match` is a bit more readable than the if-else chains,
also replace
space_chars.iter().any(|s| c == *s)
with
space_chars.contains(&c)
which is also more readable.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Dietmar Maurer [Fri, 29 Nov 2019 11:43:29 +0000 (12:43 +0100)]
remove shellwords crate
Dietmar Maurer [Fri, 29 Nov 2019 10:58:01 +0000 (11:58 +0100)]
use rustyline to replace readline
Wolfgang Bumiller [Fri, 29 Nov 2019 08:52:15 +0000 (09:52 +0100)]
whitespace fixup
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Fri, 29 Nov 2019 08:51:27 +0000 (09:51 +0100)]
update api macro example usage
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Dietmar Maurer [Wed, 27 Nov 2019 13:43:10 +0000 (14:43 +0100)]
src/cli/command.rs: cleanup, make handlers more generic
Wolfgang Bumiller [Wed, 27 Nov 2019 13:19:36 +0000 (14:19 +0100)]
update api macro invocation to new style
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Christian Ebner [Tue, 26 Nov 2019 13:32:48 +0000 (14:32 +0100)]
catalog_shell: fix several clippy warnings
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
Wolfgang Bumiller [Wed, 27 Nov 2019 09:05:37 +0000 (10:05 +0100)]
first api macro usage test/example
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Christian Ebner [Tue, 26 Nov 2019 11:41:58 +0000 (12:41 +0100)]
catalog_shell: major refactoring of cli command definition and parsing
By changing the way shell commands are defined and parsed, this makes it more
straight forward to extend the current functionality.
The readline input is parsed based on the provided command definition and the
given parameters and options are passed to a command specific callback function.
In addition, the provided command definition including its description is used
to generate a help string to display.
The help command shows a list of all supported commands or the help string for
the provided command.
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
Christian Ebner [Tue, 26 Nov 2019 10:33:28 +0000 (11:33 +0100)]
catalog_shell: check and return on empty list in order to avoid division by zero
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
Christian Ebner [Tue, 26 Nov 2019 10:33:27 +0000 (11:33 +0100)]
catalog_shell: do not restore full archive if no entries are selected for restore-selected
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
Dietmar Maurer [Tue, 26 Nov 2019 11:11:21 +0000 (12:11 +0100)]
src/cli/format.rs: move doc generation code into extra file
Dietmar Maurer [Tue, 26 Nov 2019 10:16:46 +0000 (11:16 +0100)]
src/pxar/fuse.rs: add impl Context
Dietmar Maurer [Tue, 26 Nov 2019 10:08:55 +0000 (11:08 +0100)]
src/pxar/fuse.rs: move init and destroy into Session
Dietmar Maurer [Tue, 26 Nov 2019 10:04:46 +0000 (11:04 +0100)]
src/pxar/fuse.rs: cleanup - remove setup_session (moved into new)
Dietmar Maurer [Tue, 26 Nov 2019 09:56:41 +0000 (10:56 +0100)]
src/pxar/fuse.rs: rename from_decoder into new, new into from_path
Dietmar Maurer [Tue, 26 Nov 2019 09:45:11 +0000 (10:45 +0100)]
src/pxar/decoder.rs: use trait object as reader
So that the Decoder is no longer genertic.
Dietmar Maurer [Tue, 26 Nov 2019 08:56:48 +0000 (09:56 +0100)]
src/pxar/sequential_decoder.rs: remove callback from new()
And use an extra functzion set_callback() to configure that.
Also rewrite pxar/fuse.rs and implement a generic Session (will get
further cleanups with next patches).
Dietmar Maurer [Sun, 24 Nov 2019 10:00:53 +0000 (11:00 +0100)]
src/cli/command.rs: use static array for arg_param
Dietmar Maurer [Sat, 23 Nov 2019 08:03:21 +0000 (09:03 +0100)]
rename ApiHandler::Async into ApiHandler::AsyncHttp
Dietmar Maurer [Fri, 22 Nov 2019 17:44:14 +0000 (18:44 +0100)]
src/server/rest.rs: simplify code
Dietmar Maurer [Fri, 22 Nov 2019 16:24:16 +0000 (17:24 +0100)]
src/server/rest.rs: rename get_request_parameters_async to get_request_parameters