]> git.proxmox.com Git - proxmox-backup.git/log
proxmox-backup.git
2 years agoui: datastore selector: move maintenance mode inline with icon
Thomas Lamprecht [Tue, 17 May 2022 08:49:30 +0000 (10:49 +0200)]
ui: datastore selector: move maintenance mode inline with icon

else it's a lot of wasted space for the ordinary case, that hasn't
permanent maintenance modes activated, and even if, their admins
should be used to it, so not the best space/usability ROI there
either.

Just use the icon as visual clue and add a tooltip for the
maintenance mode info.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: form/DataStoreSelector: show maintenance mode in selector
Dominik Csapak [Tue, 17 May 2022 06:52:13 +0000 (08:52 +0200)]
ui: form/DataStoreSelector: show maintenance mode in selector

to not having to query the activeTasks everywhere, change the renderer
to omit the check/spinner when no activeTasks are given

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agoui: use base 10 (SI) for all storage related displays
Thomas Lamprecht [Tue, 17 May 2022 08:20:05 +0000 (10:20 +0200)]
ui: use base 10 (SI) for all storage related displays

matches what we do for (most) of such things in PVE since 7.0 there
and also what the disk management gui shows, further disks are sold
with SI units for their advertised capacity, so its more fitting
there too.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: utils: add depreacation comment to render_size_usage
Thomas Lamprecht [Tue, 17 May 2022 08:17:32 +0000 (10:17 +0200)]
ui: utils: add depreacation comment to render_size_usage

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: server status: fix missing space in title
Thomas Lamprecht [Tue, 17 May 2022 08:17:04 +0000 (10:17 +0200)]
ui: server status: fix missing space in title

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: server status: use power of two base for memory and swap
Thomas Lamprecht [Tue, 17 May 2022 08:16:46 +0000 (10:16 +0200)]
ui: server status: use power of two base for memory and swap

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agopbs-client: fix symbolic mode display for 'other' mode
Wolfgang Bumiller [Tue, 17 May 2022 08:20:35 +0000 (10:20 +0200)]
pbs-client: fix symbolic mode display for 'other' mode

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoui: sync/verify jobs: use pmxDisplayEditField to fix editing
Thomas Lamprecht [Tue, 17 May 2022 07:47:15 +0000 (09:47 +0200)]
ui: sync/verify jobs: use pmxDisplayEditField to fix editing

commit bd21a63b only fixed sync, not verify, and we can do better by
using a display-edit field.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: sync job: don't send 'id' on edit
Dominik Csapak [Tue, 17 May 2022 07:05:22 +0000 (09:05 +0200)]
ui: sync job: don't send 'id' on edit

we cannot change the id, and even if we send the same, the backend
does not allow 'duplicate' parameters (the id is in the url already)

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: datastore/Summary: correctly show the io-delay chart
Dominik Csapak [Tue, 17 May 2022 07:00:38 +0000 (09:00 +0200)]
ui: datastore/Summary: correctly show the io-delay chart

by checking if *any* record has data, not only the first
this would prevent the chart from being shown for e.g. newly added
datastores, or for datastores after the server was offline for some time

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: update online help reference
Thomas Lamprecht [Tue, 17 May 2022 07:46:48 +0000 (09:46 +0200)]
ui: update online help reference

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agodocs: storage: show gui disk management screenshot
Thomas Lamprecht [Tue, 17 May 2022 07:43:14 +0000 (09:43 +0200)]
docs: storage: show gui disk management screenshot

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agodocs: update/add some screenshots
Thomas Lamprecht [Tue, 17 May 2022 07:42:47 +0000 (09:42 +0200)]
docs: update/add some screenshots

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agodocs: certs: fix odd image referencing and drop duplicate usage
Thomas Lamprecht [Mon, 16 May 2022 17:26:46 +0000 (19:26 +0200)]
docs: certs: fix odd image referencing and drop duplicate usage

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agodocs: certificates
Stoiko Ivanov [Mon, 16 May 2022 16:27:32 +0000 (16:27 +0000)]
docs: certificates

manually adapt to differences between PMG and PBS

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2 years agodocs: add certificate-management.rst
Stoiko Ivanov [Mon, 16 May 2022 16:27:31 +0000 (16:27 +0000)]
docs: add certificate-management.rst

the file certificate-managment.rst is generated from the pmg-docs repo

by running:
```
asciidoc -b $(pwd)/asciidoc/pmg-docbook \
-f asciidoc/asciidoc-pmg.conf -o - pmg-ssl-certificate.adoc | \
pandoc -f docbook -t rst --shift-heading-level-by=1 \
-o certificate-mangement-auto.rst

sed -ri 's/__/_/' certificate-mangement-auto.rst
sed -ri 's/\{pmg\}/`Proxmox Backup`_/g' certificate-mangement-auto.rst
sed -ri 's/\{PMG\}/`Proxmox Backup`_/g' certificate-mangement-auto.rst
sed -ri 's/Proxmox Mail Gateway/`Proxmox Backup`_/g' \
certificate-mangement-auto.rst
sed -ri 's/pmg-([a-zA-Z0-9_-]*).png/pbs-\1.png/g' \
certificate-mangement-auto.rst
sed -ri 's/pmgproxy/proxmox-backup-proxy/g' \
certificate-mangement-auto.rst
sed -ri 's/pmgconfig/proxmox-backup-manager/g' \
certificate-mangement-auto.rst
sed -ri 's/pmg-daily/proxmox-backup-daily-update/g' \
certificate-mangement-auto.rst
sed -ri 's/\/etc\/pmg\/node.conf/\/etc\/proxmox-backup\/node.cfg/g' \
certificate-mangement-auto.rst
sed -ri 's/\/etc\/pmg\/acme/\/etc\/proxmox-backup\/acme/g' \
certificate-mangement-auto.rst
sed -ri \
's/\/etc\/pmg\/pmg-api.pem/\/etc\/proxmox-backup\/proxy.pem/g' \
certificate-mangement-auto.rst
sed -ri 's/screenshot/screenshots/g' certificate-mangement-auto.rst

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2 years agodocs: add certificate related screenshots
Thomas Lamprecht [Mon, 16 May 2022 17:11:54 +0000 (19:11 +0200)]
docs: add certificate related screenshots

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agodocs: use case-matching keys for glossary
Stoiko Ivanov [Mon, 16 May 2022 16:27:30 +0000 (16:27 +0000)]
docs: use case-matching keys for glossary

this silences warnings a la:
```
WARNING: term container not found in case sensitive match.made a
reference to Container instead
```
the issue is purely cosmetic during build, and should vanish in a newer
version of sphinx-doc [0].

[0] https://github.com/sphinx-doc/sphinx/issues/7636

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2 years agodocs: cleanup and readd command-line-tools
Stoiko Ivanov [Mon, 16 May 2022 16:27:29 +0000 (16:27 +0000)]
docs: cleanup and readd command-line-tools

the collection of descriptions of our cli tools was dropped in
04e24b14f0c51f01a1f8afe2d0eff124c1095758

I'll readd it to the sysadmin.rst, since the (related) service daemons
also got moved here.

additionally add the newly added cli-tools to both
command-line-tools.rst and command-syntax.rst, and put both in the same
order

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2 years agodocs: silence duplicate label warnings.
Stoiko Ivanov [Mon, 16 May 2022 16:27:28 +0000 (16:27 +0000)]
docs: silence duplicate label warnings.

by reindroducing the trailing ',' after local-zfs.rst
and adding the missing 'traffic-control.rst' to the list
of files/patterns to be excluded.

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2 years agobump version to 2.2.0-2
Thomas Lamprecht [Mon, 16 May 2022 17:01:19 +0000 (19:01 +0200)]
bump version to 2.2.0-2

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoBackupDir/BackupGroup: add ns to Debug impl
Fabian Grünbichler [Mon, 16 May 2022 11:28:52 +0000 (13:28 +0200)]
BackupDir/BackupGroup: add ns to Debug impl

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agoBackupGroup: stop implementing Display
Fabian Grünbichler [Mon, 16 May 2022 09:23:28 +0000 (11:23 +0200)]
BackupGroup: stop implementing Display

this shouldn't be printed/logged - use DatastoreWithNamespace /
pbs_api_types::BackupGroup instead.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agoprune: fix workerid issues
Fabian Grünbichler [Mon, 16 May 2022 09:00:56 +0000 (11:00 +0200)]
prune: fix workerid issues

properly encode the namespace as separate field both for manual prunes
and the job. fix the access checks as well now that the job doesn't use
the jobid as workerid anymore.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agotree-wide: prefer api-type BackupGroup for logging
Fabian Grünbichler [Mon, 16 May 2022 09:00:30 +0000 (11:00 +0200)]
tree-wide: prefer api-type BackupGroup for logging

together with DatastoreWithNamespace where needed, to not forget
namespace information.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agoBackupDir: stop implementing Display
Fabian Grünbichler [Mon, 16 May 2022 08:42:07 +0000 (10:42 +0200)]
BackupDir: stop implementing Display

the api type implements it already, all call sites should rather use
DatastoreWithName and pbs_api_types::BackupDir for logging/..

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agotape/verify: use print_ns_and_snapshot
Fabian Grünbichler [Mon, 16 May 2022 08:40:06 +0000 (10:40 +0200)]
tape/verify: use print_ns_and_snapshot

in those few places where we actually want to use/print the full,
NS-included path.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agoBackupDir: fix manifest_lock_path
Fabian Grünbichler [Mon, 16 May 2022 08:39:10 +0000 (10:39 +0200)]
BackupDir: fix manifest_lock_path

this definitely shouldn't rely on BackupDir's Display implementation..

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agotree-wide: prefer api-type BackupDir for logging
Fabian Grünbichler [Mon, 16 May 2022 08:33:59 +0000 (10:33 +0200)]
tree-wide: prefer api-type BackupDir for logging

in combination with DatastoreWithNamespace to not lose the namespace
information.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agoBackupDir: add group/dir accessors
Fabian Grünbichler [Mon, 16 May 2022 11:31:49 +0000 (13:31 +0200)]
BackupDir: add group/dir accessors

for getting the respective api type references for convenient
printing/logging.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agoui: verify/sync: allow to optionally override ID again
Thomas Lamprecht [Mon, 16 May 2022 16:48:44 +0000 (18:48 +0200)]
ui: verify/sync: allow to optionally override ID again

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoapi: namespace create: lookup datastore with corret operation
Thomas Lamprecht [Mon, 16 May 2022 16:26:55 +0000 (18:26 +0200)]
api: namespace create: lookup datastore with corret operation

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: add maintenance mask to DataStoreListSummary
Hannes Laimer [Fri, 6 May 2022 09:58:58 +0000 (09:58 +0000)]
ui: add maintenance mask to DataStoreListSummary

Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
2 years agodocs: acl path: add a namespace related example
Thomas Lamprecht [Mon, 16 May 2022 16:10:13 +0000 (18:10 +0200)]
docs: acl path: add a namespace related example

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agodocs: add namespace section to sync documentation
Fabian Grünbichler [Mon, 16 May 2022 13:48:46 +0000 (15:48 +0200)]
docs: add namespace section to sync documentation

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agoRevert "fix #4001: datastore/catalog: add number of files to directory entry"
Thomas Lamprecht [Mon, 16 May 2022 15:51:01 +0000 (17:51 +0200)]
Revert "fix #4001: datastore/catalog: add number of files to directory entry"

causes trouble with UI and is inconsistent as its still missing in
file restore (daemon)

We probably want to use a separate property to safe this to avoid
confusion with size.

This reverts commit 66ad63bac23359b8ede822496f68ebde843cf988.

2 years agoui: verify outdated: disallow blank and drop wrong empty text
Thomas Lamprecht [Mon, 16 May 2022 14:46:06 +0000 (16:46 +0200)]
ui: verify outdated: disallow blank and drop wrong empty text

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: switch summary repo status to widget toolkit one
Thomas Lamprecht [Mon, 16 May 2022 13:55:01 +0000 (15:55 +0200)]
ui: switch summary repo status to widget toolkit one

Not only can we remove a few lines of duplicated code, we also get
the "link to repo management" for free.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agod/control: use regular versioned build-dependency
Fabian Grünbichler [Mon, 16 May 2022 13:51:47 +0000 (15:51 +0200)]
d/control: use regular versioned build-dependency

although the full variant is provided by the current librust-log-dev
package, it won't be once it gets bumped to the next upstream version.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agoui: fix setting protection in namespace
Fabian Ebner [Mon, 16 May 2022 13:25:02 +0000 (15:25 +0200)]
ui: fix setting protection in namespace

The ns parameter would not be included previously.

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
2 years agodocs: terminology: add namespaces and slightly restructure
Thomas Lamprecht [Mon, 16 May 2022 13:28:00 +0000 (15:28 +0200)]
docs: terminology: add namespaces and slightly restructure

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agobuild: bump required log version
Fabian Grünbichler [Mon, 16 May 2022 13:02:07 +0000 (15:02 +0200)]
build: bump required log version

else logging using "{var}" in format strings doesn't work properly.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agoclient: add completion callbacks for ns parameters
Wolfgang Bumiller [Mon, 16 May 2022 09:13:37 +0000 (11:13 +0200)]
client: add completion callbacks for ns parameters

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agopbs-client: namespace completion helper
Wolfgang Bumiller [Mon, 16 May 2022 09:13:17 +0000 (11:13 +0200)]
pbs-client: namespace completion helper

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agobump version to 2.2.0-1
Thomas Lamprecht [Mon, 16 May 2022 09:06:10 +0000 (11:06 +0200)]
bump version to 2.2.0-1

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agodocs: add "Objects and Paths" section and fix perm scrot
Thomas Lamprecht [Mon, 16 May 2022 08:56:12 +0000 (10:56 +0200)]
docs: add "Objects and Paths" section and fix perm scrot

we show the add-user one twice in this chapter, one should actually
be add-permission

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoapi types: namespace: fix typo in error message
Thomas Lamprecht [Mon, 16 May 2022 07:50:10 +0000 (09:50 +0200)]
api types: namespace: fix typo in error message

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agopull: use API BackupDir for log messages
Fabian Grünbichler [Mon, 16 May 2022 07:30:20 +0000 (09:30 +0200)]
pull: use API BackupDir for log messages

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agoapi types: BackupNamespace: fix depth check on pushing subdir to ns
Thomas Lamprecht [Mon, 16 May 2022 07:16:46 +0000 (09:16 +0200)]
api types: BackupNamespace: fix depth check on pushing subdir to ns

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoapi types: BackupNamespace: remove unused, commented out code
Thomas Lamprecht [Mon, 16 May 2022 07:13:00 +0000 (09:13 +0200)]
api types: BackupNamespace: remove unused, commented out code

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agodatastore: ns iter: clamp depth to MAX_NAMESPACE_DEPTH from datastore root
Thomas Lamprecht [Mon, 16 May 2022 07:10:01 +0000 (09:10 +0200)]
datastore: ns iter: clamp depth to MAX_NAMESPACE_DEPTH from datastore root

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: permission path selector: add some more path suggestions
Thomas Lamprecht [Mon, 16 May 2022 06:44:49 +0000 (08:44 +0200)]
ui: permission path selector: add some more path suggestions

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agodocs: rework access control, list available privileges
Thomas Lamprecht [Mon, 16 May 2022 06:00:40 +0000 (08:00 +0200)]
docs: rework access control, list available privileges

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: datastore: use safe destroy as base for dialog
Thomas Lamprecht [Sun, 15 May 2022 14:47:42 +0000 (16:47 +0200)]
ui: datastore: use safe destroy as base for dialog

only ask the name of the current NS, not the full NS path to avoid
too long input requirements on deep levels.

needs a few smaller hacks, ideally we would pull out the basic stuff
from Edit window in some EditBase window and let both, SafeDestroy
and Edit window derive from that, for better common, in sync
features.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agonamespace deletion: propagate delete-groups=false but ENOTEMPTY as error
Thomas Lamprecht [Sun, 15 May 2022 14:32:46 +0000 (16:32 +0200)]
namespace deletion: propagate delete-groups=false but ENOTEMPTY as error

after all we couldn't delete all that got requested, ideally this
should become a task where we can log what got deleted and what
not...

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: datastore: allow deleting currently shown namespace
Thomas Lamprecht [Sun, 15 May 2022 14:04:49 +0000 (16:04 +0200)]
ui: datastore: allow deleting currently shown namespace

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: content: reload tree on succesful datastore add
Thomas Lamprecht [Sun, 15 May 2022 14:03:16 +0000 (16:03 +0200)]
ui: content: reload tree on succesful datastore add

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: tree NS entries: remove commented out qtip
Thomas Lamprecht [Sun, 15 May 2022 14:02:37 +0000 (16:02 +0200)]
ui: tree NS entries: remove commented out qtip

we won't use that, it's to invasive

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoapi: cargo fmt
Thomas Lamprecht [Sun, 15 May 2022 14:01:57 +0000 (16:01 +0200)]
api: cargo fmt

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agodatastore: clippy fixes
Thomas Lamprecht [Sun, 15 May 2022 14:01:09 +0000 (16:01 +0200)]
datastore: clippy fixes

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agodatastore: move backup dir/group/namespace iter to own module
Thomas Lamprecht [Sun, 15 May 2022 13:59:40 +0000 (15:59 +0200)]
datastore: move backup dir/group/namespace iter to own module

no changes in interface for users of the crate as we re-export
anyway, so more for avoiding to crowd the datastore module to much

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: content: fix tooltip for forgetting snapshot
Thomas Lamprecht [Sun, 15 May 2022 12:08:24 +0000 (14:08 +0200)]
ui: content: fix tooltip for forgetting snapshot

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agonamespace deletion: make destroying groups separate choice
Thomas Lamprecht [Sun, 15 May 2022 11:50:58 +0000 (13:50 +0200)]
namespace deletion: make destroying groups separate choice

And make that opt-in in the API endpoint, to avoid bad surprises by
default.

If not set we'll only prune empty namespaces.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agofix #4001: ui: add prefix to files downloaded through the pxar browser
Stefan Sterz [Thu, 5 May 2022 13:52:52 +0000 (15:52 +0200)]
fix #4001: ui: add prefix to files downloaded through the pxar browser

Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agofix #4001: datastore/catalog: add number of files to directory entry
Stefan Sterz [Thu, 5 May 2022 13:52:51 +0000 (15:52 +0200)]
fix #4001: datastore/catalog: add number of files to directory entry

When listing the content of a catalog, add the number of files
contained in the directory as its size. Also removes redundant code,
the `mtime` and the `size` of a file is already set when creating the
archive entry, but we naturally need to override the size now for
directories.

Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: prune all: add namespace info in title
Thomas Lamprecht [Sat, 14 May 2022 16:57:05 +0000 (18:57 +0200)]
ui: prune all: add namespace info in title

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: move prune input panel into own file
Thomas Lamprecht [Sat, 14 May 2022 16:51:54 +0000 (18:51 +0200)]
ui: move prune input panel into own file

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: prune group: add NS info to title
Thomas Lamprecht [Sat, 14 May 2022 16:47:12 +0000 (18:47 +0200)]
ui: prune group: add NS info to title

restructure it a bit for better UX

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: remote target ns selector: add clear trigger
Thomas Lamprecht [Sat, 14 May 2022 16:40:51 +0000 (18:40 +0200)]
ui: remote target ns selector: add clear trigger

like we have for the local NS selector

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: improve render_optional_namespace slighly
Thomas Lamprecht [Sat, 14 May 2022 16:39:52 +0000 (18:39 +0200)]
ui: improve render_optional_namespace slighly

it maybe should still simple get dropped and replaced with
(empty)Text 'Root' or 'Root Namespace'

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: remote target ns selector: fix clearing value on edit
Thomas Lamprecht [Sat, 14 May 2022 16:29:09 +0000 (18:29 +0200)]
ui: remote target ns selector: fix clearing value on edit

never makes sense to clear the value due to remote or remoteStore
change as we weren't enabled then in the first place.

This fixes clearing the currently set namespace on editing an
existing job, which always made it seem like the Root namespace was
selected, even if the originalValue was correct (thus the dirty-form
reset/ok behaviour still worked, making it even more confusing)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoclient: make change-owner and prune namespace aware
Thomas Lamprecht [Sat, 14 May 2022 15:16:25 +0000 (17:16 +0200)]
client: make change-owner and prune namespace aware

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agohierachy: ListAccessibleBackupGroups make store also a lifetime'd ref
Thomas Lamprecht [Sat, 14 May 2022 12:56:32 +0000 (14:56 +0200)]
hierachy: ListAccessibleBackupGroups make store also a lifetime'd ref

avoid some extra Arc::clone, even if they're not really expensive
(just some atomics)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: maintenance mode: opinionated code cleanup
Thomas Lamprecht [Sat, 14 May 2022 12:51:57 +0000 (14:51 +0200)]
ui: maintenance mode: opinionated code cleanup

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: ACL edit: set default focus on a non-combobox element
Thomas Lamprecht [Sat, 14 May 2022 12:50:38 +0000 (14:50 +0200)]
ui: ACL edit: set default focus on a non-combobox element

to avoid making it "jump" in the users face by immediately opening
the picker on window open.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: namespace selector: set queryMode to local
Thomas Lamprecht [Sat, 14 May 2022 12:48:31 +0000 (14:48 +0200)]
ui: namespace selector: set queryMode to local

to avoid that the comobox triggers automatic API request with the
queryParam default `query` GET param on manual typing (e.g., for
filtering) from the user, we have all data already loaded and locally
available.

https://docs.sencha.com/extjs/7.0.0/classic/Ext.form.field.ComboBox.html#cfg-queryMode

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: trigger datastore update after maintenance mode edit
Thomas Lamprecht [Sat, 14 May 2022 12:38:58 +0000 (14:38 +0200)]
ui: trigger datastore update after maintenance mode edit

This provides immediate feedback for adding the respective icon in
the navigation tree entry most of the time, and we can then increase
the query period of the datastore list store to the original 15
again, as it was lowered to 5 seconds for just this reason in commit
fbd6f54f39b243e5

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: fix storeId casing to register store correctly
Thomas Lamprecht [Sat, 14 May 2022 10:28:01 +0000 (12:28 +0200)]
ui: fix storeId casing to register store correctly

we query that store to add the datastore specific ACL paths to
improve UX there, this failed a while due the StoreManager lookup
always failing as the store wasn't registered in the StoreManager due
to using storeid vs. correct storeId

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agocargo fmt
Thomas Lamprecht [Fri, 13 May 2022 14:59:32 +0000 (16:59 +0200)]
cargo fmt

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoapi: datastore status: make counts recurse over all accesible namespaces
Thomas Lamprecht [Fri, 13 May 2022 14:49:42 +0000 (16:49 +0200)]
api: datastore status: make counts recurse over all accesible namespaces

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agohierachy: add lifetime to ListAccessibleBackupGroups so that owner can be ref
Thomas Lamprecht [Fri, 13 May 2022 14:48:56 +0000 (16:48 +0200)]
hierachy: add lifetime to ListAccessibleBackupGroups so that owner can be ref

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agodocs: tape: add information about namespaces
Dominik Csapak [Fri, 13 May 2022 13:39:39 +0000 (15:39 +0200)]
docs: tape: add information about namespaces

which are backed up, how to use the new parameters and how to map
them during restore

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agodocs: tape/restore: mention single snapshot restore
Dominik Csapak [Fri, 13 May 2022 13:39:38 +0000 (15:39 +0200)]
docs: tape/restore: mention single snapshot restore

what it is, how to use it and the caveats

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agodocs: tape: remove note about global content namespace
Dominik Csapak [Fri, 13 May 2022 13:39:37 +0000 (15:39 +0200)]
docs: tape: remove note about global content namespace

that is actually not true, we save the datastore in the chunk archives
as well as the snapshot archives, otherwise we could not backup
multiple datastores to a single media-set.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agocli: proxmox-tape: fix ns/depth parameter
Dominik Csapak [Fri, 13 May 2022 13:39:36 +0000 (15:39 +0200)]
cli: proxmox-tape: fix ns/depth parameter

was forgotten after recent rebase

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agobump version to 2.1.10-1
Thomas Lamprecht [Fri, 13 May 2022 12:26:37 +0000 (14:26 +0200)]
bump version to 2.1.10-1

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: adapt to s/backup-ns/ns/ api param change
Thomas Lamprecht [Fri, 13 May 2022 12:21:52 +0000 (14:21 +0200)]
ui: adapt to s/backup-ns/ns/ api param change

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: tape/Restore: allow simple namespace mapping
Dominik Csapak [Fri, 13 May 2022 11:44:30 +0000 (13:44 +0200)]
ui: tape/Restore: allow simple namespace mapping

add a default namespace selector (of the current default store)
and a namespace selector per target datastore (for media-sets with
multiple datastores).

to achieve that we have to change the way we handle the mapping field a bit:
* don't use it as field directly (otherwise the value gets stringified),
  but use the 'getValue' method in 'onGetValues'.
* set the defaultStore there, not only that we have one
  (with this we can now easily show it as emptytext for each store)
* add a reference to the widgets to the record so that we can access
  them in the respective change handler (also clean those references up,
  else we have a cyclic reference between record <-> widget)

in onGetValues, if we have multiple datastores, the mapping grid does
all the work for us, otherwise, we have to create the ns mapping
ourselves there.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agoui: tape/BackupJobEdit: add onlineHelp
Dominik Csapak [Fri, 13 May 2022 07:59:57 +0000 (09:59 +0200)]
ui: tape/BackupJobEdit: add onlineHelp

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agoui: tape/Backup: add namespace + max-depth to backup job edit window
Dominik Csapak [Fri, 13 May 2022 07:09:14 +0000 (09:09 +0200)]
ui: tape/Backup: add namespace + max-depth to backup job edit window

like we do for sync

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agoui: tape/Backup: add namespace and recursion field for manual backup
Dominik Csapak [Fri, 13 May 2022 06:34:11 +0000 (08:34 +0200)]
ui: tape/Backup: add namespace and recursion field for manual backup

and change the layout to two columns, because the window was getting
too tall.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agoapi: tape/backup: fix namespace/max-depth parameters
Dominik Csapak [Fri, 13 May 2022 07:06:11 +0000 (09:06 +0200)]
api: tape/backup: fix namespace/max-depth parameters

by adding the 'default' serde hint and renaming 'recursion_depth' to
'max_depth' (to be in line with sync job config)

also add the logic to actually add/update the tape backup job config

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agoui: tape/BackupOverview: show namespaces as their own level above groups
Dominik Csapak [Thu, 12 May 2022 14:23:26 +0000 (16:23 +0200)]
ui: tape/BackupOverview: show namespaces as their own level above groups

since the namespaces are in the snapshot path we get here, we must parse
them out, else we confuse the first namespace with the group.

for now, show all namespaces on the same level (so not nested), and
do not allow for preselecting a namespace for restoring

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agotape: media catalog: use match for magic check
Fabian Grünbichler [Wed, 11 May 2022 12:57:52 +0000 (14:57 +0200)]
tape: media catalog: use match for magic check

like in other parts of the code

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agotape: bump catalog/snapshot archive magic
Fabian Grünbichler [Wed, 11 May 2022 12:54:18 +0000 (14:54 +0200)]
tape: bump catalog/snapshot archive magic

the snapshot string format is not backwards compatible since it now has
an in-line namespace prefix. it's possible to select which magic to use
at the start of the backup, since a tape backup job knows whether it
operates on non-root namespaces up-front.

the MediaCatalog itself also has a similar incompatible change, but
there
- updating existing catalogs in-place
- not knowing what the catalog will contain in the future when initially
  creating/opening it
makes bumping the magic there harder. since the tape contents are
sufficiently guarded by the other two bumps, ignoring the
backwards-incomaptible change of the on-disk catalogs seems like an okay
tradeoff.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agoapi: tape/restore: add namespace mapping
Dominik Csapak [Thu, 5 May 2022 13:59:36 +0000 (15:59 +0200)]
api: tape/restore: add namespace mapping

by adding a new parameter 'namespaces', which contains a mapping
for a namespace like this:

store=datastore,source=foo,target=bar,max-depth=2

if source or target are omitted the root namespace is used for its value

this mapping can be given several times (on the cli) or as an array (via
api) to have mappings for multiple datastores

if a specific snapshot list is given simultaneously, the given snapshots
will be restored according to this mapping, or to the source namespace
if no mapping was found.

to do this, we reutilize the restore_list_worker, but change it so that
it does not hold a lock for the duration of the restore, but fails
if the snapshot does exist at the end. also the snapshot will now
be temporarily restored into the target datastore into the
'.tmp/<media-set-uuid>' folder.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agoapi: tape/restore: check and create target namespace
Dominik Csapak [Fri, 6 May 2022 14:44:16 +0000 (16:44 +0200)]
api: tape/restore: check and create target namespace

checks the privilegs for the target namespace. If that does not exist,
try to recursively create them while checking the privileges.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agoapi: tape/restore: add optional namespace map to DataStoreMap
Dominik Csapak [Thu, 5 May 2022 13:54:50 +0000 (15:54 +0200)]
api: tape/restore: add optional namespace map to DataStoreMap

and change the interface from 'get_datastore' to 'get_targets'

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agotape: add namespaces mapping type
Dominik Csapak [Thu, 5 May 2022 12:12:36 +0000 (14:12 +0200)]
tape: add namespaces mapping type

and the relevant parser for it

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agotape: add namespaces/recursion depth to tape backup jobs
Dominik Csapak [Tue, 3 May 2022 06:06:34 +0000 (08:06 +0200)]
tape: add namespaces/recursion depth to tape backup jobs

and manual api via TapeBackupJobSetup

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>