]> git.proxmox.com Git - pve-manager.git/log
pve-manager.git
2 days agoupdate shipped appliance info index master
Thomas Lamprecht [Tue, 23 Apr 2024 19:45:53 +0000 (21:45 +0200)]
update shipped appliance info index

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 days agobump version to 8.2.2
Thomas Lamprecht [Tue, 23 Apr 2024 19:33:35 +0000 (21:33 +0200)]
bump version to 8.2.2

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 days agoui: importer: try to better convey what live-import does
Thomas Lamprecht [Tue, 23 Apr 2024 17:51:26 +0000 (19:51 +0200)]
ui: importer: try to better convey what live-import does

It's hard to cram a easy to understandable meaning in the space we
have, to get a bit more space move the warning hint to a separate line
and use the box-label to show an always visible hint about the VM to
be stopped previously.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 days agofix #5251: login: set autocomplete on password and user
Maximiliano Sandoval [Mon, 19 Feb 2024 10:37:03 +0000 (11:37 +0100)]
fix #5251: login: set autocomplete on password and user

By default they have 'autocomplete=off'. From [1]:

 > In most modern browsers, setting autocomplete to "off" will not
 > prevent a password manager from asking the user if they would like to
 > save username and password information, or from automatically filling
 > in those values in a site's login form. See the autocomplete
 > attribute and login fields [2].

[1] https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete
[2] https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion#the_autocomplete_attribute_and_login_fields

Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
2 days agoui: user edit: protect user's TFA settings again
Fiona Ebner [Fri, 9 Feb 2024 13:08:19 +0000 (14:08 +0100)]
ui: user edit: protect user's TFA settings again

Same rationale as in 5b25580d ("Protect the user's tfa key setting."):
it should not be possible to change the value when it's not an actual
secret but a reference to what TFA method is used or, in case of 'x',
whether TFA is used.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
2 days agovzdump: also warn when hook script fails for backup-abort or log-end phase
Fiona Ebner [Mon, 22 Jan 2024 09:55:21 +0000 (10:55 +0100)]
vzdump: also warn when hook script fails for backup-abort or log-end phase

to make it more visible, also in task logs.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
2 days agoui: backup job: fixup missing trailing comma
Thomas Lamprecht [Tue, 23 Apr 2024 14:40:17 +0000 (16:40 +0200)]
ui: backup job: fixup missing trailing comma

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 days agoui: mobile: enable subscription popup
Dominik Csapak [Thu, 14 Dec 2023 09:55:17 +0000 (10:55 +0100)]
ui: mobile: enable subscription popup

not sure if this was lost at some point or never implemented, but we
want to be consistent with the remaining web ui and apps, so show
the subscription popup here too.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 days agoui: mobile: fix totp login
Dominik Csapak [Thu, 14 Dec 2023 09:55:16 +0000 (10:55 +0100)]
ui: mobile: fix totp login

Log-in with TOTP enabled account on mobile was broken due to these two
commits:
- pve-manager: 509d7a20 ("mobile ui: implement dummy message box and
  scrip loader")
- pve-access-control: cb64967 ("api: drop old verify_tfa api call")

The pve-manager one overwrote the Ext.MessageBox and Ext.Msg classes
and thus removed the Ext.MessageBox.OKCANCEL constant that represented
the buttons of popup messages (without those no buttons on message
boxes where shown).

This override did not work as intended, as we still  showed the
message box by accident, because at that point the Ext.MessageBox was
already initialized (so it was overwritten), but Ext.Msg was not (this
happens later).

And the pve-access-control removed the old tfa verify api (which is
now done via the /access/ticket api)

So to fix that, we have to adapt to the api changes and restore the
stock Ext.MessageBox and Ext.Msg classes by removing the overrides
(i couldn't find where we would need those)

We still cannot handle u2f/WebAuthn or recovery methods though.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 days agoui: backup job editor: fix disable behavior for fleecing storage
Dominik Csapak [Tue, 23 Apr 2024 12:15:00 +0000 (14:15 +0200)]
ui: backup job editor: fix disable behavior for fleecing storage

commit 569b0388 (ui: fix reset behavior of backup job editor) disabled
the fleecing storage field by default (as that is the default state)
to fix the reset behavior. This broke editing the job when fleecing
was enabled and the user did not navigate to the advanced tab yet.

It seems that the 'bind' here only gets triggered once the panel is
rendered, but we actually need it before that.

To work around the issue for now, manually enable/disable the field
when toggling the fleecing checkbox. (Though this warrants a bit of
deeper investigation into this bind behavior)

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 days agoui: backup jobs: fix fleecing parameters for 'run now' button
Dominik Csapak [Tue, 23 Apr 2024 12:14:59 +0000 (14:14 +0200)]
ui: backup jobs: fix fleecing parameters for 'run now' button

we have to 'printPropertyString' the fleecing parameters, otherwise
we'll get api parameter errors for that

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 days agoui: fix reset behavior of backup job editor
Dominik Csapak [Tue, 23 Apr 2024 07:30:24 +0000 (09:30 +0200)]
ui: fix reset behavior of backup job editor

when we `bind` we also have to set the initial value correctly,
otherwise the form dirty tracking is off (the initial bind set does not
reset the `originalValue`)

also the bandwidth selector auto transformed the value `null` to `0`
when there was no initial transformation. Since this is not a valid
value anyway, skip that.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
3 days agobump version to 8.2.1
Thomas Lamprecht [Mon, 22 Apr 2024 17:36:25 +0000 (19:36 +0200)]
bump version to 8.2.1

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
3 days agoui: qemu: clarify that the intel vIOMMU is compatible with AMD
Thomas Lamprecht [Mon, 22 Apr 2024 17:46:39 +0000 (19:46 +0200)]
ui: qemu: clarify that the intel vIOMMU is compatible with AMD

This is definitively a source of confusion otherwise.

Reported-by: Fiona Ebner <f.ebner@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
3 days agoui: backup job: allow to set up fleecing for a job in advanced config
Thomas Lamprecht [Mon, 22 Apr 2024 10:44:02 +0000 (12:44 +0200)]
ui: backup job: allow to set up fleecing for a job in advanced config

Use the new advanced options tab to expose the fleecing enable and
storage selections per backup job.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
3 days agoui: backup job: rework assembling deleted keys + style fixes
Thomas Lamprecht [Mon, 22 Apr 2024 10:42:05 +0000 (12:42 +0200)]
ui: backup job: rework assembling deleted keys + style fixes

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
3 days agoui: backup job: use boolean expression directly for boolean result
Thomas Lamprecht [Mon, 22 Apr 2024 10:43:39 +0000 (12:43 +0200)]
ui: backup job: use boolean expression directly for boolean result

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
3 days agoui: qemu machine: update link to better docs section
Dominik Csapak [Mon, 22 Apr 2024 13:20:44 +0000 (15:20 +0200)]
ui: qemu machine: update link to better docs section

qm_machine_type is more relevant to this panel thatn qm_system_settings

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
3 days agoui: machine: add link to documentation of the system settings
Markus Frank [Mon, 15 Apr 2024 08:50:02 +0000 (10:50 +0200)]
ui: machine: add link to documentation of the system settings

3 days agoui: machine: add viommu ComboBox
Markus Frank [Mon, 15 Apr 2024 08:50:01 +0000 (10:50 +0200)]
ui: machine: add viommu ComboBox

Added a proxmoxKVComboBox for selecting a vIOMMU implementation for a VM.
If i440fx is selected, another ComboBox will be enabled/visible that does not
have the Intel option, as Intel-vIOMMU is not compatible with i440fx.

Uses the new machine property-string from the qemu-server's "config: define
machine schema as property-string" commit and the viommu option added in the
qemu-server's "fix #3784: config: Parameter for guest vIOMMU + test-cases"
commit.

Signed-off-by: Markus Frank <m.frank@proxmox.com>
3 days agoui: qemu: add clipboard ComboBox as a advanced option in DisplayEdit
Markus Frank [Mon, 22 Apr 2024 10:27:56 +0000 (12:27 +0200)]
ui: qemu: add clipboard ComboBox as a advanced option in DisplayEdit

For SPICE and VNC, a different message is displayed.

The backend code for the clipboard option can be found in the
'config: enable vnc clipboard parameter in vga_fmt'-commit in qemu-server.

Signed-off-by: Markus Frank <m.frank@proxmox.com>
3 days agoui: qemu: change logic to use ViewModel instead of listener function
Markus Frank [Mon, 22 Apr 2024 10:27:55 +0000 (12:27 +0200)]
ui: qemu: change logic to use ViewModel instead of listener function

Signed-off-by: Markus Frank <m.frank@proxmox.com>
Reviewed-by: Dominik Csapak <d.csapak@proxmox.com>
Tested-by: Dominik Csapak <d.csapak@proxmox.com>
3 days agoacme: ui: handle missing meta field in directory response
Folke Gleumes [Mon, 22 Apr 2024 09:01:02 +0000 (11:01 +0200)]
acme: ui: handle missing meta field in directory response

When none of the meta fields is set by the directory, the whole
dictionary is missing from the response, leading to an exception
when testing for fields inside it.

Reported-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Folke Gleumes <f.gleumes@proxmox.com>
Tested-by: Stoiko Ivanov <s.ivanov@proxmox.com>
3 days agoui: backup job: rework empty-text for advanced fields again
Thomas Lamprecht [Mon, 22 Apr 2024 09:24:52 +0000 (11:24 +0200)]
ui: backup job: rework empty-text for advanced fields again

This partially reverts commit a32a5c4a6 ("ui: backup job: rework hint
about fallback config and make it less flashy"), i.e., the part about
the fallback values, as those was barely visible now.

Add the schema default to the end of the description and expand the
hint at the bottom to also mention that this is used as second level
fallback, if the vzdump.conf does not has the option set.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
3 days agoui: backup job: correctly align descriptions with fields in advanced options
Dominik Csapak [Mon, 22 Apr 2024 08:16:46 +0000 (10:16 +0200)]
ui: backup job: correctly align descriptions with fields in advanced options

Merges the column1/2/B into just single items so that the vertical
alignment is still correct even if a description wraps over multiple
lines.

Use the new pveTwoColumnContainer to achieve this without extra
boilerplate code and use a 1/3 of the width for the field and the 2/3
rest for the description.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
 [ TL: adapt to changes in prev. commit, reword message, fix eslint ]
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
3 days agoui: add new container widget to layout two child widgets into two columns
Dominik Csapak [Mon, 22 Apr 2024 08:16:45 +0000 (10:16 +0200)]
ui: add new container widget to layout two child widgets into two columns

The new pveTwoColumnContainer can show a widget on the start (left)
column and another one on the end (right) one, with a (default) flex
ratio of 1:2

This is helpful when wanting fields to align vertically in an input
panel that have different height, e.g., because of text wrapping.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
 [ TL: s/Widget/Column/;s/ratio/flex/ and expose starFlex ]
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
3 days agoui: backup job: refactor preparation of form values into own function
Thomas Lamprecht [Sun, 21 Apr 2024 14:15:39 +0000 (16:15 +0200)]
ui: backup job: refactor preparation of form values into own function

The indentation level was rather deep here so move the preparation of
the API response for getting set to the UI form into a separate
function.

No semantic change intended.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
3 days agod/control: add proxmox-firewall as recommended dependency
Thomas Lamprecht [Sun, 21 Apr 2024 12:18:24 +0000 (14:18 +0200)]
d/control: add proxmox-firewall as recommended dependency

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
3 days agod/control: wrap-and-sort -tkn
Thomas Lamprecht [Sun, 21 Apr 2024 12:15:04 +0000 (14:15 +0200)]
d/control: wrap-and-sort -tkn

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 days agod/copyright: update years
Thomas Lamprecht [Sun, 21 Apr 2024 11:06:52 +0000 (13:06 +0200)]
d/copyright: update years

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 days agobump version to 8.2.0
Thomas Lamprecht [Sun, 21 Apr 2024 11:04:08 +0000 (13:04 +0200)]
bump version to 8.2.0

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 days agod/control: bump versioned dependency for widget-toolkit and common
Thomas Lamprecht [Sun, 21 Apr 2024 11:01:53 +0000 (13:01 +0200)]
d/control: bump versioned dependency for widget-toolkit and common

To ensure that the lifting of the bridge name == vmbr\d+ restriction
works correctly and that the new notes view double-click editing
setting can work.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 days agosdn: vlan: fix indentation in vlan edit dialogue
Stefan Hanreich [Fri, 12 Apr 2024 08:07:35 +0000 (10:07 +0200)]
sdn: vlan: fix indentation in vlan edit dialogue

Reviewed-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Signed-off-by: Stefan Hanreich <s.hanreich@proxmox.com>
4 days agosdn: qinq: vlan: properly validate bridge name
Stefan Hanreich [Fri, 12 Apr 2024 08:07:34 +0000 (10:07 +0200)]
sdn: qinq: vlan: properly validate bridge name

Reviewed-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Signed-off-by: Stefan Hanreich <s.hanreich@proxmox.com>
4 days agoui: dc: backup: improve UX for the different 'notification-mode's
Lukas Wagner [Mon, 15 Apr 2024 09:51:01 +0000 (11:51 +0200)]
ui: dc: backup: improve UX for the different 'notification-mode's

  - Switch order of 'mailto' and 'mailnotification' field
  - When mode is 'auto', disable 'mailtnotification' field

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
Tested-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
 [ TL: drop the hint, not really explaining much as is so mostly
   visible noise ]
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
5 days agoui: guest stop: show overrule checkbox also if no task is active
Thomas Lamprecht [Sat, 20 Apr 2024 18:15:03 +0000 (20:15 +0200)]
ui: guest stop: show overrule checkbox also if no task is active

The UI state about running tasks can be out of sync, especially for
situations where one quickly follows up with a stop, e.g. after
triggering a shutdown by mistake.

So, show the checkbox always for users that got Sys.Modify on (some)
node, but pre-check it still only if there where task detected on
component creation (we could watch the state though and show a hint,
but that's a bit over the top IMO).

Show it also when HA is enabled but explicitly disable it there,
hopefully this increases the chance that the users can understand that
this is done by design, and isn't a bug – ideally we would also show
an extra hint.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
5 days agofix #4474: ui: guest stop: offer to overrule active shutdown tasks
Friedrich Weber [Fri, 12 Apr 2024 14:15:53 +0000 (16:15 +0200)]
fix #4474: ui: guest stop: offer to overrule active shutdown tasks

Implement a new "guest stop" confirmation message box which first
checks if there is an active shutdown task for the same guest that is
visible to the logged-in user. If there is at least one, the dialog
displays an additional default-on checkbox for overruling active
shutdown tasks. If the user confirms and the checkbox is checked, the
UI sends a guest stop API request with the `overrule-shutdown`
parameter set to 1. If there are no active shutdown tasks, or the
checkbox is unchecked, the UI sends a guest stop API request without
`overrule-shutdown`.

To avoid an additional API request for querying active shutdown tasks,
check the UI's current view of cluster tasks instead, which is fetched
from the `pve-cluster-tasks` store.

As the UI might hold an outdated task list, there are some
opportunities for races, e.g., the UI may miss a new shutdown task or
consider a shutdown task active even though it has already terminated.
These races either result in a surviving shutdown task that the user
still needs to abort manually, or a superfluous `override-shutdown=1`
parameter that does not actually abort any tasks. Since "stop
overrules shutdown" is merely a convenience feature, both outcomes
seem bearable.

The confirmation message box is now always marked as dangerous (with a
warning sign icon), whereas previously it was only marked dangerous if
the stop issued from the guest panel, but not when issued from the
resource tree command menu.

Signed-off-by: Friedrich Weber <f.weber@proxmox.com>
Reviewed-by: Dominik Csapak <d.csapak@proxmox.com>
 [ TL: squash in some slightly opinionated code/style clean-ups ]
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
5 days agoui: browser local settings: add new edit-notes-on-double-click option
Thomas Lamprecht [Sat, 20 Apr 2024 15:27:44 +0000 (17:27 +0200)]
ui: browser local settings: add new edit-notes-on-double-click option

The NotesView in the widget-toolkit learned to respect this opt-out
setting recently.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
5 days agoui: virtual machines: add Windows Server 2025 to OS types
Thomas Lamprecht [Sat, 20 Apr 2024 14:17:33 +0000 (16:17 +0200)]
ui: virtual machines: add Windows Server 2025 to OS types

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
6 days agofirewall: expose configuration option for new nftables firewall
Stefan Hanreich [Fri, 19 Apr 2024 09:42:37 +0000 (11:42 +0200)]
firewall: expose configuration option for new nftables firewall

There's a new firewall implementation available as `proxmox-firewall`
package, in contrast to the existing `pve-firewall` package it is
using nftables directly, not the legacy iptables, and can thus
leverage a modern stack with atomic updates, avoiding the need for
different tools (e.g., ebtables), and not requiring intermediate
firewall bridges to handle VM flow correctly. Additionally it's
written in rust, making it more efficient and safer to change.

The new implementation is using the same configuration file as source
and should be mostly the same in semantic behavior, it basically is a
drop-in replacement besides one known issue:

There is currently one major issue that we still need to solve:
REJECTing packets from the guest firewalls is currently not possible
for incoming traffic (it will instead be dropped).

This is due to the fact that we are using the postrouting hook of
nftables in a table with type bridge for incoming traffic. In the
bridge table in the postrouting hook we cannot tell whether the packet
has also been sent to other ports in the bridge (e.g. when a MAC has
not yet been learned and the packet then gets flooded to all bridge
ports). If we would then REJECT a packet in the postrouting hook this
can lead to a bug where the firewall rules for one guest REJECT a
packet and send a response (RST for TCP, ICMP port/host-unreachable
otherwise).

While this is being addressed, and the whole stack is better tested in
general, the new FW will be only enabled if the admin enables a
boolean configuration which this patch exposes on the UI.

Signed-off-by: Stefan Hanreich <s.hanreich@proxmox.com>
6 days agopveversion: fix whitespaces
Alexander Zeidler [Fri, 19 Apr 2024 16:33:45 +0000 (18:33 +0200)]
pveversion: fix whitespaces

Signed-off-by: Alexander Zeidler <a.zeidler@proxmox.com>
6 days agobump version to 8.1.11
Fiona Ebner [Fri, 19 Apr 2024 14:46:55 +0000 (16:46 +0200)]
bump version to 8.1.11

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
6 days agod/control bump versioned dependency for libpve-(guest-)common-perl and qemu-server
Fiona Ebner [Fri, 19 Apr 2024 14:23:04 +0000 (16:23 +0200)]
d/control bump versioned dependency for libpve-(guest-)common-perl and qemu-server

to make the backup fleecing feature available. The bump for
qemu-server is also required for moving unused disks of VMs.

The bump for libpve-common-perl is required because of pve-common
commit c302a28 ("json schema: add format description for
pve-storage-id standard option"), which is required for API
verification.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
6 days agoapi: backup/vzdump: add permission check for fleecing storage
Fiona Ebner [Wed, 13 Mar 2024 13:26:01 +0000 (14:26 +0100)]
api: backup/vzdump: add permission check for fleecing storage

Similar to how Datastore.AllocateSpace is required for the backup
storage, it should also be required for the fleecing storage.

Removing a fleecing storage from a job does not require more
permissions than for modifying the job.

Suggested-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
6 days agovzdump: handle new 'fleecing' property string
Fiona Ebner [Mon, 22 Jan 2024 14:55:06 +0000 (15:55 +0100)]
vzdump: handle new 'fleecing' property string

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
6 days agovzdump: have property string helpers always return the result
Fiona Ebner [Thu, 11 Apr 2024 08:13:24 +0000 (10:13 +0200)]
vzdump: have property string helpers always return the result

Previously, the result would only be returned implicitly and if not
already parsed. While callers do not strictly need the return value,
future callers might mistakenly rely on it and even work by chance in
some scenarios, because of the implicit return. Make the code more
future proof by explicitly returning the result in all cases.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
6 days agoapi: notifications: add 'smtp' to target index
Lukas Wagner [Mon, 15 Apr 2024 08:25:59 +0000 (10:25 +0200)]
api: notifications: add 'smtp' to target index

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
6 days agopvesh: use SSH command helper
Fabian Grünbichler [Thu, 11 Jan 2024 10:51:22 +0000 (11:51 +0100)]
pvesh: use SSH command helper

to benefit from future improvements like known host key pinning.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
6 days agovnc: use SSH command helper
Fabian Grünbichler [Thu, 11 Jan 2024 10:51:21 +0000 (11:51 +0100)]
vnc: use SSH command helper

to benefit from future improvements there, like pinning the known host key.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
7 days agoreport: list held back packages
Alexander Zeidler [Thu, 18 Apr 2024 09:16:47 +0000 (11:16 +0200)]
report: list held back packages

Signed-off-by: Alexander Zeidler <a.zeidler@proxmox.com>
7 days agoreport: add `apt-cache policy` to list recognized APT sources
Alexander Zeidler [Thu, 18 Apr 2024 09:16:46 +0000 (11:16 +0200)]
report: add `apt-cache policy` to list recognized APT sources

with their details as well as pinned packages. Omit the "origin"
lines, as their value is already visible in the URLs.

 # apt-cache policy ...
 Package files:
  100 /var/lib/dpkg/status
      release a=now
  500 https://enterprise.proxmox.com/debian/pve bookworm/pve-enterprise amd64 Packages
      release o=Proxmox,a=stable,n=bookworm,l=Proxmox VE Enterprise Debian Repository,c=pve-enterprise,b=amd64
 ...
 Pinned packages:
      intel-microcode -> 3.20231114.1~deb12u1 with priority 1234

Signed-off-by: Alexander Zeidler <a.zeidler@proxmox.com>
7 days agoreport: fix regex of config filenames
Alexander Zeidler [Thu, 18 Apr 2024 07:44:04 +0000 (09:44 +0200)]
report: fix regex of config filenames

to only match those that are correct/accepted by their software

Signed-off-by: Alexander Zeidler <a.zeidler@proxmox.com>
7 days agoreport: create "jobs" section, add `jobs.cfg`
Alexander Zeidler [Thu, 18 Apr 2024 09:16:45 +0000 (11:16 +0200)]
report: create "jobs" section, add `jobs.cfg`

to recognize temporal correlations with network/load/backup/etc issues

Suggested-by: Friedrich Weber <f.weber@proxmox.com>
Signed-off-by: Alexander Zeidler <a.zeidler@proxmox.com>
7 days agoreport: add kernel command line from current boot
Alexander Zeidler [Thu, 18 Apr 2024 09:16:44 +0000 (11:16 +0200)]
report: add kernel command line from current boot

to get a first clue for debugging passthrough and similar issues, when
no dmesg output has been provided yet.

Signed-off-by: Alexander Zeidler <a.zeidler@proxmox.com>
7 days agoui: acl: group selector: allow search
Fiona Ebner [Fri, 12 Apr 2024 09:16:13 +0000 (11:16 +0200)]
ui: acl: group selector: allow search

Makes it consistent with the user selector and token selector.

Requested in the community forum:
https://forum.proxmox.com/threads/144978/

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
7 days agoapi: apt versions: track optional pve-esxi-import-tools package
Thomas Lamprecht [Thu, 18 Apr 2024 20:15:17 +0000 (22:15 +0200)]
api: apt versions: track optional pve-esxi-import-tools package

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
7 days agoapi: apt versions: track optional amd64/intel-microcode packages
Alexander Zeidler [Thu, 18 Apr 2024 07:44:05 +0000 (09:44 +0200)]
api: apt versions: track optional amd64/intel-microcode packages

Signed-off-by: Alexander Zeidler <a.zeidler@proxmox.com>
7 days agod/control: bump versioned b-d for guest-common
Thomas Lamprecht [Thu, 18 Apr 2024 08:22:18 +0000 (10:22 +0200)]
d/control: bump versioned b-d for guest-common

so that our replication regression tests work correctly.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
7 days agoRevert "tests: update expected replication log output"
Fiona Ebner [Thu, 18 Apr 2024 07:06:48 +0000 (09:06 +0200)]
Revert "tests: update expected replication log output"

This reverts commit 3a259c22e64ff22049856256a1dad643439c79ef.

There was an oversight with recent replication fixes that led to
attempting to remove snapshots that do not exist (in more scenarios).
While not an issue with real consequences, it's confusing to users.
This has since been fixed by pve-guest-common commit "replication:
snapshot cleanup: only attempt to remove snapshots that exist".

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
8 days agoui: acme: add External Account Binding (EAB) related fields
Folke Gleumes [Wed, 17 Apr 2024 15:55:05 +0000 (17:55 +0200)]
ui: acme: add External Account Binding (EAB) related fields

Adds fields for eab credentials. By default eab is optional, but if the
directory should report that eab is required, the eab credential fields
are marked as mandatory and prevent the form from being submittable
until credentials are provided.

Signed-off-by: Folke Gleumes <f.gleumes@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
8 days agofix #5093: ui: acme: expose custom directory option
Folke Gleumes [Wed, 17 Apr 2024 15:55:04 +0000 (17:55 +0200)]
fix #5093: ui: acme: expose custom directory option

This patch allows the user to set a custom ACME directory by providing
a 'Custom' option in the directory dropdown. This in turn reveals an
input for the url. When using a custom directory the directory has to
be manually queried via button press to prevent from spamming the
directory on every input.

Signed-off-by: Folke Gleumes <f.gleumes@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
8 days agotests: update expected replication log output
Thomas Lamprecht [Wed, 17 Apr 2024 19:13:25 +0000 (21:13 +0200)]
tests: update expected replication log output

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
8 days agoui: fix typo to make pve-cluster-tasks store globally available
Friedrich Weber [Fri, 12 Apr 2024 14:15:52 +0000 (16:15 +0200)]
ui: fix typo to make pve-cluster-tasks store globally available

This way, it can be used to retrieve the current list of tasks.

Signed-off-by: Friedrich Weber <f.weber@proxmox.com>
8 days agod/postinst: make deb-systemd-invoke non-fatal
Fabian Grünbichler [Thu, 11 Apr 2024 10:10:48 +0000 (12:10 +0200)]
d/postinst: make deb-systemd-invoke non-fatal

else this can break an upgrade for unrelated reasons (regular debhelper also
constructs the restart invocations like this, it even redirects output to
/dev/null)

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
8 days agoui: backup job: rework advanced empty text and descriptions
Thomas Lamprecht [Wed, 17 Apr 2024 14:03:03 +0000 (16:03 +0200)]
ui: backup job: rework advanced empty text and descriptions

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
8 days agoui: backup job: make add/edit window wider
Thomas Lamprecht [Wed, 17 Apr 2024 14:01:31 +0000 (16:01 +0200)]
ui: backup job: make add/edit window wider

it looks a bit tall and cramped nowadays, so go for 720, like the
wizard class uses by default.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
8 days agoui: backup job: avoid calling max-workers VM workers
Thomas Lamprecht [Wed, 17 Apr 2024 12:22:41 +0000 (14:22 +0200)]
ui: backup job: avoid calling max-workers VM workers

that could make some users (not reading the explanation on the right
closely) belief that this controls the amount of parallel VMs to be
backed up or the like.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
8 days agoui: backup job: rework hint about fallback config and make it less flashy
Thomas Lamprecht [Wed, 17 Apr 2024 11:49:43 +0000 (13:49 +0200)]
ui: backup job: rework hint about fallback config and make it less flashy

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
8 days agoui: backup job: move repeat-missed option to advanced tab
Fiona Ebner [Tue, 16 Apr 2024 12:09:55 +0000 (14:09 +0200)]
ui: backup job: move repeat-missed option to advanced tab

Suggested-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
8 days agoui: backup job: disable zstd thread count field when zstd isn't used
Fiona Ebner [Tue, 16 Apr 2024 12:09:54 +0000 (14:09 +0200)]
ui: backup job: disable zstd thread count field when zstd isn't used

Also need to check for enable/disable of the compression selector,
because with PBS the value zstd is set, but the thread count setting
doesn't apply.

Suggested-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
8 days agoclose #4513: ui: backup job: add tab for advanced options
Fiona Ebner [Tue, 16 Apr 2024 12:09:53 +0000 (14:09 +0200)]
close #4513: ui: backup job: add tab for advanced options

pigz is not exposed, because it only works after manually installing
the pigz package.

ionice is not exposed, because it only works in combination with the
BFQ scheduler and even then not in all cases (only affects the
compressor when doing snapshot/suspend mode backup of a VM).

The pbs-entries-max performance option is not exposed. It is rather
niche and hard to understand. It serves as an escape hatch for
rare/extreme cases.

These can still be added with appropriate notes if there is enough
user demand.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
8 days agovzdump: use per-property fallback for performance settings
Fiona Ebner [Tue, 16 Apr 2024 12:09:52 +0000 (14:09 +0200)]
vzdump: use per-property fallback for performance settings

Currently, fallback for the 'performance' option is done as a whole,
taking away flexibility from the user. It also means that when only
one of the two sub-properties is specified, the other one will default
to the backend (i.e. QEMU or proxmox-backup-client) default rather
than the schema default. For the latter point in particular, it can be
argued to be incorrect. These limitations will only get worse in the
future with more sub-properties.

Switch to a per-property fallback mechanism to improve the situation,
having each go through the usual preference order (CLI/job > node-wide
default > schema default).

Technically, this is a breaking change, but pbs-entries-max is rather
new and potential for breakage seems rather low. Requirements for
breakage:
* job (or CLI) that defines only one of the performance options
* job also covers a guest where the other performance option applies
* the other performance option is defined in the node-wide configuration
* the node-wide setting is worse for the job than the implicit backend
  default (because this change will have the node-wide default win over
  the implicit backend default).

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
8 days agovzdump: actually honor schema defaults for performance
Fiona Ebner [Tue, 16 Apr 2024 12:09:51 +0000 (14:09 +0200)]
vzdump: actually honor schema defaults for performance

The 'performance' option itself defines no 'default' in the schema, so
what happened is that the defaults used by the backends (i.e. QEMU and
proxmox-backup-client) would be used. Luckily, they correspond to the
default values defined in the schema, i.e. in the 'backup-performance'
format. Make the code future-proof and use the actual defaults defined
in the schema instead of relying on that correspondence.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
8 days agoui: backup job: code clean-up the add/edit window creation
Thomas Lamprecht [Wed, 17 Apr 2024 14:02:35 +0000 (16:02 +0200)]
ui: backup job: code clean-up the add/edit window creation

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
8 days agoui: lxc: dev passthrough: rework labels
Thomas Lamprecht [Wed, 17 Apr 2024 09:53:20 +0000 (11:53 +0200)]
ui: lxc: dev passthrough: rework labels

try to make it more clear that the file UID/GID/mode are for the
device file node inside the CT

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
8 days agoui: lxc: dev passthrough: drop bogus type config from textfield
Thomas Lamprecht [Wed, 17 Apr 2024 09:52:26 +0000 (11:52 +0200)]
ui: lxc: dev passthrough: drop bogus type config from textfield

this does nothing here, would have to be a vtype to make sense

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
8 days agoui: lxc: dev passthrough: allow translating validation errors
Thomas Lamprecht [Wed, 17 Apr 2024 09:52:07 +0000 (11:52 +0200)]
ui: lxc: dev passthrough: allow translating validation errors

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
8 days agoui: lxc: keep passthrough ID internal for now
Thomas Lamprecht [Wed, 17 Apr 2024 09:33:55 +0000 (11:33 +0200)]
ui: lxc: keep passthrough ID internal for now

this is not like mount points, where the order can make a difference,
but rather like the PCI passthrough for VMs, for which we do not
expose editing the ID either.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
8 days agoui: lxc: do not righ-align labels
Thomas Lamprecht [Wed, 17 Apr 2024 09:18:56 +0000 (11:18 +0200)]
ui: lxc: do not righ-align labels

This is totally out of line with the rest of the UI and looks quite
odd...

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
8 days agoui: lxc: fix maximum ID boundary for device passthrough
Thomas Lamprecht [Wed, 17 Apr 2024 09:13:55 +0000 (11:13 +0200)]
ui: lxc: fix maximum ID boundary for device passthrough

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
8 days agoui: lxc: pass full property name to for-each dev & mountpoint helpers
Thomas Lamprecht [Wed, 17 Apr 2024 08:59:33 +0000 (10:59 +0200)]
ui: lxc: pass full property name to for-each dev & mountpoint helpers

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
8 days agoui: lxc: add edit window for device passthrough
Filip Schauer [Wed, 17 Apr 2024 08:44:19 +0000 (10:44 +0200)]
ui: lxc: add edit window for device passthrough

Signed-off-by: Filip Schauer <f.schauer@proxmox.com>
8 days agoutils: clarify naming of LXC mount point utils
Filip Schauer [Wed, 17 Apr 2024 08:44:18 +0000 (10:44 +0200)]
utils: clarify naming of LXC mount point utils

Clarify the naming of mount point utils to clearly indicate their
relation to LXC containers.

Signed-off-by: Filip Schauer <f.schauer@proxmox.com>
10 days agoui: lxc: add firewall log view filtering
Christian Ebner [Tue, 5 Dec 2023 14:36:26 +0000 (15:36 +0100)]
ui: lxc: add firewall log view filtering

Allow to filter firewall logs analogous to node and VM firewall logs.

Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
13 days agofirewall: properly detect changes when ip / cidr is used in rule
Stefan Hanreich [Tue, 16 Jan 2024 14:30:22 +0000 (15:30 +0100)]
firewall: properly detect changes when ip / cidr is used in rule

With the current implementation using queryDelay, this means that the
change event for the input never completes. This in turn leads to
the input panel never changing its dirty status. By using the
beforequery event we can simply cancel the query without resorting to
the queryDelay hack.

Reported-By: Mira Limbeck <m.limbeck@proxmox.com>
Signed-off-by: Stefan Hanreich <s.hanreich@proxmox.com>
Tested-by: Mira Limbeck <m.limbeck@proxmox.com>
Reviewed-by: Mira Limbeck <m.limbeck@proxmox.com>
13 days agofix #4963: firewall: fix editing firewall rules using ips / cidrs
Stefan Hanreich [Tue, 16 Jan 2024 14:30:21 +0000 (15:30 +0100)]
fix #4963: firewall: fix editing firewall rules using ips / cidrs

fall back to using v.ref as value when we do not have an alias or ipset
since scope and name are not set for ips / cidrs

Signed-off-by: Stefan Hanreich <s.hanreich@proxmox.com>
Tested-by: Filip Schauer <f.schauer@proxmox.com>
Reviewed-by: Mira Limbeck <m.limbeck@proxmox.com>
Tested-by: Mira Limbeck <m.limbeck@proxmox.com>
13 days agoAllow moving unused disks to another storage
Filip Schauer [Mon, 19 Feb 2024 11:11:40 +0000 (12:11 +0100)]
Allow moving unused disks to another storage

Signed-off-by: Filip Schauer <f.schauer@proxmox.com>
2 weeks agopostinst: move dir creation to helper
Fabian Grünbichler [Thu, 11 Apr 2024 12:45:44 +0000 (14:45 +0200)]
postinst: move dir creation to helper

and guard it to only run on ceph-using systems (the regular 'inited' check
doesn't work as a guard for this, because it checks for new-style inits
including the dir existing).

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 weeks agopostinst: remove blank lines
Fabian Grünbichler [Thu, 11 Apr 2024 09:56:10 +0000 (11:56 +0200)]
postinst: remove blank lines

it looks confusing in `apt ..` output

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 weeks agod/control: depend on pve-storage with new ceph parser
Fabian Grünbichler [Thu, 11 Apr 2024 09:55:47 +0000 (11:55 +0200)]
d/control: depend on pve-storage with new ceph parser

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 weeks agopostinst: replace placeholder with actual version
Fabian Grünbichler [Thu, 11 Apr 2024 08:55:35 +0000 (10:55 +0200)]
postinst: replace placeholder with actual version

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 weeks agobin/make: gather helper scripts in separate variable
Max Carrara [Tue, 2 Apr 2024 14:55:23 +0000 (16:55 +0200)]
bin/make: gather helper scripts in separate variable

Signed-off-by: Max Carrara <m.carrara@proxmox.com>
Tested-by: Friedrich Weber <f.weber@proxmox.com>
2 weeks agofix #4759: ceph: configure ceph-crash.service and its key
Max Carrara [Tue, 2 Apr 2024 14:55:22 +0000 (16:55 +0200)]
fix #4759: ceph: configure ceph-crash.service and its key

Due to Ceph dropping privileges when running the 'ceph-crash' daemon
[0], it is necessary to allow the daemon to authenticate with its
cluster in a safe manner.

In order to avoid exposing sensitive keyrings or somehow escalating
its privileges again, 'ceph-crash' is therefore provided with its own
keyring in the '/etc/pve/ceph' directory. This directory, due to being
on 'pmxcfs', may be read by members of the 'www-data' group, which
'ceph-crash' is made part of [1].

Expected Configuration
----------------------

 1. A keyring file named '/etc/pve/ceph/ceph.client.crash.keyring'
    exists
 2. A section named 'client.crash' exists in '/etc/pve/ceph.conf'
 3. The 'client.crash' section has a key named 'keyring' which
    references the keyring file as '/etc/pve/ceph/$cluster.$name.keyring'
 4. The 'client.crash' section has *no* key named 'key'

New Clusters
------------

The keyring file is created and the conf file is updated after the first
monitor has been created (when calling `pveceph mon create`).

Existing Clusters
-----------------

A new helper script creates and configures the 'client.crash' keyring in
`postinst`, if:
 * Ceph is installed
 * Ceph is initialized ('/etc/pve/ceph.conf' and '/etc/pve/ceph' exist)
 * Connection to RADOS is successful

If the above conditions are met, the helper script ensures that the
existing configuration matches the expected configuration mentioned
above.

The configuration is not changed if it is already as expected.

The helper script may be called again manually if the `postinst` hook
fails. It is installed to '/usr/share/pve-manager/helpers/pve-init-ceph-crash'.

Existing `client.crash` Key
---------------------------

If a key named 'client.crash' already exists within the cluster, it is
reused and not regenerated.

[0]: https://github.com/ceph/ceph/pull/48713
[1]: https://git.proxmox.com/?p=ceph.git;a=commitdiff;h=f72c698a55905d93e9a0b7b95674616547deba8a

Signed-off-by: Max Carrara <m.carrara@proxmox.com>
Tested-by: Friedrich Weber <f.weber@proxmox.com>
2 weeks agoceph: introduce '/etc/pve/ceph'
Max Carrara [Tue, 2 Apr 2024 14:55:21 +0000 (16:55 +0200)]
ceph: introduce '/etc/pve/ceph'

This commit adds the '/etc/pve/ceph' directory to our overall expected
Ceph configuration.

This directory is meant to store cluster-wide, non-private
configuration files used by Ceph applications and services that are
executed with lower privileges, such as 'ceph-crash.service'.

The existence of the directory is now also checked for when checking
whether Ceph is configured correctly. This makes it easier for our
other tooling to rely on the directory's existence, reducing the
number of otherwise needless frequent checking.

* For new clusters: `pveceph init` now creates '/etc/pve/ceph' when
  called.

* For existing clusters: The 'postinst' hook this commit adds ensures
  that '/etc/pve/ceph' is created when updating.

Signed-off-by: Max Carrara <m.carrara@proxmox.com>
Tested-by: Friedrich Weber <f.weber@proxmox.com>
2 weeks agosdn: evpn: allow empty primary exit node in zone form
Stefan Hanreich [Thu, 22 Feb 2024 16:40:47 +0000 (17:40 +0100)]
sdn: evpn: allow empty primary exit node in zone form

its broken since the change in semantics of the PUT endpoint [1]

[1] https://git.proxmox.com/?p=pve-network.git;a=commit;h=3e3cafabaf955d53c4c2d4e346bf5c3a5c6d1852

Signed-off-by: Stefan Hanreich <s.hanreich@proxmox.com>
Originally-by: Alexandre Derumier <aderumier@odiso.com>
4 weeks agobump version to 8.1.10
Thomas Lamprecht [Thu, 28 Mar 2024 18:57:10 +0000 (19:57 +0100)]
bump version to 8.1.10

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 weeks agoguest import: allow setting VLAN-tag
Thomas Lamprecht [Thu, 28 Mar 2024 18:56:10 +0000 (19:56 +0100)]
guest import: allow setting VLAN-tag

can be a requirement for live-import to make sense

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 weeks agobump version to 8.1.9
Thomas Lamprecht [Thu, 28 Mar 2024 17:12:50 +0000 (18:12 +0100)]
bump version to 8.1.9

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 weeks agofix #5337: ui: parse a port in the server field
Thomas Lamprecht [Thu, 28 Mar 2024 17:06:34 +0000 (18:06 +0100)]
fix #5337: ui: parse a port in the server field

Based on how we handle this for PBS but without the hidden fields,
which do not really make this simpler, at least not if the logic is
only required on creation due to the field being only editable then.

As example, if the port of the ESXi host would be 8080, one would
enter `192.168.1.2:8080` for an IPv4 address or `[2001:db8::42]:8443`
for an IPv6 one.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 weeks agonode: wake-on-lan: document defaults and small style clean-up
Thomas Lamprecht [Thu, 28 Mar 2024 16:52:25 +0000 (17:52 +0100)]
node: wake-on-lan: document defaults and small style clean-up

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