Commit Graph

7598 Commits

Author SHA1 Message Date
Christian Ebner
2bbf10d9ef pve7to8: fix broken pipe warning for dkms status invocation
The check for dkms kernel modules relies on the output of `dkms
status`. dkms command invocation will perform the following sanity
check:
```
if [ ! -e <(echo) ]; then
    warn $"dkms will not function properly if /proc is not mounted."
fi
```

This check will however throw the following warning when SIGPIPE is
set to be ignored:

```
sbin/dkms: line 2497: echo: write error: Broken pipe
```

While only cosmetic, this can be confusing. Therefore, temporarily
enable SIGPIPE before calling dkms, restoring the originally setting
afterwards.

Reported-by: Alexander Zeidler <a.zeidler@proxmox.com>
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2025-04-04 12:19:54 +02:00
Fabian Grünbichler
e913f15d3b ui: permissions: properly sort hwrng path entry
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2025-04-04 11:01:43 +02:00
Filip Schauer
a47a8afb00 ui: let non-root users configure VirtIO RNG devices
Allow non-root users with the VM.Config.HWType privilege to configure
/dev/urandom & /dev/random as an entropy source for a VirtIO RNG device.
Users with the Mapping.Use privilege on the /mapping/hwrng ACL path may
also configure /dev/hwrng as an entropy source.

Signed-off-by: Filip Schauer <f.schauer@proxmox.com>
2025-04-04 10:26:28 +02:00
Filip Schauer
ce2e0bc32c ui: permissions: add ACL path for hardware RNG
Signed-off-by: Filip Schauer <f.schauer@proxmox.com>
2025-04-04 10:26:28 +02:00
Filip Schauer
a601fd6c2b ui: remove warning about entropy starvation of /dev/random
Remove the warning about entropy-starvation when using /dev/random as
the entropy source. This concern no longer applies since the removal of
the blocking entropy pool in kernel version 5.6. [1] [2]

[1] https://git.kernel.org/torvalds/c/acd77500aa8a337baa6d853568c4b55aca48e20f
[2] https://lwn.net/Articles/808575/

Signed-off-by: Filip Schauer <f.schauer@proxmox.com>
2025-04-04 10:26:28 +02:00
Dominik Csapak
db708c9e1b fix #5175: ui: allow configuring and live migration of mapped pci resources
if the hardware/driver is capable, the admin can now mark a pci device
as 'live-migration-capable', which then tries enabling live migration
for such devices.

mark it as experimental when configuring and in the migrate window

also change 'hideComment' to 'globalEdit' and reverse the logic
(so hideComment => !globalEdit) to better reflect what it does now.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2025-04-03 18:00:26 +02:00
Dominik Csapak
35036e0247 ui: adapt migration window to precondition api change
we now return the 'allowed_nodes'/'not_allowed_nodes' also if the vm is
running, when it has mapped resources. So do that checks independently
so that the user has instant feedback where those resources exist.

Reviewed-by: Christoph Heiss <c.heiss@proxmox.com>
Reviewed-by: Fiona Ebner <f.ebner@proxmox.com>
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2025-04-03 18:00:26 +02:00
Dominik Csapak
0c27cc595e bulk migrate: improve precondition checks
this now takes into account the 'not_allowed_nodes' hash we get from the
api call. With that, we can now limit the 'local_resources' check for
online vms only, as for offline guests, the 'unavailable-resources' hash
already includes mapped devices that don't exist on the target node.

This now also includes unavailable storages on target nodes.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2025-04-03 18:00:26 +02:00
Dominik Csapak
fea311260f mapping: pci: include mdev in config checks
by also providing the global config in assert_valid, and by also
adding the mdev config in the 'toCheck' object in the gui

For the gui, we extract the mdev property from the global entry, and add
it to the individual mapping entries, that way we can reuse the checking
logic of the other properties.

Reviewed-by: Christoph Heiss <c.heiss@proxmox.com>
Reviewed-by: Fiona Ebner <f.ebner@proxmox.com>
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2025-04-03 18:00:26 +02:00
Friedrich Weber
5636233d47 report: add WWN column to lsblk output
WWNs (WWIDs) are useful information for debugging setups where
multipath is not (correctly) set up, as the WWN reveals which block
devices point to the same LUN. The report currently does not provide
WWNs in such scenarios. There is a symlink for the WWN under
/dev/disk/by-id/wwn-*, but if there are multiple block devices with
the same WWN, the symlink just points to one of them.

Hence, add the WWN column to the lsblk output.

Signed-off-by: Friedrich Weber <f.weber@proxmox.com>
2025-04-01 11:56:36 +02:00
Thomas Lamprecht
949c511c4e api subscription: fix permissions for ceph apt-auth file
Use the same one as for the per-product file.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2025-03-31 22:16:59 +02:00
Christoph Heiss
3d23bdefe6 api: subscription: add missing semicolon
Fixes a build failure.

Fixes: 52f670250 ("api subscription: output generic apt-auth stanza for ceph")
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2025-03-31 16:31:54 +02:00
Thomas Lamprecht
52f6702503 api subscription: output generic apt-auth stanza for ceph
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2025-03-28 09:48:32 +01:00
Christoph Heiss
0baf15ab90 www: ceph: use common spelling for metadata servers in title
Everywhere else (including in the Ceph documentation itself [0]) it is
spelled without a space in "metadata", so fix this lonely occurrence for
consistency.

[0] https://docs.ceph.com/en/latest/glossary/#term-Ceph-Metadata-Server

Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2025-03-25 17:46:21 +01:00
Michael Köppl
06203892c6 ui: lxc create: do not suggest nesting is enabled for privileged CTs
The current implementation is slightly misleading. When creating a
privileged container, the nesting checkbox is disabled but keeps its
current state. However, nesting is not enabled for privileged
containers even if the checkbox was set to true.
With this change, the nesting checkbox gets unticked whenever it is
disabled, making clear that the nesting feature will not be enabled.

Signed-off-by: Michael Köppl <m.koeppl@proxmox.com>
 [TL: slight rewording of the commit message]
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2025-03-24 10:14:13 +01:00
Fiona Ebner
e53d7b66f7 ui: util: update backup content type string
The description 'VZDump backup file' for content type 'backup' is
wrong for PBS and other future backup providers. Just use 'Backup' to
describe the content type everywhere and avoid confusion.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
2025-03-06 14:02:14 +01:00
Thomas Lamprecht
dac3aa88ba bump version to 8.3.5
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2025-03-06 10:50:23 +01:00
Thomas Lamprecht
f02de6ed11 d/control: update versioned dependency for widget-toolkit
To ensure the new pmxFingerprintField component is available.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2025-03-06 10:49:12 +01:00
Hannes Duerr
655a8ad3d0 ui: storage pbs: re-use new pmxFingerprintField from widget-toolkit
To avoid code duplication, a dedicated component with the xtype
pmxFingerprintField was added to proxmox-widget-toolkit which we are
now also using here.

Signed-off-by: Hannes Duerr <h.duerr@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2025-03-06 10:46:41 +01:00
Hannes Duerr
b447696d1a ui: sdn ipam: powerDNS, NetBox, phpIPAM: add fingerprint textfield
Signed-off-by: Hannes Duerr <h.duerr@proxmox.com>
 [TL: touch up subject]
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2025-03-06 10:46:41 +01:00
Hannes Duerr
511904bfc5 ui: sdn ipam: powerDNS, NetBox, phpIPAM: split layout in two columns
We divide the layout into two columns in preparation for the
fingerprint field, as this is as long as two columns

Signed-off-by: Hannes Duerr <h.duerr@proxmox.com>
 [TL: touch up commit subject]
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2025-03-06 10:46:41 +01:00
Dominik Csapak
6472e1ba60 fix #6138: ui: storage content: use locale for sorting
by using 'localeCompare'.

Assume the files 'a', 'B' and 'c'. The current default sorting results
in :

'B'
'a'
'c'

(C collation)

With this patch we use locale dependent sorting, so the browser/client
setting controls how it's sorted. For example with english, the list
becomes:

'a'
'B'
'c'

Which makes it easier to visually search for specific entries.
Using the default settings here makes sense (so no explicit
'sensitivity' setting for example.), since that is whats most
expected per locale.

Also enable 'numeric' sorting, so 'foo10' is sorted after 'foo2' as
suggested by Fiona.

Interestingly, the initial sorter (via the 'sorters' property of the
store), cannot seem to reuse the sorter defined in the columns, so we
have to specify it twice, once for the initial sort and once when the
user clicks the column header.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2025-03-04 16:35:56 +01:00
Thomas Lamprecht
07ae812ca2 update shipped appliance info index
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2025-02-28 15:55:30 +01:00
Thomas Lamprecht
65224a0f9c bump version to 8.3.4
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2025-02-18 15:26:23 +01:00
Hannes Duerr
0c1b81f0fc d/control: add pve-nvidia-vgpu-helper as recommended dependency
The package ships a small helper executable for making it easier to
set up the NVIDIA vGPU driver.

Signed-off-by: Hannes Duerr <h.duerr@proxmox.com>
 [TL: move from hard-dependency to recommends, adapt commit message]
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2025-02-18 13:14:49 +01:00
Lukas Wagner
4d0f2624de pull metric: fix node iowait metric
The hash from which we query cpu metrics contains 'iowait' as well as
'wait'. The first one is the total amount of time that was spent
waiting on IO, the second one is the percentage of time spent on waiting
on IO in a certain time frame.

For the metrics returned by the /cluster/metrics/export endpoint we want
the second one.

Reported-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
2025-02-10 10:43:55 +01:00
Stefan Hanreich
20e637a209 fix #6142: ui: dc options: allow custom CIDRs for migration network
Sometimes the desired migration network is not configured on any
network interfaces on the node. For instance, if there is a full-mesh
network the CIDR for the router IPs is not configured on any network
interface, but still a valid choice as migration network. This patch
fixes this by allowing users to additionally enter arbitrary CIDRs
into the field setting the migration network.

Signed-off-by: Stefan Hanreich <s.hanreich@proxmox.com>
2025-02-06 13:51:59 +01:00
Markus Frank
a38c3527a9 ui: qemu: fix the capitalisation of the word clipboard in DisplayEdit
Fixes: 80da5bb97d
Signed-off-by: Markus Frank <m.frank@proxmox.com>
2025-02-04 13:07:25 +01:00
Markus Frank
ed43c2d719 ui: qemu: add vnc clipboard hint for migration
Signed-off-by: Markus Frank <m.frank@proxmox.com>
2025-02-04 13:07:25 +01:00
Dominik Csapak
3111c08f78 api: network: add more methods to return types
i forgot to add 'loopback' and 'dhcp' to the schema, which can be
returned here.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2025-02-04 11:12:42 +01:00
Thomas Skinner
bbba1c53a1 fix #5699: pveproxy: add settings for real IP support
Signed-off-by: Thomas Skinner <thomas@atskinner.net>
2025-01-24 09:34:47 +01:00
Fabian Grünbichler
f157a38b21 bump version to 8.3.3
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2025-01-20 11:38:06 +01:00
Friedrich Weber
f08f08a042 ui: ha resources view: add missing htmlEncode to qtip
to avoid interpreting html tags in the values.

When setting a tooltip via the `data-qtip` attribute, the contents
needs to be double-encoded. Ext.js internally uses `innerHTML` to
apply the generated HTML, which undoes one layer of encoding in case
of `data-qtip`.

Signed-off-by: Friedrich Weber <f.weber@proxmox.com>
2025-01-20 11:35:54 +01:00
Friedrich Weber
a9e0b24371 ui: sdn/firewall: add htmlEncodes
to avoid interpreting html tags in the values.

When setting a tooltip via the `data-qtip` attribute, the contents
needs to be double-encoded. Ext.js internally uses `innerHTML` to
apply the generated HTML, which undoes one layer of encoding in case
of `data-qtip`.

Signed-off-by: Friedrich Weber <f.weber@proxmox.com>
2025-01-20 11:35:54 +01:00
Dominik Csapak
b66a60f050 ui: wizards: htmlEncode the values in the summary grid
so that we don't accidentally interpret html tags in the values.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2025-01-20 11:35:54 +01:00
Dominik Csapak
38fd419220 ui: hardware/resources: htmlEncode volume ids configs
so we don't interpret html tags in filenames

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2025-01-20 11:34:56 +01:00
Thomas Lamprecht
883af414a9 update shipped appliance info index
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-12-19 00:04:16 +01:00
Thomas Lamprecht
3e76eec21c bump version to 8.3.2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-12-16 17:52:33 +01:00
Dominik Csapak
80cc262f25 api: nodes: add more return descriptions for node status
it's not all fields, but many useful ones

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-12-16 17:44:05 +01:00
Friedrich Weber
adfa98cc88 ui: qemu network IPs: fix error reporting
When the network-get-interfaces API endpoint returns an error, the GUI
currently only displays "No network information" instead of the actual
error message. The reason is that `Ext.String.format` is applied to
`text` to fill in the error message, but the format string `text` does
not contain any tokens. Commit e7f07a2e ("show guest-agent provided ip
address in qemu summary"), which introduced the feature, added a
format string in a variable `msg`, but unintentionally did not use it.
The unused variable `msg` was then removed in 55ee6ba1 ("ui: eslint:
No unused or duplicate variables").

Fix error reporting by re-introducing and actually using the format
string. Also, htmlEncode the error message returned by the backend.

Signed-off-by: Friedrich Weber <f.weber@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-12-16 17:44:05 +01:00
Dominik Csapak
a44a318b62 ui: qemu network IPs: htmlEncode backend supplied values
So we show the value as they get sent by the backend, and not get
interpolated as html.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Reported-by: Jens Krabbenhöft <jens@krabbenhoeft.net>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-12-16 17:44:05 +01:00
Aaron Lauterer
ead665d5f8 ui: ceph pool: add columns for application
Since we already have the information from the API call, why not add it
as a (hidden) column. It can be useful to quickly see which ceph
applications are enabled for a pool in some situations.

Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
2024-12-10 19:53:08 +01:00
Thomas Lamprecht
e554f5bd51 ui: ceph: don't set default size/min-size when editing existing pool
As else we trigger a change event for the size field which triggers
the sizeChange callback that then re-calculates the default size
suggestion, which might be lower as the value the user configured.

This was reported in the Forum for a 5/4 size/min-size configuration
that got reset to 5/3 on edit.

Report: https://forum.proxmox.com/threads/158798/
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-12-10 15:42:03 +01:00
Thomas Lamprecht
17db04bd2a ui: ceph pool: indentation clean-up
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-12-10 15:41:09 +01:00
Dominik Csapak
20fecb7746 api: network: add return schema for interface listing
Most options come from the api call parameter list
(`json_config_properties`). The description and types for the remaining
ons are either taken from the manpages, source code or similar
documentation where available.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2024-12-09 13:59:19 +01:00
Thomas Lamprecht
fb48e850ef bump version to 8.3.1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-11-29 11:42:50 +01:00
Lukas Wagner
369a24303c api: notification targets: fix permission check for POST/PUT
This fixes the error:
  unknown permission test at /usr/share/perl5/PVE/RPCEnvironment.pm line 536. (500)
which occurred when trying to create or update a notification target.

The cause was a permission 'check' parameter for the API handlers
which was nested one level too deep by accident.

This regression was introduced in a previous commit which raised the
needed permissions for notification target management. It likely went
unnoticed because the permission check is skipped for root@pam, so the
error occurs only if using another user.

Reported in the community forum:
https://forum.proxmox.com/threads/158101

Fixes: a3fe9c54 ("api: notifications: require powerful privileges for target management")
Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
 [ TL: minor commit message touch ups ]
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-11-29 11:41:00 +01:00
Dominik Csapak
09e47a6dcc status: influxdb: always quote tags
Since tags are mostly free-form, a single tag with a numeric value will
get sent to influxdb as a number by default. Change that to always quote
the tags as a string, like we do for the 'name' field. (InfluxDB can
only have one type per field, so either a string or a number type).

This won't fix influxdb databases after there are already numeric values
in there, but I guess most tags won't be purely numeric, so this won't
be an issue for most users, and fixes the reverse case where purely
numeric tags won't show up in influxdb.

reported in the community forum:
https://forum.proxmox.com/threads/138004/#post-724127

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2024-11-27 20:20:45 +01:00
Lukas Wagner
813c6446ff ui: cluster join info: add clipboard icon to "Copy Information" button
We use the same icon in other similar buttons already, e.g. for copying the
TLS certificate fingerprint in PBS.

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
2024-11-22 15:52:38 +01:00
Aaron Lauterer
c6c7058d5f ui: sdn firewall: add online help
Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
2024-11-21 17:22:05 +01:00