]> git.proxmox.com Git - proxmox-backup.git/log
proxmox-backup.git
2 years agoSet MMAP_THRESHOLD to a fixed value (128K)
Dietmar Maurer [Wed, 26 Jan 2022 06:10:59 +0000 (07:10 +0100)]
Set MMAP_THRESHOLD to a fixed value (128K)

glibc's malloc has a misguided heuristic to detect transient allocations that
will just result in allocation sizes below 32 MiB never using mmap.

That it turn means that those relatively big allocations are on the heap where
cleanup and returning memory to the OS is harder to do and easier to be blocked
by long living, small allocations at the top (end) of the heap.

Observing the malloc size distribution in a file-level backup run:

@size:
[0]                   14 |                                                    |
[1]                25214 |@@@@@                                               |
[2, 4)              9090 |@                                                   |
[4, 8)             12987 |@@                                                  |
[8, 16)            93453 |@@@@@@@@@@@@@@@@@@@@                                |
[16, 32)           30255 |@@@@@@                                              |
[32, 64)          237445 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@|
[64, 128)          32692 |@@@@@@@                                             |
[128, 256)         22296 |@@@@                                                |
[256, 512)         16177 |@@@                                                 |
[512, 1K)           5139 |@                                                   |
[1K, 2K)            3352 |                                                    |
[2K, 4K)             214 |                                                    |
[4K, 8K)            1568 |                                                    |
[8K, 16K)             95 |                                                    |
[16K, 32K)          3457 |                                                    |
[32K, 64K)          3175 |                                                    |
[64K, 128K)          161 |                                                    |
[128K, 256K)         453 |                                                    |
[256K, 512K)          93 |                                                    |
[512K, 1M)            74 |                                                    |
[1M, 2M)             774 |                                                    |
[2M, 4M)             319 |                                                    |
[4M, 8M)             700 |                                                    |
[8M, 16M)             93 |                                                    |
[16M, 32M)            18 |                                                    |

We see that all allocations will be on the heap, and that while most
allocations are small, the relatively few big ones will still make up most of
the RSS and if blocked from being released back to the OS result in much higher
peak and average usage for the program than actually required.

Avoiding the "dynamic" mmap-threshold increasement algorithm and fixing it at
the original default of 128 KiB reduces RSS size by factor 10-20 when running
backups. As with memory mappings other mappings or the heap can never block
freeing the memory fully back to the OS.

But, the drawback of using mmap is more wasted space for unaligned or small
allocation sizes, and the fact that the kernel allegedly zeros out the data
before giving it to user space. The former doesn't really matter for us when
using it only for allocations bigger than 128 KiB, and the latter is a
trade-off, using 10 to 20 times less memory brings its own performance
improvement possibilities for the whole system after all ;-)

Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
 [ Thomas: added to comment & commit message + extra-empty-line fixes ]
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agobump version to 2.1.4-1
Thomas Lamprecht [Fri, 21 Jan 2022 09:48:42 +0000 (10:48 +0100)]
bump version to 2.1.4-1

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agopbs-tools: LruCache: implement Drop
Dominik Csapak [Thu, 20 Jan 2022 10:16:08 +0000 (11:16 +0100)]
pbs-tools: LruCache: implement Drop

this fixes the leaked memory for the cache, as we had only pointers
in the map/list which were freed, not the underlying chunks

moves the 'clear' implementation out of the trait bounds so that
Drop can reuse it

this is used e.g. for file download from a pxar

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agodocs: make external hyperlinks clickable
Matthias Heiserer [Tue, 18 Jan 2022 14:25:43 +0000 (15:25 +0100)]
docs: make external hyperlinks clickable

rustdoc lints detected that two external hyperlinks were not
clickable.

The short cut used is only available for internal links, otherwise
one needs to use the Markdown syntax, so either [Text](URL) or <URL>.

Signed-off-by: Matthias Heiserer <m.heiserer@proxmox.com>
[ T: commit message text width, mention markdown ]
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agociphers: improve option naming
Fabian Grünbichler [Thu, 13 Jan 2022 09:54:40 +0000 (10:54 +0100)]
ciphers: improve option naming

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agoapi2: make tls ciphers updatable
Hannes Laimer [Tue, 11 Jan 2022 11:39:37 +0000 (12:39 +0100)]
api2: make tls ciphers updatable

Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
2 years agoproxy: use ciphers from config if set
Hannes Laimer [Tue, 11 Jan 2022 11:39:36 +0000 (12:39 +0100)]
proxy: use ciphers from config if set

Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
2 years agociphers: simplify API schema
Fabian Grünbichler [Thu, 13 Jan 2022 09:16:15 +0000 (10:16 +0100)]
ciphers: simplify API schema

these need to be checked (and are) via libssl anyway before persisting,
and newer versions might contain new ciphers/variants/... (and things
like @STRENGTH or @SECLEVEL=n were missing).

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agoconfig: add tls ciphers to NodeConfig
Hannes Laimer [Tue, 11 Jan 2022 11:39:35 +0000 (12:39 +0100)]
config: add tls ciphers to NodeConfig

for TLS 1.3 and for TLS <= 1.2

Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
2 years agobump version to 2.1.3-1
Thomas Lamprecht [Wed, 12 Jan 2022 15:49:33 +0000 (16:49 +0100)]
bump version to 2.1.3-1

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoapi-types: relax NODENAME_SCHEMA
Fabian Grünbichler [Wed, 12 Jan 2022 13:52:10 +0000 (14:52 +0100)]
api-types: relax NODENAME_SCHEMA

there isn't really a concept of 'nodes' in PBS (yet) anyway - and if
there ever is, it needs to be handled by the rest-server / specific API
endpoints (like in PVE), and not by the schema.

this allows dropping proxmox-sys from pbs-api-types (and thus nix and
some other transitive deps as well).

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agoapi-types: move RsaPubKeyInfo to pbs-client
Fabian Grünbichler [Wed, 12 Jan 2022 13:52:09 +0000 (14:52 +0100)]
api-types: move RsaPubKeyInfo to pbs-client

it's the only thing requiring openssl in pbs-api-types, and it's only
used by the client to pretty-print the 'master' key, which is
client-specific.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agodocs: fix some typos
Thomas Lamprecht [Wed, 12 Jan 2022 14:19:50 +0000 (15:19 +0100)]
docs: fix some typos

the `congestion` typo has been mentioned in the forum:
https://forum.proxmox.com/threads/proxmox-backup-server-2-1-released.100240/#post-443370

fixed a few surrounding ones and ones that `codespell` found in
addition to that.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: sys config: add icons to tabs
Thomas Lamprecht [Wed, 12 Jan 2022 11:41:16 +0000 (12:41 +0100)]
ui: sys config: add icons to tabs

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: sys config: code cleanup/refactoring
Thomas Lamprecht [Wed, 12 Jan 2022 11:38:45 +0000 (12:38 +0100)]
ui: sys config: code cleanup/refactoring

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: sys config: merge webauthn and general options into one tab
Thomas Lamprecht [Wed, 12 Jan 2022 11:36:36 +0000 (12:36 +0100)]
ui: sys config: merge webauthn and general options into one tab

To much wasted space else.
Also rename "Options" to "Others", while it's not _that_ much better
it's slightly more intuitive than config -> options (which has some
redundancy)...

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agofix #3058: ui: improve remote edit UX by clarifying ID vs host
Thomas Lamprecht [Wed, 12 Jan 2022 08:38:20 +0000 (09:38 +0100)]
fix #3058: ui: improve remote edit UX by clarifying ID vs host

also fixup missing emptyText for fingerprint (adapted from PVE's PBS
storage addition) and code-style in surrounding areas a bit

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: hide rrd chart for io delay if no io_ticks are returned
Dominik Csapak [Tue, 11 Jan 2022 09:27:08 +0000 (10:27 +0100)]
ui: hide rrd chart for io delay if no io_ticks are returned

it makes no sense to show a completely empty graph

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agoapi/admin/datastore: rrd: do not include io_ticks for zfs datastores
Dominik Csapak [Tue, 11 Jan 2022 09:27:07 +0000 (10:27 +0100)]
api/admin/datastore: rrd: do not include io_ticks for zfs datastores

since it is not possible to collect them, do not return them here either

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agofix #3743: extract zfs dataset io stats from /proc/spl/kstat/zfs/POOL/objset-*
Dominik Csapak [Mon, 10 Jan 2022 11:08:14 +0000 (12:08 +0100)]
fix #3743: extract zfs dataset io stats from /proc/spl/kstat/zfs/POOL/objset-*

Recently, ZFS removed the pool global io stats from
/proc/spl/kstat/zfs/POOL/io with no replacement.

To gather stats about the datastores, access now the objset specific
entries there. To be able to make that efficient, cache a map of
dataset <-> obset ids, so that we do not have to parse all files each time.

We update the cache each time we try to get the info for a dataset
where we do not have a mapping.

We cannot update it on datastore add/remove since that happens in the
proxmox-backup daemon, while we need the info here in proxmox-backup-proxy.

Sadly with this we lose the io wait metric, but it seems that this is no
longer tracked in zfs at all, so nothing we can do for that.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agodatastore status: do not count empty groups
Dietmar Maurer [Fri, 7 Jan 2022 07:40:22 +0000 (08:40 +0100)]
datastore status: do not count empty groups

Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
2 years agotools::config: error on newlines in string values
Wolfgang Bumiller [Wed, 5 Jan 2022 09:03:44 +0000 (10:03 +0100)]
tools::config: error on newlines in string values

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoui: add new options tab under configuration
Hannes Laimer [Mon, 3 Jan 2022 09:04:56 +0000 (10:04 +0100)]
ui: add new options tab under configuration

... and add from-email + move http-proxy there

Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
2 years agoserver: use configured email-from for sending mail
Hannes Laimer [Mon, 3 Jan 2022 09:04:55 +0000 (10:04 +0100)]
server: use configured email-from for sending mail

Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
2 years agoapi2: make email-from updatable
Hannes Laimer [Mon, 3 Jan 2022 09:04:54 +0000 (10:04 +0100)]
api2: make email-from updatable

Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
2 years agoconfig: add email-from to NodeConfig
Hannes Laimer [Mon, 3 Jan 2022 09:04:53 +0000 (10:04 +0100)]
config: add email-from to NodeConfig

Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
2 years agoTimeSpan: parse via FromStr
Fabian Grünbichler [Thu, 30 Dec 2021 12:57:27 +0000 (13:57 +0100)]
TimeSpan: parse via FromStr

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agouse schema verify methods
Fabian Grünbichler [Thu, 30 Dec 2021 12:55:54 +0000 (13:55 +0100)]
use schema verify methods

the old, deprecated ones only forward to these anyway.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agorrd: drop redundant field names
Fabian Grünbichler [Thu, 30 Dec 2021 13:18:43 +0000 (14:18 +0100)]
rrd: drop redundant field names

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agotree-wide: is_ok/is_err()
Fabian Grünbichler [Thu, 30 Dec 2021 14:01:31 +0000 (15:01 +0100)]
tree-wide: is_ok/is_err()

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agotree-wide: use is_empty() and similar
Fabian Grünbichler [Thu, 30 Dec 2021 13:49:11 +0000 (14:49 +0100)]
tree-wide: use is_empty() and similar

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agotree-wide: cleanup manual map/flatten
Fabian Grünbichler [Thu, 30 Dec 2021 13:35:24 +0000 (14:35 +0100)]
tree-wide: cleanup manual map/flatten

found with clippy, best viewed with `-w` ;)

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agoview_task_result: remove unnecessary &mut
Fabian Grünbichler [Thu, 30 Dec 2021 12:35:51 +0000 (13:35 +0100)]
view_task_result: remove unnecessary &mut

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agotree-wide: drop redundant clones
Fabian Grünbichler [Thu, 30 Dec 2021 12:20:03 +0000 (13:20 +0100)]
tree-wide: drop redundant clones

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agotape: multi-volume: fix overflow check
Fabian Grünbichler [Thu, 30 Dec 2021 12:03:55 +0000 (13:03 +0100)]
tape: multi-volume: fix overflow check

the part number cannot go above 255 at the moment, but if it ever gets
bumped to a bigger integer type this boundary wouldn't cause a
compile-error. explicitly checking for overflowing u8 makes this a bit
more future-proof, and shuts up clippy as well ;)

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agotree-wide: fix needless borrows
Fabian Grünbichler [Thu, 30 Dec 2021 11:57:37 +0000 (12:57 +0100)]
tree-wide: fix needless borrows

found and fixed via clippy

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agofix #3763: disable renegotiation
Fabian Grünbichler [Wed, 15 Dec 2021 14:18:36 +0000 (15:18 +0100)]
fix #3763: disable renegotiation

requires openssl crate with fix[0], like our packaged one.

0: https://github.com/sfackler/rust-openssl/pull/1584

Tested-by: Stoiko Ivanov s.ivanov@proxmox.com
Reviewed-by: Stoiko Ivanov s.ivanov@proxmox.com
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agobump d/control
Wolfgang Bumiller [Thu, 16 Dec 2021 10:24:55 +0000 (11:24 +0100)]
bump d/control

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agobump regex dep to 1.5
Wolfgang Bumiller [Thu, 16 Dec 2021 10:12:17 +0000 (11:12 +0100)]
bump regex dep to 1.5

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agocleanup schema function calls
Wolfgang Bumiller [Thu, 16 Dec 2021 10:02:53 +0000 (11:02 +0100)]
cleanup schema function calls

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agobump proxmox-schema to 1.1
Wolfgang Bumiller [Thu, 16 Dec 2021 10:08:44 +0000 (11:08 +0100)]
bump proxmox-schema to 1.1

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoui: group filter: add hint that filter are additive
Thomas Lamprecht [Thu, 16 Dec 2021 10:19:49 +0000 (11:19 +0100)]
ui: group filter: add hint that filter are additive

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agorestore-daemon: fix use of deprecated env_logger::from_env function
Thomas Lamprecht [Thu, 16 Dec 2021 10:12:36 +0000 (11:12 +0100)]
restore-daemon: fix use of deprecated env_logger::from_env function

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agodrop unused imports of proxmox_sys::identity
Thomas Lamprecht [Thu, 16 Dec 2021 10:09:38 +0000 (11:09 +0100)]
drop unused imports of proxmox_sys::identity

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoapi: zfs: create zpool with relatime=on
Dominik Csapak [Thu, 16 Dec 2021 07:51:33 +0000 (08:51 +0100)]
api: zfs: create zpool with relatime=on

some operations (e.g. garbage collection/restore/etc.) are very read
intensive on the chunks, and having atime=on and relatime=off (zfs default)
makes those write intensive operations too. Additionally, 'ext4' defaults to
relatime, so also change the default for api-created zpools.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agoui: fix opening settings window in datastore panel
Dominik Csapak [Thu, 2 Dec 2021 14:26:31 +0000 (15:26 +0100)]
ui: fix opening settings window in datastore panel

When a user directly opened the webui with a fragment that is not
the summary, opening of the 'my settings' window fails because the
initial set of the columns field triggers a state change, which in turn
tries to trigger 'updateColumns'. That fails though, since the columns
were not even rendered yet (because we are on a different tab).

To fix this, simply return when the panel is not rendered yet.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agobuildsys: drop hack that moved testing after dh_install
Thomas Lamprecht [Wed, 15 Dec 2021 13:25:30 +0000 (14:25 +0100)]
buildsys: drop hack that moved testing after dh_install

the motivation for this was that we required to build some stuff with
different feature flags before the big-split when openid (that still
links to the dependency-greedy) got added, to avoid that binaries
that do not use openid at all also got linked to its dependencies.

This is now fixed since a bit and thus we should be able to drop the
test-reorder hack.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agofix #3794: api types: set backup time lower limit to 1
Thomas Lamprecht [Wed, 15 Dec 2021 13:13:46 +0000 (14:13 +0100)]
fix #3794: api types: set backup time lower limit to 1

Some users want to import historical backups but they run into the
original lower backuo-time limit one can pass. That original limit
was derived from the initial PBS development start in 2019, it was
assumed that no older backup can exist with PBS before it existing,
but imports of older backups is a legitimate thing.

I pondered using 683071200 (1991-08-25), aka the first time Linux was
publicly announced by Linus Torvalds as new limit but at the end I
did not wanted to risk that and backup software is IMO to serious for
such easter eggs, so I went for 1, to differ between the bogus 0 some
tools fallback too if there's something off with time.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agocargo: update commented-out local path override for convenience
Thomas Lamprecht [Wed, 15 Dec 2021 12:46:48 +0000 (13:46 +0100)]
cargo: update commented-out local path override for convenience

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: calendar event: add once daily example and clarify workday one
Thomas Lamprecht [Tue, 7 Dec 2021 17:54:24 +0000 (18:54 +0100)]
ui: calendar event: add once daily example and clarify workday one

similar to PVE, copying over the remaining commit message:

Using 00:00 with relying on the implied default is sub optimal as its
a bit of a magic example that new users may not understand as easily.
So spell it out explicitly, even if there'd be a shorter version
possible.

We also had some request for the once-daily every day, and its a
sensible example to have in general, could help getting the
difference between an hour list and a single one.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agopbs-client: avoid mut self in http_client methods.
Dietmar Maurer [Sat, 4 Dec 2021 13:11:55 +0000 (14:11 +0100)]
pbs-client: avoid mut self in http_client methods.

It is not necessary, so avoid it. The client can now be used
with multiple threads (without using a Mutex).

Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
2 years agoadapt compute_next_event to new signature
Dominik Csapak [Wed, 1 Dec 2021 08:45:07 +0000 (09:45 +0100)]
adapt compute_next_event to new signature

the 'utc' flag is now contained in the event itself and not given
as a flag to 'compute_next_event' anymore

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
2 years agoui: group filter: merge duplicate filters
Thomas Lamprecht [Wed, 1 Dec 2021 13:30:38 +0000 (14:30 +0100)]
ui: group filter: merge duplicate filters

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: group filter: cleanup and comment more
Thomas Lamprecht [Wed, 1 Dec 2021 13:29:08 +0000 (14:29 +0100)]
ui: group filter: cleanup and comment more

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: form/GroupFilter: copy records for the pbsGroupSelectors
Dominik Csapak [Wed, 1 Dec 2021 10:57:08 +0000 (11:57 +0100)]
ui: form/GroupFilter: copy records for the pbsGroupSelectors

store.getData() returns an 'Ext.util.Collection' which is a special
class that does more than being an array of records. Namely, it can
have 'observers' which can react on the change of the collection

Here, the 'onWidgetAttach' callback will be called twice on the first
row add and the widgets (and thus stores) are cached by extjs. When
doing a 'setData' of a Collection, it tries to add the store as an
observer, but due to the above caching and multiple calling this fails
since the store is already an observer.

For this reason, we want to actually copy the records (which neither
the store, nor the Collection has a method for...)

This gives us an additional benefit: The different pbsGroupSelectors can
sort independently now, before it was all linked to the original store's
collection.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: form/GroupFilter: improve group load callback handling
Dominik Csapak [Wed, 1 Dec 2021 10:57:07 +0000 (11:57 +0100)]
ui: form/GroupFilter: improve group load callback handling

if 'me' is already destroyed here, return
if records is 'null' (which can happen on a not successful load),
load an empty list instead

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: form/GroupFilter: correctly resolve the reference cycle
Dominik Csapak [Wed, 1 Dec 2021 10:57:06 +0000 (11:57 +0100)]
ui: form/GroupFilter: correctly resolve the reference cycle

'record[widget]' does not contain anything since the widgets are
in the 'widgets' property so delete that

we also have to remove the 'record' entry of the widget so that
the widget does not have a link to the record anymore

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agofix broken format strings
Fabian Grünbichler [Mon, 29 Nov 2021 13:16:18 +0000 (14:16 +0100)]
fix broken format strings

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agodeps: env_logger update to 0.9
Fabian Grünbichler [Mon, 29 Nov 2021 13:10:04 +0000 (14:10 +0100)]
deps: env_logger update to 0.9

and removal from main crate, not needed there anymore.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 years agopbs-api-types: remove proxmox-sys dependency for target wasm
Dietmar Maurer [Wed, 1 Dec 2021 08:49:52 +0000 (09:49 +0100)]
pbs-api-types: remove proxmox-sys dependency for target wasm

Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
2 years agopbs-api-types: remove openssl dependency for target wasm
Dietmar Maurer [Wed, 1 Dec 2021 08:28:47 +0000 (09:28 +0100)]
pbs-api-types: remove openssl dependency for target wasm

Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
2 years agopbs-api-types: remove libc dependency
Dietmar Maurer [Wed, 1 Dec 2021 08:10:25 +0000 (09:10 +0100)]
pbs-api-types: remove libc dependency

Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
2 years agopbs-api-types: removbe usused nix dependency
Dietmar Maurer [Wed, 1 Dec 2021 08:08:25 +0000 (09:08 +0100)]
pbs-api-types: removbe usused nix dependency

Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
2 years agoremove use of deprecated functions from proxmox-time
Dominik Csapak [Tue, 30 Nov 2021 12:12:09 +0000 (13:12 +0100)]
remove use of deprecated functions from proxmox-time

Depend on proxmox-time 1.1.1

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
2 years agoui: SyncJobEdit: add second tab with group filters
Dominik Csapak [Mon, 29 Nov 2021 14:39:43 +0000 (15:39 +0100)]
ui: SyncJobEdit: add second tab with group filters

adds a second tab and adapts the styling to our usual one (border/padding)

adds a change listener to the remote datastore selector to change the
remote + datastore on the group filters

remaining changes are mostly indentation changes

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agoui: tape/BackupJobEdit: add second tab with group filters
Dominik Csapak [Mon, 29 Nov 2021 14:39:42 +0000 (15:39 +0100)]
ui: tape/BackupJobEdit: add second tab with group filters

adds a second tab and adapts the styling to our usual one (border/padding)

adds a change listener to the datastore selector to change it on the
group filters

remaining changes are mostly indentation changes

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agoui: add GroupFilter form field(container)
Dominik Csapak [Mon, 29 Nov 2021 14:39:41 +0000 (15:39 +0100)]
ui: add GroupFilter form field(container)

this contains a grid + button + hidden field which lets the user
add group filters one by one. the first column is the type selector
(type, group, regex) and the second column shows the relevant
input field (groupselector, kvcombobox for type, and textfield for regex)

i had to hack a little to get access to the widgets of the
fieldcontainer, since we cannot simply access the widget of a column
from another column (which we need to show the correct one when changing
the type), also we cannot traverse the widget hirachy in the usual way,
since extjs seems to build it differently for widgetcolumns.

to solve this, i added references of the widgets to the record, and a
reference of the record to the widgets. since this is now a cyclic
reference, i solve that in 'removeFilter' and in 'beforedestroy' of the grid
by removing the references again

also contains a small css style to remove the padding in the rows

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agoui: add GroupSelector
Dominik Csapak [Mon, 29 Nov 2021 14:39:40 +0000 (15:39 +0100)]
ui: add GroupSelector

to select either a group from a datastore

for now it is expected to set the data in the store manually

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agofix a warning in io_return macro
Wolfgang Bumiller [Mon, 29 Nov 2021 10:26:24 +0000 (11:26 +0100)]
fix a warning in io_return macro

newer compilers warn about the semicolon there, so put
braces around it

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoremove unused identity macro
Wolfgang Bumiller [Mon, 29 Nov 2021 10:24:02 +0000 (11:24 +0100)]
remove unused identity macro

this is not required anymore by the sortable macro

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agobump d/control
Wolfgang Bumiller [Mon, 29 Nov 2021 10:20:52 +0000 (11:20 +0100)]
bump d/control

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoupdate proxmox-tfa to 2.0
Wolfgang Bumiller [Mon, 29 Nov 2021 10:19:49 +0000 (11:19 +0100)]
update proxmox-tfa to 2.0

and fix still-very-bad updater usage in config api call...

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agopbs-tape: do not depend on pbs-tools
Dietmar Maurer [Thu, 25 Nov 2021 12:17:58 +0000 (13:17 +0100)]
pbs-tape: do not depend on pbs-tools

Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
2 years agofix typo in comment
Dietmar Maurer [Thu, 25 Nov 2021 12:15:35 +0000 (13:15 +0100)]
fix typo in comment

Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
2 years agouse proxmox-sys 0.2.1 and proxmox-io 1.0.1
Dietmar Maurer [Thu, 25 Nov 2021 11:30:03 +0000 (12:30 +0100)]
use proxmox-sys 0.2.1 and proxmox-io 1.0.1

And remove unused code from pbs-tools.

Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
2 years agomove pbs-tools/src/percent_encoding.rs to pbs-api-types/src/percent_encoding.rs
Dietmar Maurer [Thu, 25 Nov 2021 10:48:52 +0000 (11:48 +0100)]
move pbs-tools/src/percent_encoding.rs to pbs-api-types/src/percent_encoding.rs

Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
2 years agofix StdChannelWriter usage
Dietmar Maurer [Thu, 25 Nov 2021 10:27:20 +0000 (11:27 +0100)]
fix StdChannelWriter usage

Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
2 years agoStdChannelWriter: avoid using anyhow::Error
Dietmar Maurer [Thu, 25 Nov 2021 10:14:56 +0000 (11:14 +0100)]
StdChannelWriter: avoid using anyhow::Error

Use a generic implementation to allow different error types.

2 years agomove pbs-tools/src/str.rs to pbs-client/src/pxar/create.rs
Dietmar Maurer [Thu, 25 Nov 2021 09:43:22 +0000 (10:43 +0100)]
move pbs-tools/src/str.rs to pbs-client/src/pxar/create.rs

Code is only used there.

Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
2 years agoremove trait BufferedRead from pbs-tools/src/io.rs
Dietmar Maurer [Thu, 25 Nov 2021 08:45:47 +0000 (09:45 +0100)]
remove trait BufferedRead from pbs-tools/src/io.rs

We do not need it.

Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
2 years agoremove pbs-tools/src/sys.rs
Dietmar Maurer [Thu, 25 Nov 2021 07:52:17 +0000 (08:52 +0100)]
remove pbs-tools/src/sys.rs

Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
2 years agoremove pbs-tools/src/cli.rs
Dietmar Maurer [Thu, 25 Nov 2021 07:33:10 +0000 (08:33 +0100)]
remove pbs-tools/src/cli.rs

Code is only used once in src/bin/proxmox_backup_debug/inspect.rs, so
move it into that file.

Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
2 years agoopenid_login: improve error message for disabled users.
Dietmar Maurer [Thu, 25 Nov 2021 06:29:33 +0000 (07:29 +0100)]
openid_login: improve error message for disabled users.

2 years agoupdate debian/control
Dietmar Maurer [Thu, 25 Nov 2021 05:49:26 +0000 (06:49 +0100)]
update debian/control

2 years agopbs-datastore: use hex::serde feature
Dietmar Maurer [Wed, 24 Nov 2021 12:02:22 +0000 (13:02 +0100)]
pbs-datastore: use hex::serde feature

Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
2 years agodebian/control: add librust-proxmox-serde
Dietmar Maurer [Wed, 24 Nov 2021 09:58:01 +0000 (10:58 +0100)]
debian/control: add librust-proxmox-serde

2 years agoupdate to proxmox-sys 0.2 crate
Dietmar Maurer [Tue, 23 Nov 2021 16:57:00 +0000 (17:57 +0100)]
update to proxmox-sys 0.2 crate

- imported pbs-api-types/src/common_regex.rs from old proxmox crate
- use hex crate to generate/parse hex digest
- remove all reference to proxmox crate (use proxmox-sys and
  proxmox-serde instead)

Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
2 years agobump version to 2.1.2-1 2.1.1 2.1.2 v2.1.2
Thomas Lamprecht [Tue, 23 Nov 2021 12:56:36 +0000 (13:56 +0100)]
bump version to 2.1.2-1

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agodocs: remotes: note that protected flags will not be synced
Dominik Csapak [Tue, 23 Nov 2021 09:54:24 +0000 (10:54 +0100)]
docs: remotes: note that protected flags will not be synced

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agodocs: backup-client: fix wrong ':ref:'
Dominik Csapak [Tue, 23 Nov 2021 09:54:23 +0000 (10:54 +0100)]
docs: backup-client: fix wrong ':ref:'

there is no 'backup server' reference we can link to here, and it would
not make sense anyway.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agosync job: correctly apply rate limit
Dietmar Maurer [Tue, 23 Nov 2021 08:40:59 +0000 (09:40 +0100)]
sync job: correctly apply rate limit

Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
2 years agobump version to 2.1.1-2
Thomas Lamprecht [Mon, 22 Nov 2021 15:07:42 +0000 (16:07 +0100)]
bump version to 2.1.1-2

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agodocs: add/update tc related screenshots & content, document tc for sync-job
Thomas Lamprecht [Mon, 22 Nov 2021 15:05:16 +0000 (16:05 +0100)]
docs: add/update tc related screenshots & content, document tc for sync-job

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agobump version to 2.1.1-1
Thomas Lamprecht [Mon, 22 Nov 2021 11:27:22 +0000 (12:27 +0100)]
bump version to 2.1.1-1

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: sync job: allow to configure rate limit
Thomas Lamprecht [Mon, 22 Nov 2021 11:20:27 +0000 (12:20 +0100)]
ui: sync job: allow to configure rate limit

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: datastore content: rework rendering protection state
Thomas Lamprecht [Mon, 22 Nov 2021 10:21:23 +0000 (11:21 +0100)]
ui: datastore content: rework rendering protection state

avoid that there's the same icon rendered twice, once clickable and
once as status. Also indicate the protection with a literal text and
by highlighting the single shield with green, if protected.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agod/control and Cargo.toml bumps
Wolfgang Bumiller [Mon, 22 Nov 2021 09:55:38 +0000 (10:55 +0100)]
d/control and Cargo.toml bumps

* pin-utils isn't used anymore
* proxmox-sys version should also be tracked in Cargo.toml

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2 years agoui: traffic-control edit: add spaces between networks for more readabillity
Thomas Lamprecht [Mon, 22 Nov 2021 09:45:29 +0000 (10:45 +0100)]
ui: traffic-control edit: add spaces between networks for more readabillity

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agod/control: bump versioned build-dependency to librust-proxmox-sys
Thomas Lamprecht [Mon, 22 Nov 2021 09:41:56 +0000 (10:41 +0100)]
d/control: bump versioned build-dependency to librust-proxmox-sys

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: traffic-control edit: simple duplicate networks detection
Thomas Lamprecht [Mon, 22 Nov 2021 09:26:13 +0000 (10:26 +0100)]
ui: traffic-control edit: simple duplicate networks detection

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