]> git.proxmox.com Git - proxmox-backup.git/log
proxmox-backup.git
2 years agoupdate to proxmox-subscription 0.3
Fabian Grünbichler [Wed, 7 Sep 2022 12:16:46 +0000 (14:16 +0200)]
update to proxmox-subscription 0.3

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agoupdate proxmox-router to 1.3.0
Fabian Grünbichler [Wed, 7 Sep 2022 07:21:41 +0000 (09:21 +0200)]
update proxmox-router to 1.3.0

no real change for PBS usage - the ApiHandler enum is marked
non_exhaustive now because it has extra values if the new (enabled by
default) "server" feature is enabled.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agoupdate to proxmox-http 0.7
Fabian Grünbichler [Fri, 19 Aug 2022 11:27:14 +0000 (13:27 +0200)]
update to proxmox-http 0.7

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agobackup-client: mount: fix read of larger files
Dominik Csapak [Fri, 2 Sep 2022 07:21:14 +0000 (09:21 +0200)]
backup-client: mount: fix read of larger files

fuse_lowlevel.h says about read:

 Read should send exactly the number of bytes requested except
 on EOF or error, otherwise the rest of the data will be
 substituted with zeroes.

but we simply forwarded the bytes we got from 'read_at'. The result was
that files were corrupt as soon as read_at returned not the exact number
of bytes requested. such short reads are easy to trigger with large
files (where reading a file has to cross many chunk boundaries).

To fix that, loop over 'read_at' until our buffer is full, or we read
0 bytes, indicating EOF.

reported in the forum:
https://forum.proxmox.com/threads/proxmox-backup-client-mounting-a-pxar-archive-gives-truncated-files.114447/

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Added comment, reworded slightly

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agobuild: more missing features
Fabian Grünbichler [Mon, 5 Sep 2022 10:55:33 +0000 (12:55 +0200)]
build: more missing features

these would cause failures when building the sub-crates directly from
their sub-directory.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agopbs-config: add missing proxmox-sys/timer feature
Fabian Grünbichler [Mon, 5 Sep 2022 10:18:00 +0000 (12:18 +0200)]
pbs-config: add missing proxmox-sys/timer feature

else building pbs-config directly (not from the workspace root with `-p
pbs-config`) fails (and so do similar dep chains that don't pull in the
feature via another way, like `cd proxmox-backup-client; cargo build`).

Reported-by: Dominiki Csapak <d.csapak@proxmox.com>
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agouse short assign-bit-or (clippy fix)
Fabian Grünbichler [Mon, 22 Aug 2022 11:15:53 +0000 (13:15 +0200)]
use short assign-bit-or (clippy fix)

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agoupdate to nom 7
Fabian Grünbichler [Fri, 19 Aug 2022 11:49:09 +0000 (13:49 +0200)]
update to nom 7

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agorustfmt
Wolfgang Bumiller [Fri, 19 Aug 2022 11:38:46 +0000 (13:38 +0200)]
rustfmt

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoproxmox-backup-client: added ignore-acls/xattrs/ownership/permissions & overwrite...
Markus Frank [Fri, 19 Aug 2022 10:48:48 +0000 (12:48 +0200)]
proxmox-backup-client: added ignore-acls/xattrs/ownership/permissions & overwrite parameters

If ignore-acls/ignore-xattrs/ignore-ownership/ignore-permissions is
set, the corresponding flag gets removed.

overwrite is saved as an PxarExtractOption like allow-existing-dirs.

Signed-off-by: Markus Frank <m.frank@proxmox.com>
2 years agopbs-client: added options to skip acls/xattrs/ownership/permissions
Markus Frank [Fri, 19 Aug 2022 10:48:47 +0000 (12:48 +0200)]
pbs-client: added options to skip acls/xattrs/ownership/permissions

Also added WITH_OWNER and WITH_PERMISSION to Default-Flags,
because otherwise it would be needed to activly set these flags and most
filesystems that support XATTR and ACL also support
POSIX-Permissions & Ownership.

Signed-off-by: Markus Frank <m.frank@proxmox.com>
2 years agopbs-client: added overwrite parameter to PxarExtractOptions.
Markus Frank [Fri, 19 Aug 2022 10:48:46 +0000 (12:48 +0200)]
pbs-client: added overwrite parameter to PxarExtractOptions.

If overwrite is true, O_TRUNC is set (to clean the leftovers)
instead of O_EXCL and therefore overwrites the files and
does not error out.

Signed-off-by: Markus Frank <m.frank@proxmox.com>
2 years agomore stable clippy fixups
Wolfgang Bumiller [Mon, 1 Aug 2022 10:04:38 +0000 (12:04 +0200)]
more stable clippy fixups

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoproperly scope clippy allow
Fabian Grünbichler [Tue, 2 Aug 2022 09:09:40 +0000 (11:09 +0200)]
properly scope clippy allow

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agobump d/control
Wolfgang Bumiller [Thu, 28 Jul 2022 11:48:56 +0000 (13:48 +0200)]
bump d/control

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agobump proxmox-sys dep to 0.4
Wolfgang Bumiller [Thu, 28 Jul 2022 11:40:07 +0000 (13:40 +0200)]
bump proxmox-sys dep to 0.4

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agotools: drop unused proxmox-borrow dependency
Wolfgang Bumiller [Thu, 28 Jul 2022 11:44:43 +0000 (13:44 +0200)]
tools: drop unused proxmox-borrow dependency

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoallow too_many_arguments in tape restore code
Wolfgang Bumiller [Thu, 28 Jul 2022 10:10:02 +0000 (12:10 +0200)]
allow too_many_arguments in tape restore code

Some of them could easily be grouped in a kind of
RestoreWorker struct, but that'll still leave one bigger
function that's more annoying to change.
Let's just allow it for now.

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agolower PullParameters to pub(crate), allow too_many_parameters
Wolfgang Bumiller [Thu, 28 Jul 2022 08:56:43 +0000 (10:56 +0200)]
lower PullParameters to pub(crate), allow too_many_parameters

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoclippy: deal with some internal type complexity
Wolfgang Bumiller [Thu, 28 Jul 2022 08:53:38 +0000 (10:53 +0200)]
clippy: deal with some internal type complexity

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoclippy auto-deref fixes
Wolfgang Bumiller [Thu, 28 Jul 2022 08:32:07 +0000 (10:32 +0200)]
clippy auto-deref fixes

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoclippy fixups for Default impls
Wolfgang Bumiller [Thu, 28 Jul 2022 08:30:02 +0000 (10:30 +0200)]
clippy fixups for Default impls

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoticket: box TfaChallenge, it's large
Wolfgang Bumiller [Thu, 28 Jul 2022 08:23:19 +0000 (10:23 +0200)]
ticket: box TfaChallenge, it's large

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agomore low hanging clippy fruits
Wolfgang Bumiller [Thu, 28 Jul 2022 08:14:28 +0000 (10:14 +0200)]
more low hanging clippy fruits

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoclippy: deal with let bindings
Wolfgang Bumiller [Thu, 28 Jul 2022 08:08:08 +0000 (10:08 +0200)]
clippy: deal with let bindings

In the auth code we rather #[allow] the binding, because in
this case we explicitly want to assert the type.

In fact, it would make more sense for clippy to not warn
about a unit type if the unit type is explicitly spelled
out.

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agomore simpler clippy fixes
Wolfgang Bumiller [Thu, 28 Jul 2022 07:56:03 +0000 (09:56 +0200)]
more simpler clippy fixes

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agofile-restore: clippy fixes
Wolfgang Bumiller [Thu, 28 Jul 2022 07:55:43 +0000 (09:55 +0200)]
file-restore: clippy fixes

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agotape: trivial clippy fixes
Wolfgang Bumiller [Thu, 28 Jul 2022 07:55:23 +0000 (09:55 +0200)]
tape: trivial clippy fixes

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agotape: 'comparison_chain' clippy fixes
Wolfgang Bumiller [Thu, 28 Jul 2022 07:55:07 +0000 (09:55 +0200)]
tape: 'comparison_chain' clippy fixes

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoclient: clippy fixes
Wolfgang Bumiller [Thu, 28 Jul 2022 07:26:29 +0000 (09:26 +0200)]
client: clippy fixes

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agodatastore: clippy fixes
Wolfgang Bumiller [Wed, 27 Jul 2022 13:26:50 +0000 (15:26 +0200)]
datastore: clippy fixes

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoconfig: clippy fixes
Wolfgang Bumiller [Wed, 27 Jul 2022 13:22:09 +0000 (15:22 +0200)]
config: clippy fixes

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agotools: allow type_complexity on purely internal field
Wolfgang Bumiller [Wed, 27 Jul 2022 13:19:18 +0000 (15:19 +0200)]
tools: allow type_complexity on purely internal field

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agorest-server: clippy fixups
Wolfgang Bumiller [Wed, 27 Jul 2022 12:52:06 +0000 (14:52 +0200)]
rest-server: clippy fixups

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agorrd: Entry type and clippy fixes
Wolfgang Bumiller [Wed, 27 Jul 2022 11:43:04 +0000 (13:43 +0200)]
rrd: Entry type and clippy fixes

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoapi-types: clippy fixes
Wolfgang Bumiller [Wed, 27 Jul 2022 11:29:32 +0000 (13:29 +0200)]
api-types: clippy fixes

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agomore clippy fixes and annotations
Fabian Grünbichler [Tue, 26 Jul 2022 11:36:14 +0000 (13:36 +0200)]
more clippy fixes and annotations

the remaining ones are:
- type complexity
- fns with many arguments
- new() without default()
- false positives for redundant closures (where closure returns a static
  value)
- expected vs actual length check without match/cmp

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agoclippy fixes
Fabian Grünbichler [Mon, 25 Jul 2022 13:40:44 +0000 (15:40 +0200)]
clippy fixes

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agobump d/control
Wolfgang Bumiller [Mon, 25 Jul 2022 11:43:32 +0000 (13:43 +0200)]
bump d/control

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agotfa: allow modifying 'allow-subdomains'
Wolfgang Bumiller [Mon, 25 Jul 2022 11:39:41 +0000 (13:39 +0200)]
tfa: allow modifying 'allow-subdomains'

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agobump d/control
Wolfgang Bumiller [Mon, 25 Jul 2022 10:03:41 +0000 (12:03 +0200)]
bump d/control

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agocargo fmt
Fabian Grünbichler [Thu, 21 Jul 2022 11:48:43 +0000 (13:48 +0200)]
cargo fmt

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agoadapt to proxmox-subscription changes
Fabian Grünbichler [Thu, 21 Jul 2022 11:48:22 +0000 (13:48 +0200)]
adapt to proxmox-subscription changes

key location is now in a single place, missing key and no signature is
not fatal anymore.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agoadapt to proxmox-apt change
Fabian Grünbichler [Thu, 21 Jul 2022 10:05:49 +0000 (12:05 +0200)]
adapt to proxmox-apt change

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agowww: add Signed info to subscription panel
Fabian Grünbichler [Thu, 30 Jun 2022 12:42:06 +0000 (14:42 +0200)]
www: add Signed info to subscription panel

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agomanager: add 'subscription set-offline-key' command
Fabian Grünbichler [Wed, 29 Jun 2022 11:40:10 +0000 (13:40 +0200)]
manager: add 'subscription set-offline-key' command

and disallow updating offline subscription keys via the regular
check/update code path.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agoextract proxmox-subscription crate
Fabian Grünbichler [Tue, 21 Jun 2022 12:35:28 +0000 (14:35 +0200)]
extract proxmox-subscription crate

and add support for signed subscription keys.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agobump proxmox-http dep to 0.6.4
Wolfgang Bumiller [Thu, 21 Jul 2022 11:00:22 +0000 (13:00 +0200)]
bump proxmox-http dep to 0.6.4

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agobump version to 2.2.5-1
Thomas Lamprecht [Mon, 18 Jul 2022 12:23:05 +0000 (14:23 +0200)]
bump version to 2.2.5-1

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoapi daemons: periodically unpark a tokio thread to ensure progress
Thomas Lamprecht [Mon, 18 Jul 2022 12:11:01 +0000 (14:11 +0200)]
api daemons: periodically unpark a tokio thread to ensure progress

The underlying issue seems to be the case when the thread that runs
the IO driver is polling its own tasks, while that happens the IO
driver/poller won't run and thus work stealing won't happen, meaning
that idle and parked threads will keep being parked even if there's
pending work they could do.

A promising solution for tokio is proposed in its issue tracker [0],
but it wasn't yet implemented. So, as stop gap spawn a separate
thread that periodically spawns a no-op ready future in the runtime
which would unpark a worker in the aforementioned case and thus
should break the bogus idleness. Choose a 3s period for that without
any overly elaborate reasons, our main goal is to ensure we accept
incoming connections and 3s is well below a HTTP timeout and leaves
some room for high network latencies while not invoking to much
additional wakeups for systems that are really idling.

[0]: https://github.com/tokio-rs/tokio/issues/4730#issuecomment-1147975074

Link: https://github.com/tokio-rs/tokio/issues/4730
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agofix #4157: docs: fix copy-paste error in repo examples
Thomas Lamprecht [Sat, 16 Jul 2022 09:41:12 +0000 (11:41 +0200)]
fix #4157: docs: fix copy-paste error in repo examples

refer to actually used host/datastore from the example

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agobump version to 2.2.4-1
Thomas Lamprecht [Thu, 14 Jul 2022 16:38:02 +0000 (18:38 +0200)]
bump version to 2.2.4-1

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoproxy: scheduler: only do a single round of time alignment and drop counter
Thomas Lamprecht [Thu, 14 Jul 2022 16:20:41 +0000 (18:20 +0200)]
proxy: scheduler: only do a single round of time alignment and drop counter

not much value in waiting an extra minute, that doesn't really
guarantees better scheduling (as in, less impact on startup).

Dropping that also allows easily to drop the counter by just moving
the sleep to the beginning of the loop.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoproxy: scheduler: code cleanup/bloat reduction
Thomas Lamprecht [Thu, 14 Jul 2022 16:10:05 +0000 (18:10 +0200)]
proxy: scheduler: code cleanup/bloat reduction

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoproxy: scheduler: move fallback inside next_minute fn, drops result from return
Thomas Lamprecht [Thu, 14 Jul 2022 15:59:24 +0000 (17:59 +0200)]
proxy: scheduler: move fallback inside next_minute fn, drops result from return

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agodocs: buildsys: use wild card target for generating config synopsis
Thomas Lamprecht [Thu, 14 Jul 2022 15:56:18 +0000 (17:56 +0200)]
docs: buildsys: use wild card target for generating config synopsis

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agodocs: buildsys: use wild card target for generating synopsis
Thomas Lamprecht [Thu, 14 Jul 2022 15:54:16 +0000 (17:54 +0200)]
docs: buildsys: use wild card target for generating synopsis

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agodocs: replace copyright years statement with single source of truth from conf
Thomas Lamprecht [Thu, 14 Jul 2022 14:53:14 +0000 (16:53 +0200)]
docs: replace copyright years statement with single source of truth from conf

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agodocs: conf: update copyright years
Thomas Lamprecht [Thu, 14 Jul 2022 14:49:23 +0000 (16:49 +0200)]
docs: conf: update copyright years

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agodocs: epilog: add version dynamically and drop unused AUTHOR replacement
Thomas Lamprecht [Thu, 14 Jul 2022 14:50:50 +0000 (16:50 +0200)]
docs: epilog: add version dynamically and drop unused AUTHOR replacement

now that the man pages are generated from sphinx, not rst2man, they
got access to the conf.py and things like its rst_epilog variable.

Use that to set the correct version in there dynamically

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agodocs: let sphinx build man pages for better integration and less cruft
Thomas Lamprecht [Thu, 14 Jul 2022 14:41:43 +0000 (16:41 +0200)]
docs: let sphinx build man pages for better integration and less cruft

rst2man is only good for use in projects that don't use sphinx
already, as there it can help to avoid bringing in the full sphinx
dependencies and be easier to manage (as long as it stay small).

But we already use sphinx, so there's no point in managing the manual
pages in a separate, semi-related way that is quite restricted as we
have no access to sphinx infrastructure like conf.py defined
variables and helpers for things like the current version.

Besides that, we're rather big, so the complexity of sphinx can
shine, e.g., see the diffstat report from switching out rst2man for
sphinx:

22 files changed, 74 insertions(+), 347 deletions(-)

so 273 lines less in total is rather nice.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agofix: api2: make tasks endpoint work with new prune job worker type
Stefan Sterz [Wed, 13 Jul 2022 14:36:29 +0000 (16:36 +0200)]
fix: api2: make tasks endpoint work with new prune job worker type

when prune jobs were refactored, their worker type was changed from
"prune" to "prunejob" this broke `check_job_store` and
`check_job_privs`

as reported in the forum: https://forum.proxmox.com/threads/problem-with-apirequest-on-pbs-2-2-3.112131/#post-483835

Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
2 years agoapi2: optimize filtered snapshot listing
Wolfgang Bumiller [Thu, 14 Jul 2022 08:53:39 +0000 (10:53 +0200)]
api2: optimize filtered snapshot listing

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agodatastore: add BackupGroup::exists helper
Wolfgang Bumiller [Thu, 14 Jul 2022 09:13:44 +0000 (11:13 +0200)]
datastore: add BackupGroup::exists helper

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agodatastore: factor type out of ListGroups into ListGroupsType
Wolfgang Bumiller [Wed, 13 Jul 2022 12:56:36 +0000 (14:56 +0200)]
datastore: factor type out of ListGroups into ListGroupsType

In the API we want to iterate over all backup groups
belonging to a particular type at least once, and iterating
through *everything* and simply "skipping" over every single
entry from another type makes no sense given that the groups
are organized into subdirectories based on their type.

Let's have an `.iter_backup_type()` method which returns an
iterator over all the groups of a specific type named
ListGroupsType and factorize the type level iterator out of
ListGroups for reuse.

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agodatastore: simplify iter_backup_groups_ok
Wolfgang Bumiller [Wed, 13 Jul 2022 12:43:17 +0000 (14:43 +0200)]
datastore: simplify iter_backup_groups_ok

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoapi-types: make BackupType::iter an actual iterator
Wolfgang Bumiller [Thu, 14 Jul 2022 09:09:34 +0000 (11:09 +0200)]
api-types: make BackupType::iter an actual iterator

Otherwise we have to use BackupType::iter().iter() whenever
we're not using a `for _ in iter()` construct.

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoapi: wrap get_snapshots_count in spawn_blocking
Wolfgang Bumiller [Wed, 13 Jul 2022 12:00:38 +0000 (14:00 +0200)]
api: wrap get_snapshots_count in spawn_blocking

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoapi: wrap set_backup_owner in spawn_blocking
Wolfgang Bumiller [Wed, 13 Jul 2022 12:01:24 +0000 (14:01 +0200)]
api: wrap set_backup_owner in spawn_blocking

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoapi: wrap set_protection in spawn_blocking
Wolfgang Bumiller [Wed, 13 Jul 2022 12:01:09 +0000 (14:01 +0200)]
api: wrap set_protection in spawn_blocking

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoapi: wrap catalog in spawn_blocking
Wolfgang Bumiller [Wed, 13 Jul 2022 12:01:00 +0000 (14:01 +0200)]
api: wrap catalog in spawn_blocking

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoapi: wrap delete_snapshot in spawn_blocking
Wolfgang Bumiller [Wed, 13 Jul 2022 12:00:25 +0000 (14:00 +0200)]
api: wrap delete_snapshot in spawn_blocking

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoapi: wrap list_snapshot_files in spawn_blocking
Wolfgang Bumiller [Wed, 13 Jul 2022 12:00:13 +0000 (14:00 +0200)]
api: wrap list_snapshot_files in spawn_blocking

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoapi: wrap delete_group in spawn_blocking
Wolfgang Bumiller [Wed, 13 Jul 2022 11:52:38 +0000 (13:52 +0200)]
api: wrap delete_group in spawn_blocking

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoapi: move 'list_snapshots' to a blocking thread
Wolfgang Bumiller [Tue, 12 Jul 2022 09:07:55 +0000 (11:07 +0200)]
api: move 'list_snapshots' to a blocking thread

This is a stop-gap measure to prevent snapshot listing from
blocking the main async worker threads as it can potentially
do a *lot* of I/O.

Ideally we'll move to a proper streaming API, but this will
be an API break.

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agowrap fs_info calls in spawn_blocking
Wolfgang Bumiller [Mon, 11 Jul 2022 08:41:16 +0000 (10:41 +0200)]
wrap fs_info calls in spawn_blocking

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agotape: include used tapes in tape notification e-mails
Dominik Csapak [Fri, 1 Jul 2022 12:11:04 +0000 (14:11 +0200)]
tape: include used tapes in tape notification e-mails

by saving them in the pool-writer, and setting them in the
TapeBackupJobSummary

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agomove json_object_to_query to proxmox-http+http-helpers
Fabian Grünbichler [Tue, 21 Jun 2022 12:32:02 +0000 (14:32 +0200)]
move json_object_to_query to proxmox-http+http-helpers

it's used by the subscription code that will be extracted next.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agomove to/write_canonical_json to proxmox-serde
Fabian Grünbichler [Tue, 21 Jun 2022 12:27:00 +0000 (14:27 +0200)]
move to/write_canonical_json to proxmox-serde

as preparation for extracting subscription-related code into its own
crate.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agocruft: remove tools::http
Fabian Grünbichler [Wed, 29 Jun 2022 09:54:20 +0000 (11:54 +0200)]
cruft: remove tools::http

it's not used by anything.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agorustfmt
Wolfgang Bumiller [Thu, 30 Jun 2022 08:18:32 +0000 (10:18 +0200)]
rustfmt

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoapi: tape/backup: improve behaviour for vanishing snapshots
Dominik Csapak [Wed, 29 Jun 2022 12:15:44 +0000 (14:15 +0200)]
api: tape/backup: improve behaviour for vanishing snapshots

when snapshots vanish during tape backup, we skip them. Until now,
we also warned with the error and failed the task at the end.

Since deleting snapshots during tape backup does not really interfere
with it, don't fail the whole task, and only add a log line that it
was skipped.

To differentiate from different errors (e.g. permission problems),
introduce a 'SnapshotBackupResult' which is returned by 'backup_snapshot'.

Also remove the 'pub' there since we don't want to leak the
SnapshotBackupResult type and it's not used anywhere outside this file.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agofile-restore: fix a hyperlink in docs
Wolfgang Bumiller [Thu, 30 Jun 2022 08:16:03 +0000 (10:16 +0200)]
file-restore: fix a hyperlink in docs

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoapi-types: doc: add crate to `Display` trait in comments
Stefan Sterz [Wed, 29 Jun 2022 08:55:38 +0000 (10:55 +0200)]
api-types: doc: add crate to `Display` trait in comments

when creating the documentation (e.g. `cargo doc --open`), it would
warn that `Display` is not in scope.

Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agotape reader: improve error for unknown magic number
Thomas Lamprecht [Wed, 29 Jun 2022 10:09:37 +0000 (12:09 +0200)]
tape reader: improve error for unknown magic number

ancient LTO version can cause this too (got some forum reports)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agopartially fix #2915: 'stat' in case ReadDirEntry does not contain type
Dominik Csapak [Tue, 28 Jun 2022 13:15:14 +0000 (15:15 +0200)]
partially fix #2915: 'stat' in case ReadDirEntry does not contain type

readdir/getdents may return 'DT_UNKNOWN' for the file type
(which corresponds to 'None' in nix::dir::Entry), so stat the file and
check the type

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agobump proxmox-sys dep to 0.3.1
Wolfgang Bumiller [Wed, 29 Jun 2022 07:44:42 +0000 (09:44 +0200)]
bump proxmox-sys dep to 0.3.1

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agod/control cleanup
Wolfgang Bumiller [Tue, 21 Jun 2022 08:52:57 +0000 (10:52 +0200)]
d/control cleanup

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agobump d/control
Wolfgang Bumiller [Tue, 21 Jun 2022 08:48:59 +0000 (10:48 +0200)]
bump d/control

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agorestore-daemon: make file listing 'streaming'
Dominik Csapak [Mon, 20 Jun 2022 07:51:13 +0000 (09:51 +0200)]
restore-daemon: make file listing 'streaming'

this prevents an oom kill when listing large directories.
Without this, i'd get an oom kill in the restore vm when
i tried to list a directory with ~60000 entries, but with this,
i'd get the response for even 250000 entries

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agofixed_index: remove unused 'print_info' function
Hannes Laimer [Wed, 15 Jun 2022 08:19:57 +0000 (08:19 +0000)]
fixed_index: remove unused 'print_info' function

Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agodocs: add note for setting verbosity level
Hannes Laimer [Wed, 15 Jun 2022 08:19:56 +0000 (08:19 +0000)]
docs: add note for setting verbosity level

Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoreplace print with log macro
Hannes Laimer [Wed, 15 Jun 2022 08:19:55 +0000 (08:19 +0000)]
replace print with log macro

Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoproxmox-rest-server: replace print with log macro
Hannes Laimer [Wed, 15 Jun 2022 08:19:54 +0000 (08:19 +0000)]
proxmox-rest-server: replace print with log macro

Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoproxmox-file-restore: replace print with log macro
Hannes Laimer [Wed, 15 Jun 2022 08:19:53 +0000 (08:19 +0000)]
proxmox-file-restore: replace print with log macro

Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoproxmox-backup-client: replace print with log macro
Hannes Laimer [Wed, 15 Jun 2022 08:19:52 +0000 (08:19 +0000)]
proxmox-backup-client: replace print with log macro

Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agopbs-fuse+pbs-tape: replace print with log macro
Hannes Laimer [Wed, 15 Jun 2022 08:19:51 +0000 (08:19 +0000)]
pbs-fuse+pbs-tape: replace print with log macro

Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agopbs-datastore: replace print with log macro
Hannes Laimer [Wed, 15 Jun 2022 08:19:50 +0000 (08:19 +0000)]
pbs-datastore: replace print with log macro

Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agopbs-client: replace print with log macro
Hannes Laimer [Wed, 15 Jun 2022 08:19:49 +0000 (08:19 +0000)]
pbs-client: replace print with log macro

Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agobins: init cli logger
Hannes Laimer [Wed, 15 Jun 2022 08:19:48 +0000 (08:19 +0000)]
bins: init cli logger

Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>