Commit Graph
59 Commits
Author SHA1 Message Date
Thomas LamprechtandDietmar Maurer 090decbe76 BACKUP_REPO_URL_REGEX: move to api2::types and allow all valid data store names
The repo URL consists of
* optional userid
* optional host
* datastore name

All three have defined regex or format, but none of that is used, so
for example not all valid datastore names are accepted.

Move definition of the regex over to api2::types where we can access
all required regexes easily.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-29 06:29:23 +02:00
Thomas LamprechtandDietmar Maurer c32186595e api2::types: factor out USER_ID regex
allows for better reuse in a next patch

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-29 06:27:38 +02:00
Thomas Lamprecht d80d1f9a2b bump version to 0.2.1-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-28 17:39:41 +02:00
Thomas Lamprecht 6161ac18a4 ui: remotes: fix remote remove buttons base url
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-28 17:29:54 +02:00
Thomas Lamprecht ed216fd773 ui: acl view: only update if component is activated
Avoid triggering non-required background updates during browsing a
datastores content or statistics panels. They're not expensive, but I
do not like such behavior at all (having traveled with trains and
spotty network to often)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-26 18:58:21 +02:00
Thomas Lamprecht 0f13623443 ui: tasks: add sync description+
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-26 18:36:58 +02:00
Thomas Lamprecht dbd959d43f ui: tasks: render reader with full info
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-26 18:36:58 +02:00
Thomas Lamprecht f68ae22cc0 ui: factor out render_datetime_utc
will be reused in the next patch

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-26 18:36:48 +02:00
Thomas Lamprecht 06c3dc8a8e ui: task: improve rendering of backup/prune worker entries
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-26 13:37:57 +02:00
Thomas Lamprecht 26956d73a2 ui: datastore prune: remove debug logging
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-26 12:50:06 +02:00
Thomas Lamprecht 3f98b34705 ui: rework datastore content panel controller
Mostly refactoring, but actually fixes an issue where one seldom run
into a undefined dereference due to the store onLoad callback getting
triggered after some of the componet was destroyed - on quick
switching through the datastores.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-26 12:46:48 +02:00
Thomas Lamprecht 75410d65ef d/control: proxmox-backup-server: depend on proxmox-backup-docs
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-26 09:37:03 +02:00
Thomas Lamprecht 052aaeb5e9 re-bump to 0.2.0-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-25 20:10:38 +02:00
Thomas Lamprecht 5f249127b2 docs: sync version with the package versions
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-25 20:10:38 +02:00
Thomas Lamprecht 8277f4ace5 ui: navigation: sort datastores entries
adding a new one after load will append it still at the end, though.
But datastores are not something which get frequently added after
initial setup, so don't care about that for now..

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-25 19:46:47 +02:00
Thomas Lamprecht 9b1aa424b9 ui: add some task log description mappings
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-25 19:06:52 +02:00
Thomas Lamprecht fef2b3e04c css: fix load mask background image path
We're not using the exact same paths as in PVE/PMG here.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-25 18:41:14 +02:00
Thomas Lamprecht 7cebe5a1f4 ui: system config: reorder big panel to bottom
Gives a better look and feel if the flex'd big panel is at the bottom

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-25 16:41:54 +02:00
Thomas Lamprecht dda246403c ui: index: load widget toolkit CSS
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-25 15:44:39 +02:00
Thomas Lamprecht 16e0dd65f1 d/control: proxmox-widget-toolkit depend on 2.2-2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-25 12:50:55 +02:00
Thomas Lamprecht b69b8af26b s/pbsbanner/proxmox-backup-banner/ + move to /usr/lib
We want to avoid pbs if possible and also avoid placing internal
binaries, not intended for human direct use, in /bin or /sbin paths.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-02-10 14:43:28 +01:00
Thomas Lamprecht e2b5e75a3e pbsbanner: use match and also return error
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-02-07 18:30:55 +01:00
Thomas Lamprecht 274b0c7bb7 add login banner service
Modeled after the one from PVE, but using rust instead of perl for
resolving the nodename and writing to /etc/issue

Behavior differs a bit. We write all non-loopback addresses to this
file, as the gui accepts connections from them all, so limiting it to
the first one is not really sensible.
Further an error to resolve, or only getting loopback addresses won't
write out an empty /etc/issue file, but a note about the error at the
place where the address would be displayed.

Named it "pbsbanner", not "proxmox-backup-banner" as it's rather an
internal tool anyway and mirrors pvebanner, pmgbanner

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-02-06 22:19:22 +01:00
Thomas Lamprecht 1ca037d81c followup: commit all changes
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-01-22 14:14:52 +01:00
Thomas Lamprecht 44b65b4ec7 api/datastore: do not allow updating path for now
It's a bit dangerous as it points to all the saved backups, so they
would be seemingly lost after updating the path.
Follow our logic from other products, e.g. in PVE we do not allow to
update the backing path/location of a storage either for similar
reasons.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-01-22 13:55:37 +01:00
Thomas Lamprecht 7d2396859c cargo: add alternative proxmox crate locations for convenience
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-01-08 15:12:47 +01:00
Thomas Lamprecht f1baa7f4fc ui: ds content: add reload button, use view controller
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-20 17:17:44 +01:00
Thomas Lamprecht d9c38ddc1b ui: datastore content: add size column
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-20 17:04:45 +01:00
Thomas Lamprecht 9d4ebe3dfe ui: datastore content: refactor to more schematic definition
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-20 17:03:28 +01:00
Thomas Lamprecht ed61472b36 ui: datastore content: render timestamp
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-20 15:59:14 +01:00
Thomas Lamprecht bca9093520 api/ui: datastore: allow to set simple comment
for now forbid all control characters[0] in the comment value, the
section config writer cannot cope with newlines in the value, it
writes them out literally, allowing "injection" or breaking the whole
config.

In the webinterface use also a textfield, not a textarea.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-19 17:58:01 +01:00
Thomas Lamprecht e88e3c3a35 ui: datastore: minor UX improvements and whitepsace cleanup
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-19 17:44:20 +01:00
Thomas Lamprecht e9af5b4a29 ui: do *not* close panel when triggering datastore GC
this broke the view, let the panel disappear until one switched to
another and back again, let's just no close main-view panels :)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-19 17:42:33 +01:00
Thomas Lamprecht d649e17eb7 ui: use fa-archive symbol for datastore navigation tree entry
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-19 16:49:40 +01:00
Thomas Lamprecht 4897426cea ui: allow to create datastore
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-18 21:32:00 +01:00
Thomas Lamprecht 2e75b6d8bf ui: trailing whitespace cleanup
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-18 19:21:59 +01:00
Thomas Lamprecht 9710e5d00e ui: select tree item from history url on initial load
or fallback to dashboard

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-18 19:19:37 +01:00
Thomas Lamprecht 84b9eced26 ui: add simple dashboard
just a starting point, code ported initially over from PMG, some
minor things are handled differently though, we have not multiple
nodes (for now) so it's very 'localhost' centric.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-18 17:29:07 +01:00
Thomas Lamprecht 2337df7b3d api2: add very basic 'status/usage' endpoint for nodes
For returning the nodes basic "usage status", for now one gets memory
and CPU utilization.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-18 17:24:32 +01:00
Thomas Lamprecht 6060a57578 debian/: run wrap-and-sort
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-18 17:22:43 +01:00
Thomas Lamprecht 864d17c4e2 ui/css: adapt look-and-feel to PMG one
mainly the navigation tree

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-18 12:17:25 +01:00
Thomas Lamprecht c99af07876 ui: do not log ticket into console
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-17 15:44:34 +01:00
Thomas Lamprecht 323515c24c ui: fixup renewing ticket success calback
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-17 15:42:59 +01:00
Thomas Lamprecht 8af272fd14 ui: show login window if we get a 401 auth exception
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-17 14:45:13 +01:00
Thomas Lamprecht a602faeb98 ui: re-new ticket every 15 minutes
Like we do it in PVE/PMG

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-17 14:44:28 +01:00
Thomas Lamprecht 6cc8abbbd5 proxmox-backup-proxy.service: order after proxmox-backup.service
Ensures we've got the authkey available.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-17 14:11:25 +01:00
Thomas Lamprecht 87b4d953bf ui: main init: set username info
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-17 13:00:17 +01:00
Thomas Lamprecht 3a84100428 ui login: default to root@pam user and focus password field
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-17 11:35:39 +01:00
Thomas LamprechtandDietmar Maurer 9c01e73c2f ui: add "Documentation" button to main view
Similar to PVE and PMG, for quick access when one has the basic
webinterface open anyway. Should move to the "proxmoxHelpButton" once
we have an onlineHelp mapping to the docs.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-17 11:22:34 +01:00
Thomas LamprechtandDietmar Maurer 2d694f8f1f add CSS file for PBS ExtJS6 basic ui
some fitting rules copied over from PVE's ext6-pve.css file.
simply place it in the css subfolder where the proxmox-backup-gui.js
file is hosted and add a "css/" alias for that directory, the
formatter gets use the right content type with that.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-17 11:20:32 +01:00
Thomas Lamprecht ba3eb88d95 generate authkey: public part needs to be readable by backup group
else the API proxy cannot use it and fails to run..

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-17 10:17:03 +01:00
Thomas Lamprecht 9c18e93522 handle_static_file_download: move from and_then to await
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-17 08:56:55 +01:00
Thomas Lamprecht 4e8cff1c9d cipherbench: align/format output nicely
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-17 08:49:34 +01:00
Thomas Lamprecht 4832f53ab5 cipherbench: be conform with rfc7539, use 12 byte nonce
else we get an error from this call, using a 16 byte (128 bit) nonce
is currently only supported by the still in draft
XChaCha20-Poly1305, not the current default specified by RFC 7539[0],
which uses a 12 byte (96 bit) nonce.

Fixes the following error:
> thread 'main' panicked at 'called `Result::unwrap()` on an `Err`
> value: ErrorStack([])', src/libcore/result.rs:1165:5

[0]: https://tools.ietf.org/html/rfc7539

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-17 08:49:07 +01:00
Thomas Lamprecht b5907d8ad8 ui: services-administration: s/pmg/proxmox-backup/
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-16 16:48:50 +01:00
Thomas Lamprecht 05c031612e d/rules: override dwz helper to avoid build-failure
AFAICT, this is the issue from Debian Bug #933541, I implement the
workaround suggested by a maintainer[0].

[0]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=933541#10

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-16 16:38:03 +01:00
Thomas Lamprecht 1182a3c40d Revert "d/control: add llvm-dev to build-dependencies"
llvm-dev was wrong, llvm-config is shipped by llvm package

This reverts commit 2db252aeae.
2019-12-16 15:33:57 +01:00
Thomas Lamprecht ba0f71f5eb d/control: add rsync to build-dependencies
not directly required for

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-16 11:32:44 +01:00
Thomas Lamprecht f1e8935b45 d/control: add missing build-dependencies
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-16 11:24:57 +01:00