]> git.proxmox.com Git - proxmox-backup.git/log
proxmox-backup.git
2 years agomoved key_derivation.rs from pbs_datastore to pbs-config/src/key_config.rs
Dietmar Maurer [Tue, 7 Sep 2021 07:22:14 +0000 (09:22 +0200)]
moved key_derivation.rs from pbs_datastore to pbs-config/src/key_config.rs

Also moved pbs-datastore/src/crypt_config.rs to pbs-tools/src/crypt_config.rs.
We do not want to depend on pbs-api-types there, so I use [u8;32] instead of
Fingerprint.

2 years agomove data_blob encode/decode from crypt_config.rs to data_blob.rs
Dietmar Maurer [Mon, 6 Sep 2021 09:48:08 +0000 (11:48 +0200)]
move data_blob encode/decode from crypt_config.rs to data_blob.rs

2 years agomove Kdf and KeyInfo to pbs_api_types workspace
Dietmar Maurer [Mon, 6 Sep 2021 08:19:29 +0000 (10:19 +0200)]
move Kdf and KeyInfo to pbs_api_types workspace

2 years agotape/inventory: fix the tape tests as user, by mocking the lock
Dominik Csapak [Mon, 6 Sep 2021 15:00:26 +0000 (17:00 +0200)]
tape/inventory: fix the tape tests as user, by mocking the lock

locking during the tests as regular user failed because we try to
chown to the backup user (which is not always possible).

Instead, do not lock at all, by implementing 'open_backup_lockfile' with
'create_mocked_lock'

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agopbs-config: add 'create_mocked_lock' helper
Dominik Csapak [Mon, 6 Sep 2021 15:00:25 +0000 (17:00 +0200)]
pbs-config: add 'create_mocked_lock' helper

by making the field an option and making it None in the mocked case
this function is only intended for testing and hidden from the docs

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agomove media_pool config to pbs_config workspace
Dietmar Maurer [Mon, 6 Sep 2021 06:56:04 +0000 (08:56 +0200)]
move media_pool config to pbs_config workspace

2 years agozsh: fix completions
Oguz Bektas [Thu, 2 Sep 2021 11:48:23 +0000 (13:48 +0200)]
zsh: fix completions

seems like there was a typo in these from the beginning.

also fixes the wrong function name for proxmox-file-restore completion

Signed-off-by: Oguz Bektas <o.bektas@proxmox.com>
2 years agomove drive config to pbs_config workspace
Dietmar Maurer [Fri, 3 Sep 2021 07:10:18 +0000 (09:10 +0200)]
move drive config to pbs_config workspace

Also moved the tape type definitions to pbs_api_types.

2 years agoadd missing file pbs-api-types/src/remote.rs
Dietmar Maurer [Thu, 2 Sep 2021 15:36:13 +0000 (17:36 +0200)]
add missing file pbs-api-types/src/remote.rs

2 years agomove remote config into pbs-config workspace
Dietmar Maurer [Thu, 2 Sep 2021 12:25:15 +0000 (14:25 +0200)]
move remote config into pbs-config workspace

2 years agostart new pbs-config workspace
Dietmar Maurer [Thu, 2 Sep 2021 10:47:11 +0000 (12:47 +0200)]
start new pbs-config workspace

moved src/config/domains.rs

2 years agoadd proxmox-backup-debug debian package
Wolfgang Bumiller [Thu, 2 Sep 2021 08:32:29 +0000 (10:32 +0200)]
add proxmox-backup-debug debian package

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoanother import cleanup
Wolfgang Bumiller [Wed, 1 Sep 2021 12:37:11 +0000 (14:37 +0200)]
another import cleanup

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agofixup imports in tests and examples
Wolfgang Bumiller [Wed, 1 Sep 2021 10:32:21 +0000 (12:32 +0200)]
fixup imports in tests and examples

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agosplit proxmox-file-restore into its own crate
Wolfgang Bumiller [Wed, 1 Sep 2021 10:21:51 +0000 (12:21 +0200)]
split proxmox-file-restore into its own crate

This also moves a couple of required utilities such as
logrotate and some file descriptor methods to pbs-tools.

Note that the logrotate usage and run-dir handling should be
improved to work as a regular user as this *should* (IMHO)
be a regular unprivileged command (including running
qemu given the kvm privileges...)

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agosplit out proxmox-backup-debug binary
Wolfgang Bumiller [Tue, 31 Aug 2021 12:45:48 +0000 (14:45 +0200)]
split out proxmox-backup-debug binary

and introduce pbs_tools::cli module

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agomore import cleanups
Wolfgang Bumiller [Tue, 31 Aug 2021 12:01:03 +0000 (14:01 +0200)]
more import cleanups

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agofixup imports in debug binary
Wolfgang Bumiller [Tue, 31 Aug 2021 11:27:02 +0000 (13:27 +0200)]
fixup imports in debug binary

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoadd index recovery to pb-debug
Hannes Laimer [Mon, 30 Aug 2021 08:53:39 +0000 (10:53 +0200)]
add index recovery to pb-debug

Adds possibility to recover data from an index file. Options:
 - chunks: path to the directory where the chunks are saved
 - file: the index file that should be recovered(must be either .fidx or
   didx)
 - [opt] keyfile: path to a keyfile, if the data was encrypted, a keyfile is
   needed
 - [opt] skip-crc: boolean, if true, read chunks wont be verified with their
   crc-sum, increases the restore speed by a lot

Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoadd file inspection to pb-debug
Hannes Laimer [Mon, 30 Aug 2021 08:53:38 +0000 (10:53 +0200)]
add file inspection to pb-debug

Adds possibility to inspect .blob, .fidx and .didx files. For index
files a list of the chunks referenced will be printed in addition to
some other information. .blob files can be decoded into file or directly
into stdout. Without decode the tool just prints the size and encryption
mode of the blob file. Options:
 - file: path to the file
 - [opt] decode: path to a file or stdout(-), if specidied, the file will be
   decoded into the specified location [only for blob files, no effect
   with index files]
 - [opt] keyfile: path to a keyfile, needed if decode is specified and the
   data was encrypted

Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoadd chunk inspection to pb-debug
Hannes Laimer [Mon, 30 Aug 2021 08:53:37 +0000 (10:53 +0200)]
add chunk inspection to pb-debug

Adds possibility to inspect chunks and find indexes that reference the
chunk. Options:
 - chunk: path to the chunk file
 - [opt] decode: path to a file or to stdout(-), if specified, the
   chunk will be decoded into the specified location
 - [opt] digest: needed when searching for references, if set, it will
   be used for verification when decoding
 - [opt] keyfile: path to a keyfile, needed if decode is specified and
   the data was encrypted
 - [opt] reference-filter: path in which indexes that reference the
   chunk should be searched, can be a group, snapshot or the whole
   datastore, if not specified no references will be searched
 - [default=true] use-filename-as-digest: use chunk-filename as digest,
   if no digest is specified

Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agomake api2::helpers::list_dir_content a CatalogReader method
Wolfgang Bumiller [Tue, 31 Aug 2021 08:56:41 +0000 (10:56 +0200)]
make api2::helpers::list_dir_content a CatalogReader method

this is its natural place and everything required is already
part of the catalog module

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agomove some more API types
Wolfgang Bumiller [Tue, 31 Aug 2021 08:45:32 +0000 (10:45 +0200)]
move some more API types

ArchiveEntry -> pbs-datastore
RestoreDaemonStatus -> pbs-api-types

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoui: fix order of prune keep reasons
Dominik Csapak [Mon, 30 Aug 2021 08:30:09 +0000 (10:30 +0200)]
ui: fix order of prune keep reasons

two things wrong with the old code:
 * the sort function wants -1, 0 and 1 as a return value for a<b, a==b and a>b
   respectively, not a bool (which a < b returns)
 * we have to sort the newest backups first, since the first reason is
   'keep-last'. until now, we sorted the oldest backup first, resulting
   in the older backups getting the 'keep-last' reason

reported by a user in the forum:
https://forum.proxmox.com/threads/prune-ui-and-prune-schedule-simulator-dont-match.94944/

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agocleanup proxmox_backup::backup module
Wolfgang Bumiller [Mon, 30 Aug 2021 09:49:22 +0000 (11:49 +0200)]
cleanup proxmox_backup::backup module

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoremote config: derive and use Updater
Dietmar Maurer [Thu, 12 Aug 2021 07:27:55 +0000 (09:27 +0200)]
remote config: derive and use Updater

Defined a new struct RemoteConfig (without name and password). This makes it
possible to bas64-encode the pasword in the config, but still allow plain
passwords with the API.

2 years agosplit out proxmox-backup-client binary
Wolfgang Bumiller [Thu, 26 Aug 2021 09:00:37 +0000 (11:00 +0200)]
split out proxmox-backup-client binary

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agomove some API return types to pbs-api-types
Wolfgang Bumiller [Thu, 26 Aug 2021 11:17:55 +0000 (13:17 +0200)]
move some API return types to pbs-api-types

they'll be required by the api client

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoCargo.toml: drop features in 'patch' section
Wolfgang Bumiller [Thu, 26 Aug 2021 09:41:41 +0000 (11:41 +0200)]
Cargo.toml: drop features in 'patch' section

the features array does not need to be repeated here

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agotape: media_pool: derive and use Updater
Dietmar Maurer [Thu, 12 Aug 2021 07:04:16 +0000 (09:04 +0200)]
tape: media_pool: derive and use Updater

2 years agodrive config cleanup: derive and use Updater
Dietmar Maurer [Wed, 11 Aug 2021 11:56:18 +0000 (13:56 +0200)]
drive config cleanup: derive and use Updater

2 years agoopenid cleanup: derive and use Updater
Dietmar Maurer [Wed, 11 Aug 2021 11:22:45 +0000 (13:22 +0200)]
openid cleanup: derive and use Updater

2 years agomore Updatable -> UpdaterType fixups
Wolfgang Bumiller [Tue, 24 Aug 2021 14:12:58 +0000 (16:12 +0200)]
more Updatable -> UpdaterType fixups

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agod/control bump
Wolfgang Bumiller [Tue, 24 Aug 2021 14:10:12 +0000 (16:10 +0200)]
d/control bump

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agobump proxmox-openid dependency to 0.7.0
Wolfgang Bumiller [Tue, 24 Aug 2021 14:08:32 +0000 (16:08 +0200)]
bump proxmox-openid dependency to 0.7.0

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agobump proxmox dependency to 0.13.0
Wolfgang Bumiller [Tue, 24 Aug 2021 13:32:27 +0000 (15:32 +0200)]
bump proxmox dependency to 0.13.0

and with it:
* bump proxmox-http dependency to 0.4.0
* bump proxmox-apt dependency to 0.7.0

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agouse ApiType trait
Wolfgang Bumiller [Wed, 25 Aug 2021 07:37:54 +0000 (09:37 +0200)]
use ApiType trait

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agouse new api updater features
Dietmar Maurer [Thu, 12 Aug 2021 07:30:41 +0000 (09:30 +0200)]
use new api updater features

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agobump version to 2.0.9-2
Thomas Lamprecht [Tue, 24 Aug 2021 12:44:26 +0000 (14:44 +0200)]
bump version to 2.0.9-2

rebuild to include openid and to actually have a correct pbs-buildcfg
Cargo.toml version..

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agobump version to 2.0-9-1
Dietmar Maurer [Mon, 9 Aug 2021 07:54:33 +0000 (09:54 +0200)]
bump version to 2.0-9-1

2 years agotape/pool_writer: fix typo
Dominik Csapak [Fri, 6 Aug 2021 12:09:12 +0000 (14:09 +0200)]
tape/pool_writer: fix typo

s/wrinting/writing/

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agotape backup: mention groups that were empty
Dominik Csapak [Fri, 6 Aug 2021 09:33:45 +0000 (11:33 +0200)]
tape backup: mention groups that were empty

otherwise a user might get a task log like this:

-----
...
found 7 groups
TASK OK
-----

which could confuse the users as why there were no snapshots backed up

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agocleanup: simplify next_expired_media()
Dietmar Maurer [Wed, 4 Aug 2021 09:01:18 +0000 (11:01 +0200)]
cleanup: simplify next_expired_media()

2 years agoui: display next-media-label for tape backup jobs
Dietmar Maurer [Wed, 4 Aug 2021 07:56:33 +0000 (09:56 +0200)]
ui: display next-media-label for tape backup jobs

2 years agocli: proxmox-tape backup-job list: use status api and display next-run an d next...
Dietmar Maurer [Wed, 4 Aug 2021 07:55:23 +0000 (09:55 +0200)]
cli: proxmox-tape backup-job list: use status api and display next-run an d next-media-label

2 years agotape: compute next-media-label for each tape backup job
Dietmar Maurer [Wed, 4 Aug 2021 07:53:54 +0000 (09:53 +0200)]
tape: compute next-media-label for each tape backup job

2 years agotape: media_pool: implement guess_next_writable_media()
Dietmar Maurer [Wed, 4 Aug 2021 06:10:20 +0000 (08:10 +0200)]
tape: media_pool: implement guess_next_writable_media()

2 years agotape: lto: increase default timeout to 10 minutes
Dominik Csapak [Tue, 3 Aug 2021 06:28:33 +0000 (08:28 +0200)]
tape: lto: increase default timeout to 10 minutes

it seems that for some actions or in some circumstances, two minutes is
simply too short and the command aborts. Increase the default timeout to
10 minutes.

While it should give most commands enough time to finish, in case of a real
failure the procedure now takes up to 5 times longer, but IMHO thats an
OK tradeoff.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agodocs/file-formats: fix typo
Lorenz Stechauner [Mon, 2 Aug 2021 12:36:07 +0000 (14:36 +0200)]
docs/file-formats: fix typo

Signed-off-by: Lorenz Stechauner <l.stechauner@proxmox.com>
2 years agobump version toö 2.0.8-1
Dietmar Maurer [Mon, 2 Aug 2021 08:35:16 +0000 (10:35 +0200)]
bump version toö 2.0.8-1

2 years agobump proxmox-apt to 0.6 in debian/control
Hannes Laimer [Mon, 2 Aug 2021 07:06:58 +0000 (09:06 +0200)]
bump proxmox-apt to 0.6 in debian/control

Build deps could not be installed

Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
2 years agoapi/ui: allow zstd compression for new zpools
Dominik Csapak [Fri, 30 Jul 2021 11:39:34 +0000 (13:39 +0200)]
api/ui: allow zstd compression for new zpools

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agocargo: update proxmox-apt to v0.6.0
Thomas Lamprecht [Fri, 30 Jul 2021 08:43:40 +0000 (10:43 +0200)]
cargo: update proxmox-apt to v0.6.0

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoapi: apt: adapt to further proxmox-apt back-end changes
Fabian Ebner [Thu, 29 Jul 2021 12:33:36 +0000 (14:33 +0200)]
api: apt: adapt to further proxmox-apt back-end changes

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
2 years agoapi: apt: adapt to proxmox-apt back-end changes
Fabian Ebner [Thu, 29 Jul 2021 12:33:35 +0000 (14:33 +0200)]
api: apt: adapt to proxmox-apt back-end changes

It's up to the caller to provide the current release for standard
repository detection/addition.

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
2 years agoapi2: tape: media: use MediaCatalog::snapshot_list for content listing
Dominik Csapak [Thu, 22 Jul 2021 13:41:06 +0000 (15:41 +0200)]
api2: tape: media: use MediaCatalog::snapshot_list for content listing

this should make the api call much faster, since it is not reading
the whole catalog anymore

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
2 years agotape: media_catalog: add snapshot list cache for catalog
Dietmar Maurer [Tue, 27 Jul 2021 11:13:29 +0000 (13:13 +0200)]
tape: media_catalog: add snapshot list cache for catalog

For some parts of the ui, we only need the snapshot list from the catalog,
and reading the whole catalog (can be multiple hundred MiB) is not
really necessary.

Instead, we write the list of snapshots into a seperate .index file. This file
is generated on demand and is much smaller and thus faster to read.

2 years agotape: lock media_catalog file to to get a consistent view with load_catalog
Dietmar Maurer [Wed, 28 Jul 2021 08:25:52 +0000 (10:25 +0200)]
tape: lock media_catalog file to to get a consistent view with load_catalog

2 years agocleanup: factor out tape catalog path helpers
Dietmar Maurer [Wed, 28 Jul 2021 08:10:02 +0000 (10:10 +0200)]
cleanup: factor out tape catalog path helpers

2 years agotape: changer: add tests for decode_element_status_page
Dominik Csapak [Wed, 28 Jul 2021 10:05:11 +0000 (12:05 +0200)]
tape: changer: add tests for decode_element_status_page

a test for a valid status_page, one with excess data
(in the descriptor as well in the page as a whole)
and a test with too little data

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agotape: changer: handle libraries that sends wrong amount of data
Dominik Csapak [Wed, 28 Jul 2021 10:05:10 +0000 (12:05 +0200)]
tape: changer: handle libraries that sends wrong amount of data

if the library sends more data than advertised, simply cut it off,
but if it sends less data, bail out (depending on how much data is
missing, trying to parse it could lead to a panic, so bail out early)

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agotape: changer: remove unnecesary inquiry parameter
Dominik Csapak [Wed, 28 Jul 2021 10:05:09 +0000 (12:05 +0200)]
tape: changer: remove unnecesary inquiry parameter

this is never used, so remove it.
Ok, since they are only non public functions.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agoapi2: tape/restore: commit temporary catalog at the end
Dominik Csapak [Tue, 20 Jul 2021 08:55:11 +0000 (10:55 +0200)]
api2: tape/restore: commit temporary catalog at the end

in 'restore_archive', we reach that 'catalog.commit()' for
* every skipped snapshot (we already call 'commit_if_large' then before)
* every skipped chunk archive (no change in catalog since we do not read
  the chunk archive in that case)
* after reading a catalog (no change in catalog)

in all other cases, we call 'commit_if_large' and return early,
meaning that the 'commit' there was executed too often and
unnecessary, so move it after the loop over the files, before
finishing the temporary database.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agodocs: tape: add instructions on how to restore the catalog
Dominik Csapak [Mon, 26 Jul 2021 10:45:33 +0000 (12:45 +0200)]
docs: tape: add instructions on how to restore the catalog

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agotape: media_catalog: improve chunk_archive interface
Dominik Csapak [Thu, 22 Jul 2021 13:41:00 +0000 (15:41 +0200)]
tape: media_catalog: improve chunk_archive interface

instead of having a public start/end_chunk_archive and register_chunks,
simply expose a 'register_chunk_archive' method since we always have
a list of chunks anywhere we want to add them

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agoui: tape/ChangerStatus: improve layout for large libraries
Dominik Csapak [Fri, 23 Jul 2021 06:31:51 +0000 (08:31 +0200)]
ui: tape/ChangerStatus: improve layout for large libraries

instead of having the grid be as tall as possible and the containing
panel scroll. limit the grids height to the panel size and scroll the
grid.

this has two advantages:
* if a user has many slots, it is now possible to to navigate the other
  grids to the position wanted
* having the grids scroll, means it can use extjs' buffered renderer,
  which makes the view much more responsive (in case of hundreds of
  slots)

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agotape: changer: handle invalid descriptor data from library in status page
Dominik Csapak [Mon, 26 Jul 2021 07:20:41 +0000 (09:20 +0200)]
tape: changer: handle invalid descriptor data from library in status page

We get the descriptor length from the library and use that in
'chunks_exact', which panics on length 0. Catch that case
and bail out, since that makes no sense here anyway.

This could prevent a panic, in case a library sends wrong data.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agodatastore config: cleanup code (use flatten attribute)
Dietmar Maurer [Fri, 23 Jul 2021 09:15:31 +0000 (11:15 +0200)]
datastore config: cleanup code (use flatten attribute)

2 years agobump version to 2.0.7-1
Thomas Lamprecht [Fri, 23 Jul 2021 06:39:58 +0000 (08:39 +0200)]
bump version to 2.0.7-1

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agorestore daemon: rust format
Thomas Lamprecht [Fri, 23 Jul 2021 06:26:10 +0000 (08:26 +0200)]
restore daemon: rust format

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agofile restore: improve some comment
Thomas Lamprecht [Fri, 23 Jul 2021 06:25:34 +0000 (08:25 +0200)]
file restore: improve some comment

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agorestore daemon: log about doing basic system env setup
Thomas Lamprecht [Fri, 23 Jul 2021 06:24:25 +0000 (08:24 +0200)]
restore daemon: log about doing basic system env setup

debugging history showed that its surely nice to have more logs at
when stuff happens (and thus fails)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agorestore daemon: setup backup system user and group
Thomas Lamprecht [Fri, 23 Jul 2021 06:19:35 +0000 (08:19 +0200)]
restore daemon: setup backup system user and group

now required as we always enforce lock files to be owned by the
backup user, and the restore code uses such code indirectly as the
REST server module is reused from proxmox-backup-server. Once that is
refactored out we may do away such things, but until then we need to
have a somewhat complete system env.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agorestore daemon: add setup_system_env helper
Thomas Lamprecht [Fri, 23 Jul 2021 06:10:55 +0000 (08:10 +0200)]
restore daemon: add setup_system_env helper

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agotape: changer: handle missing dvcid information
Dominik Csapak [Thu, 22 Jul 2021 09:57:02 +0000 (11:57 +0200)]
tape: changer: handle missing dvcid information

the dvcid information is not always available, so skip it if is missing

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agotape: changer: improve error message on wrong counts
Dominik Csapak [Thu, 22 Jul 2021 09:26:30 +0000 (11:26 +0200)]
tape: changer: improve error message on wrong counts

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agotape: changer: correctly consume data in decode_element_status_page
Dominik Csapak [Thu, 22 Jul 2021 09:26:29 +0000 (11:26 +0200)]
tape: changer: correctly consume data in decode_element_status_page

instead of 'blindly' trusting the changer to deliver the fields written
in the specification, trust the length data it returns in the header.

we slice the descriptor data into equal sized chunks of the correct
size, then we do not have care bout the len and empty checks anymore

this also makes the code to read the rest of the page obsolete,
since the next descriptor is on the correct offset anyway

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agotools: xattr: don't test things beyond our control
Wolfgang Bumiller [Thu, 22 Jul 2021 09:34:40 +0000 (11:34 +0200)]
tools: xattr: don't test things beyond our control

whether the kernel allows super-long names or weird
namespace prefixes is not our concern...

also the latter fails under fakeroot

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agobump version to 2.0.6-1
Thomas Lamprecht [Thu, 22 Jul 2021 08:22:33 +0000 (10:22 +0200)]
bump version to 2.0.6-1

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agodocs: simplify list of ENV var alternative
Thomas Lamprecht [Thu, 22 Jul 2021 08:21:40 +0000 (10:21 +0200)]
docs: simplify list of ENV var alternative

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agodoc: Document new environment variabless to specify secret values
Dietmar Maurer [Wed, 21 Jul 2021 09:59:55 +0000 (11:59 +0200)]
doc: Document new environment variabless to specify secret values

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agosupport new ENV vars to get secret values through a file or a command
Dietmar Maurer [Wed, 21 Jul 2021 09:59:54 +0000 (11:59 +0200)]
support new ENV vars to get secret values through a file or a command

We want to allow passing a secret not only directly through the
environment value, but also indirectly through a file path, an open
file descriptor or a command that can write it to standard out.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: server administration: repos: add online help
Fabian Ebner [Wed, 14 Jul 2021 12:57:16 +0000 (14:57 +0200)]
ui: server administration: repos: add online help

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agocargo: update proxmox to 0.12.1
Thomas Lamprecht [Thu, 22 Jul 2021 07:58:31 +0000 (09:58 +0200)]
cargo: update proxmox to 0.12.1

For the FS compat improvement in the atomic create file helper

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agobuild: unbreak 'nocheck'
Fabian Grünbichler [Wed, 21 Jul 2021 14:58:25 +0000 (16:58 +0200)]
build: unbreak 'nocheck'

to skip test cases for faster builds or in case your local system does
not support running (all) tests..

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agotape: changer: sg_pt: fix typo
Dominik Csapak [Wed, 21 Jul 2021 14:04:50 +0000 (16:04 +0200)]
tape: changer: sg_pt: fix typo

ok, since its a private struct

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agotape: changer: sg_pt: add SCSI_VOLUME_TAG_LEN const
Dominik Csapak [Wed, 21 Jul 2021 14:04:49 +0000 (16:04 +0200)]
tape: changer: sg_pt: add SCSI_VOLUME_TAG_LEN const

so that we do have less 'magic' constants without description

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agoapi: types: CHANGER_DRIVENUM_SCHEMA: increase maximum drives per changer
Dominik Csapak [Wed, 21 Jul 2021 14:04:48 +0000 (16:04 +0200)]
api: types: CHANGER_DRIVENUM_SCHEMA: increase maximum drives per changer

to 255. 8 drives per changer was a rather arbitrary limitation and could
well be reached in practice with big libraries.

Altough 255 is still a arbirtrary limitation, this is much less likely
to be reached in practice.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agomove CachedChunkReader to pbs-datastore
Wolfgang Bumiller [Wed, 21 Jul 2021 12:20:00 +0000 (14:20 +0200)]
move CachedChunkReader to pbs-datastore

this was actually still missing from the previous commit

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agomove remaining client tools to pbs-tools/datastore
Wolfgang Bumiller [Wed, 21 Jul 2021 12:12:22 +0000 (14:12 +0200)]
move remaining client tools to pbs-tools/datastore

pbs-datastore now ended up depending on tokio after all, but
that's fine for now

for the fuse code I added pbs-fuse-loop (has the old
fuse_loop and its 'loopdev' module)
ultimately only binaries should depend on this to avoid the
library link

the only thins remaining to move out the client binary are
the api method return types, those will need to be moved to
pbs-api-types...

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoclient: fix panic message
Wolfgang Bumiller [Wed, 21 Jul 2021 11:28:55 +0000 (13:28 +0200)]
client: fix panic message

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agofix regression test file permission problems
Dietmar Maurer [Wed, 21 Jul 2021 06:12:51 +0000 (08:12 +0200)]
fix regression test file permission problems

By simply using the current user/group instead of backup:backup

2 years agobump version to 2.0.5-2
Thomas Lamprecht [Wed, 21 Jul 2021 07:12:46 +0000 (09:12 +0200)]
bump version to 2.0.5-2

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agobuildcfg: fix version
Thomas Lamprecht [Wed, 21 Jul 2021 07:11:54 +0000 (09:11 +0200)]
buildcfg: fix version

now set here, but we really need to automate this soon, just to easy
to forget.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agobuildsys: run test before compile to avoid clobbering the openid build binaries
Thomas Lamprecht [Tue, 20 Jul 2021 17:58:03 +0000 (19:58 +0200)]
buildsys: run test before compile to avoid clobbering the openid build binaries

dh_auto_test also checks for the build flags used, including any
`--cfg`, so it rebuilds and overwrites our carefully assembled daemon
binaries with openid support as it is run after build and before
install.
So manually ensure the order of first test then build (argh, hackes
of hackes >.<)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agobuildsys: cargo build target: one binary per line
Thomas Lamprecht [Tue, 20 Jul 2021 18:27:35 +0000 (20:27 +0200)]
buildsys: cargo build target: one binary per line

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agobump version to 2.0.5-1
Thomas Lamprecht [Tue, 20 Jul 2021 17:06:23 +0000 (19:06 +0200)]
bump version to 2.0.5-1

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agod/control: record fonts-font-awesome dependency for docs
Thomas Lamprecht [Tue, 20 Jul 2021 17:34:42 +0000 (19:34 +0200)]
d/control: record fonts-font-awesome dependency for docs

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agodocs: add missing font-awesome link for lto-barcode generator
Dominik Csapak [Tue, 20 Jul 2021 14:01:38 +0000 (16:01 +0200)]
docs: add missing font-awesome link for lto-barcode generator

else it cannot load the icons and does not show them in the action column

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agopbs-tools: fix doctest reference to moved cache modules
Thomas Lamprecht [Tue, 20 Jul 2021 16:53:52 +0000 (18:53 +0200)]
pbs-tools: fix doctest reference to moved cache modules

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>