]> git.proxmox.com Git - proxmox-backup.git/log
proxmox-backup.git
2 years agomove src/tools/daemon.rs to proxmox-rest-server workspace
Dietmar Maurer [Tue, 21 Sep 2021 05:58:41 +0000 (07:58 +0200)]
move src/tools/daemon.rs to proxmox-rest-server workspace

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agomove ApiConfig, FileLogger and CommandoSocket to proxmox-rest-server workspace
Dietmar Maurer [Tue, 21 Sep 2021 05:58:40 +0000 (07:58 +0200)]
move ApiConfig, FileLogger and CommandoSocket to proxmox-rest-server workspace

ApiConfig: avoid using  pbs_config::backup_user()
CommandoSocket: avoid using  pbs_config::backup_user()
FileLogger: avoid using  pbs_config::backup_user()
- use atomic_open_or_create_file()

Auth Trait: moved definitions to proxmox-rest-server/src/lib.rs
- removed CachedUserInfo patrameter
- return user as String (not Authid)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agostart new proxmox-rest-server workspace
Dietmar Maurer [Tue, 21 Sep 2021 05:58:39 +0000 (07:58 +0200)]
start new proxmox-rest-server workspace

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoapi: disks/directory: add 'name' property to list of mounts
Dominik Csapak [Mon, 13 Sep 2021 14:18:27 +0000 (16:18 +0200)]
api: disks/directory: add 'name' property to list of mounts

so that we actually have the property that 'match_all' refers to for
the templated API path.

This is mostly for improving usage of the WIP pbs-shell, i.e., its
`ls` command, it has no other functional/semantic impact.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoapi: disks/directory: factor out BASE_MOUNT_DIR path
Dominik Csapak [Mon, 13 Sep 2021 14:18:26 +0000 (16:18 +0200)]
api: disks/directory: factor out BASE_MOUNT_DIR path

will be reused in the next commit

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoapi: nodes: rustfmt
Thomas Lamprecht [Wed, 15 Sep 2021 09:42:28 +0000 (11:42 +0200)]
api: nodes: rustfmt

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoapi2: nodes: add missing node list api call
Dominik Csapak [Thu, 9 Sep 2021 13:48:19 +0000 (15:48 +0200)]
api2: nodes: add missing node list api call

to have an api call for api path traversal

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agofix tests/worker-task-abort.rs - correctly spawn command socket
Dietmar Maurer [Tue, 14 Sep 2021 08:42:44 +0000 (10:42 +0200)]
fix tests/worker-task-abort.rs - correctly spawn command socket

And wait for the task.

Note: The test is still ignored (but works now when run a root)

2 years agoavoid type re-exports
Dietmar Maurer [Tue, 14 Sep 2021 06:35:43 +0000 (08:35 +0200)]
avoid type re-exports

2 years agomove src/tape/helpers/snapshot_reader.rs to src/backup/snapshot_reader.rs
Dietmar Maurer [Tue, 14 Sep 2021 05:42:06 +0000 (07:42 +0200)]
move src/tape/helpers/snapshot_reader.rs to src/backup/snapshot_reader.rs

2 years agofix refs in generated docs
Dietmar Maurer [Mon, 13 Sep 2021 11:40:20 +0000 (13:40 +0200)]
fix refs in generated docs

2 years agosplit tape code into new pbs_tape workspace
Dietmar Maurer [Mon, 13 Sep 2021 09:54:24 +0000 (11:54 +0200)]
split tape code into new pbs_tape workspace

2 years agobuildsys: cargo build: avoid redundant "--bin pxar" argument
Thomas Lamprecht [Mon, 13 Sep 2021 10:11:24 +0000 (12:11 +0200)]
buildsys: cargo build: avoid redundant "--bin pxar" argument

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agofix regression tests
Dietmar Maurer [Fri, 10 Sep 2021 10:45:06 +0000 (12:45 +0200)]
fix regression tests

2 years agomore api type cleanups: avoid re-exports
Dietmar Maurer [Fri, 10 Sep 2021 10:25:32 +0000 (12:25 +0200)]
more api type cleanups: avoid re-exports

2 years agoproxmox-tape: add 'force-media-set' also to cli
Dominik Csapak [Fri, 10 Sep 2021 07:41:57 +0000 (09:41 +0200)]
proxmox-tape: add 'force-media-set' also to cli

we have it in the api and gui, but the cli was missing

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agomove PruneOptions to pbs_api_types workspace
Dietmar Maurer [Fri, 10 Sep 2021 07:21:27 +0000 (09:21 +0200)]
move PruneOptions to pbs_api_types workspace

2 years agomove datastore config to pbs_config workspace
Dietmar Maurer [Fri, 10 Sep 2021 06:40:58 +0000 (08:40 +0200)]
move datastore config to pbs_config workspace

2 years agomove user configuration to pbs_config workspace
Dietmar Maurer [Fri, 10 Sep 2021 04:53:53 +0000 (06:53 +0200)]
move user configuration to pbs_config workspace

Also moved memcom.rs and cached_user_info.rs

2 years agocleanup User configuration: use Updater
Dietmar Maurer [Thu, 9 Sep 2021 11:14:28 +0000 (13:14 +0200)]
cleanup User configuration: use Updater

2 years agomove acl to pbs_config workspaces, pbs_api_types cleanups
Dietmar Maurer [Thu, 9 Sep 2021 08:32:44 +0000 (10:32 +0200)]
move acl to pbs_config workspaces, pbs_api_types cleanups

2 years agomove token_shadow to pbs_config workspace
Dietmar Maurer [Wed, 8 Sep 2021 12:00:14 +0000 (14:00 +0200)]
move token_shadow to pbs_config workspace

Also moved out crypt.rs (libcrypt bindings) to pbs_tools workspace.

2 years agomove network config to pbs_config workspace
Dietmar Maurer [Wed, 8 Sep 2021 10:22:48 +0000 (12:22 +0200)]
move network config to pbs_config workspace

2 years agochanger config cleanup: use Updater
Dietmar Maurer [Wed, 8 Sep 2021 07:19:35 +0000 (09:19 +0200)]
changer config cleanup: use Updater

2 years agodrop proxmox-backup-debug package, use server package instead
Thomas Lamprecht [Wed, 8 Sep 2021 06:59:51 +0000 (08:59 +0200)]
drop proxmox-backup-debug package, use server package instead

The datastore/backup debug helpers should always be available, they
can help a lot in dire times, so making them available directly via
the server package (alongside the manager CLI tool) is nicer for the
user.

Additionally, building a package can be quite time consuming in this
repo, as some tools like dwarves and other debug symbol stuff has to
scan the quite big rust binaries. So dropping a binary package shaves
of a noticeable bit of build time too.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agotape job cleanup: user Updater
Dietmar Maurer [Wed, 8 Sep 2021 06:55:25 +0000 (08:55 +0200)]
tape job cleanup: user Updater

2 years agoverify job cleanup: use Updater/flatten
Dietmar Maurer [Wed, 8 Sep 2021 06:40:32 +0000 (08:40 +0200)]
verify job cleanup: use Updater/flatten

2 years agosync job cleanup: use Updater/flatten
Dietmar Maurer [Wed, 8 Sep 2021 06:28:09 +0000 (08:28 +0200)]
sync job cleanup: use Updater/flatten

2 years agomove verify.rs to pbs_config workspace
Dietmar Maurer [Wed, 8 Sep 2021 06:01:07 +0000 (08:01 +0200)]
move verify.rs to pbs_config workspace

2 years agomove sync.rs to pbs_config workspace
Dietmar Maurer [Wed, 8 Sep 2021 04:57:23 +0000 (06:57 +0200)]
move sync.rs to pbs_config workspace

2 years agoremove dead code
Dietmar Maurer [Wed, 8 Sep 2021 04:34:44 +0000 (06:34 +0200)]
remove dead code

backup_user() and backup_group() are now in pbs_config workspace

2 years agobuildsys: set pkg-buildcfg version automatically
Wolfgang Bumiller [Tue, 7 Sep 2021 11:40:31 +0000 (13:40 +0200)]
buildsys: set pkg-buildcfg version automatically

the 'build' target now fixates the pbs-buildcfg version to
$(DEB_VERSION_UPSTREAM)

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agomoved tape_job.rs to pbs_config workspace
Dietmar Maurer [Tue, 7 Sep 2021 10:32:01 +0000 (12:32 +0200)]
moved tape_job.rs to pbs_config workspace

2 years agomove tape_encryption_keys.rs to pbs_config workspace
Dietmar Maurer [Tue, 7 Sep 2021 08:37:08 +0000 (10:37 +0200)]
move tape_encryption_keys.rs to pbs_config workspace

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>