Commit Graph

14322 Commits

Author SHA1 Message Date
4d23f4ada3 feat(pve-manager.spec): new update-kernel dependency
Added a new dependency required for the 'pveupgrade' script to work.
2024-11-08 12:40:49 +03:00
3bc3c5d5bb feat(pveupgrade): adding a kernel update
Added removal of old kernels and installation of new kernel versions.'update-kernel' checks if the new kernel is installed correctly and displays a message asking to reboot the system.
2024-11-08 12:09:29 +03:00
2ab397b671 Adapted 'apt-get changelog' for ALT 2024-11-06 12:03:07 +03:00
549a4f8b53 Returned installation of pveupgrade Perl script (Should be adapted to ALT) 2024-11-01 13:32:29 +03:00
067f72e431 Partitial revert back to 5d24b7d37e (APT web-interface restored) 2024-10-31 16:41:02 +03:00
31153c3897 alt2 Release 2024-10-30 18:26:45 +03:00
61df46d0e9 Revert "apply pve-manager-rs-apt.patch"
This reverts commit d540072a29.
2024-10-30 18:24:51 +03:00
d908cd1377 8.2.7-alt1
- 8.2.7
2024-10-17 17:25:53 +03:00
a3ae6230fa Merge commit '5d24b7d37eb43fe782aaac8e2cf3f3765a6aaecd' 2024-10-17 17:18:53 +03:00
Dominik Csapak
5d24b7d37e fix #5734: provide missing methods for Proxmox.Utils for mobile ui
since the mobile ui shares the Utils code with the desktop web ui, (but
not the proxmox-widget-toolkit) all methods used in constructors, etc.
there must be available in the mobile ui too.

We don't have any notification configuration options in the mobile ui,
and AFAIK we don't plan to add those there, so we can just implement
stub functions. This way the Utils constructor can proceed without
errors, fixing loading the mobile ui.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2024-09-25 14:49:21 +02:00
Thomas Lamprecht
3e0176e6bb bump version to 8.2.7
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-09-23 11:43:28 +02:00
Thomas Lamprecht
50e7a31db3 d/control: bump versioned dependency of common and http-server
to ensure the 'dowload_allowed' schema property is understood.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-09-23 11:24:49 +02:00
Fabian Grünbichler
69698ccc63 download handling: adapt to method schema field rename
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2024-09-23 10:53:25 +02:00
Fabian Grünbichler
2e489489ab pvesh: limit download handling to annotated endpoints
to unify the behaviour with pve-http-server.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2024-09-23 10:53:25 +02:00
Fabian Grünbichler
7641dcb6d9 api: annotate download endpoints
both the task and system log API endpoints support downloading the log data.

annotate the API method schema accordingly to allow passing the newly
introduced checks in the API handler that limit download functionality to
annotated endpoints.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2024-09-23 10:53:25 +02:00
Thomas Lamprecht
414ce79a1d bump version to 8.2.6
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-09-20 17:47:21 +02:00
Fabian Grünbichler
ad984948f9 fix #5731: vzdump jobs: fix execution of converted jobs
jobs converted from vzdump.cron have an ID of the format

$digest:$counter

where $digest is the hash of the vzdump.cron file, and $counter is the
position of the job within the crontab.

while the section config schema pretends jobs.cfg's section IDs are
of type pve-configid, that is not enforced anywhere, and the API
endpoints managing such jobs allowed arbitrary strings in the past.

the ':' character is not allowed by `pve-configid`, but it is by the
section config parsers and the Job API.

convert the API schema to use the unification of previous definition
used by the job API, and what the section config parser accepts.

Fixes: f5a97f1f5 (api: jobs: vzdump: pass job 'job-id' parameter)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2024-09-20 17:44:26 +02:00
Fabian Grünbichler
bab934c4fa vzdump jobs: make job ID a standard option
and put it into PVE::VZDump because there is a cycle between

PVE::Jobs::VZDump, PVE::API2::VZDump and PVE::API2::Backups

that prevents any of those containing it for now.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2024-09-20 17:44:00 +02:00
Thomas Lamprecht
ce602b2d54 d/copyright: run wrap-and-sort -tkn
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-09-16 13:59:02 +02:00
Thomas Lamprecht
12c0a59769 bump version to 8.2.5
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-09-12 17:20:54 +02:00
Thomas Lamprecht
218baa5ef7 update shipped appliance info index
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-09-12 11:16:17 +02:00
Friedrich Weber
72c274754d ui: qemu: hardware: fix permission check for adding tpmstate volume
Previously, the "Add -> TPM State" menu item in the GUI was disabled
if the user did not have Sys.Console privileges. This deviated from
the permission check in the backend, which does not require
Sys.Console but (among others) VM.Config.Disk.

Fix this inconsistency by checking for VM.Config.Disk in the frontend
instead of Sys.Console.

Reported in enterprise support.

Signed-off-by: Friedrich Weber <f.weber@proxmox.com>
2024-09-10 12:13:09 +02:00
Andrew A. Vasilyev
017fabfc50 8.2.4-alt1
- 8.2.4
2024-08-30 15:43:35 +03:00
Andrew A. Vasilyev
6b5e8dff24 ALT: fix window size to fit Russian messages 2024-08-30 15:43:21 +03:00
Andrew A. Vasilyev
d5867bc8a1 Merge 8.2.4 2024-08-29 23:26:17 +03:00
Lukas Wagner
073b53ae71 metrics: add /cluster/metrics/export endpoint
This new endpoint returns node, storage and guest metrics in JSON
format. The endpoint supports history/max-age parameters, allowing
the caller to query the recent metric history as recorded by the
PVE::PullMetric module.

The returned data format is quite simple, being an array of
metric records, including a value, a metric name, an id to identify
the object (e.g. qemu/100, node/foo), a timestamp and a type
('gauge', 'derive', ...). The latter property makes the format
self-describing and aids the metric collector in choosing a
representation for storing the metric data.

    [
        ...
        {
            "metric": "cpu_avg1",
            "value": 0.12,
            "timestamp": 170053205,
            "id": "node/foo",
            "type": "gauge"
        },
        ...
    ]

Some experiments were made in regards to making the format
more 'efficient', e.g. by grouping based on timestamps/ids, resulting
in a much more nested/complicated data format. While that
certainly reduces the size of the raw JSON response by quite a bit,
after GZIP compression the differences are negligible (the
simple, flat data format as described above compresses by a factor
of 25 for large clusters!). Also, the slightly increased CPU load
of compressing the larger amount of data when e.g. polling once a
minute is so small that it's indistinguishable from noise in relation
to a usual hypervisor workload. Thus the simpler, format was
chosen. One benefit of this format is that it is more or less already
the exact same format as the one Prometheus uses, but in JSON format -
so adding a Prometheus metric scraping endpoint should not be much
work at all.

The API endpoint collects metrics for the whole cluster by calling
the same endpoint for all cluster nodes. To avoid endless request
recursion, the 'local-only' request parameter is provided. If this
parameter is set, the endpoint implementation will only return metrics
for the local node, avoiding a loop.

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
[WB: remove unused $start_time leftover from benchmarks]
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2024-08-14 14:18:48 +02:00
Lukas Wagner
5732ad6584 pvestatd: store subsystem status data in a shared cache
This commit adds a new module PVE::PullMetric. This module allows
us to store the status data of various subsystems, including status
data for the most recent pvestatd update loops. Right now, we
store 6 old generations - including the most recent values, that gives
70 seconds of stat history (based on a 10 second pvestatd update loop
interval).

This cache allows us to add support for pull-style metric collection
systems, be it Prometheus/OpenMetrics or some custom, JSON based
metric format.

This patch raises the required lib{proxmox,pve}-perl-rs version
requirements, since we need the new bindings for proxmox-shared-cache.

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
[WB: actually bump *runtime* deps in d/control]
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2024-08-14 14:18:34 +02:00
Dominik Csapak
e6efc75389 ui: backup job detail: fix wrong gettext
'suspend' mode should not be shown as `gettext('Snapshot')`

reported in the forum:
https://forum.proxmox.com/threads/152365/

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2024-08-07 11:20:29 +02:00
Igor Thaller
b5600e6683 ui: dc summary: fix calculation of storage size
The issue is related to the 'Summary' tab under 'Datacenter' inside a
cluster. To get a steady reading of the storage size data, the
frontend requests the '/api2/json/cluster/resources' every three
seconds to retrieve the necessary data to calculate the used and total
storage size.

The problem occurs when a shared storage is defined and a node goes
offline. As the node is not online, it cannot report the shared
storage size (both used and total) back to the other nodes. The order
of the JSON response is not always the same, so it is possible that
the offline node will appear first. Consequently, the frontend will
display the wrong total and used storage. This is because the shared
storage data has both the maximum disk size and the used disk set to
zero when the node is offline. This causes the total and used space
data to be calculated and displayed incorrectly, leading to
fluctuations in the displayed percentage of used disk space.

To fix this, add a conditional check to skip the storage report if its
status is 'unknown' (regardless of if the storage is local or shared).
This prevents the unreliable data from being processed.

Reported-by: Friedrich Weber <f.weber@proxmox.com>
Signed-off-by: Igor Thaller <igor.thaller@aon.at>
2024-07-31 17:33:03 +02:00
Stefan Hanreich
ef3c6d04d1 sdn: vnets: hide irrelevant fields depending on zone type
Not all fields in the VnetEdit dialog are necessary for every zone
type. This lead to confusion for some users. Hide fields in the
VNetEdit dialog depending on which kind of zone is selected in order
to prevent potential confusion.

Signed-off-by: Stefan Hanreich <s.hanreich@proxmox.com>
Tested-by: Theodor Fumics <theodor.fumics@gmx.net>
Reviewed-by: Theodor Fumics <theodor.fumics@gmx.net>
2024-07-30 19:58:38 +02:00
Dominik Csapak
fcf103ffd4 ui: resource mappings: fix editing of mapping for non first node
when editing the pci mapping, we set the nodename of the pci/usbselector
to the selected node. At the same time we disable and hide the node
selector, but it still changes it's value to the 'first' node
(alphabetically sorted) and that triggers a change event.

To prevent that we accidentally set the node of the pci/usbselector
too, we need to check here if the field is disabled.

There seems to be a race when loading the nodes for the nodeselector
which leads to inconsistent behaviour, so this was only encountered for
the pciselector, but theoretically it could also happen for the
usbselector so adding that condition to both.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2024-07-26 11:08:07 +02:00
Lukas Wagner
876e531ad7 d/control: bump proxmox-widget-toolkit dependency to 4.1.4
We need
  "utils: add mechanism to add and override translatable notification
  event descriptions in the product specific UIs"
otherwise there is an error in the browser console.

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
Reviewed-by: Max Carrara <m.carrara@proxmox.com>
2024-07-22 19:34:58 +02:00
Lukas Wagner
cb8c1ae7c8 ui: utils: add overrides for translatable notification fields/values
Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
Reviewed-by: Max Carrara <m.carrara@proxmox.com>
2024-07-22 19:34:58 +02:00
Lukas Wagner
7d004d69f0 api: notification: add API for getting known metadata fields/values
This new API route returns known notification metadata fields and
a list of known possible values. This will be used by the UI to
provide suggestions when adding/modifying match rules.

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
Reviewed-by: Max Carrara <m.carrara@proxmox.com>
2024-07-22 19:34:58 +02:00
Lukas Wagner
a0f4fb9823 ui: dc: backup: allow to set custom job id in advanced settings
This might be useful if somebody wants to match on the new
'backup-job' field in a notification match rule.

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
Reviewed-by: Max Carrara <m.carrara@proxmox.com>
2024-07-22 19:34:58 +02:00
Lukas Wagner
f5a97f1f5d api: jobs: vzdump: pass job 'job-id' parameter
This allows us to access the backup job id in the send_notification
function, where we can set it as metadata for the notification.
The 'job-id' parameter can only be used by 'root@pam' to prevent
abuse. This has the side effect that manually triggered backup jobs
cannot have the 'job-id' parameter at the moment. To mitigate that,
manually triggered backup jobs could be changed so that they
are not performed by a direct API call by the UI, but by requesting
pvescheduler to execute the job in the near future (similar to how
manually triggered replication jobs work).

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
Reviewed-by: Max Carrara <m.carrara@proxmox.com>
 [ TL: fleece in d/control bump for guest-common now that the version
   is known ]
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-07-22 19:23:18 +02:00
Aaron Lauterer
76ed490012 fix #5010: ceph: pool set only changed properties
By only setting properties that have changed, we can avoid potential
errors in the task.

For example, if one configures the "nosizechange" property on a pool,
to prevent accidental size changes, the task will now only error if
the user is actually trying to change the size.

Prior to this patch, we would always try to set all parameters, even if
they were the same value. In the above example, this would result in the
task ending in error state, as we are not allowed to change the size.

To disable size changing you can run the following command:
 ceph osd pool set {pool} nosizechange 1

Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
Reviewed-by: Christoph Heiss <c.heiss@proxmox.com>
Tested-by: Christoph Heiss <c.heiss@proxmox.com>
2024-07-22 18:58:31 +02:00
Thomas Lamprecht
d69d4ed8cb ui: cephfs: disallow blank field for now required MDS ID
while the ID part was formerly added to the nodename, and thus could
be completely left out, it's now used as full ID, so it must not be
empty as otherwise one gets an error from the API.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-07-22 18:54:21 +02:00
Aaron Lauterer
0fd676f902 fix #5570 ui: ceph: make MDS ID configurable
Since the ID of an MDS cannot start with a number [0], we cannot just
use the hostname in all situations, as they are allowed to start with
a number.

By having an extra field for the MDS ID, we can check for that via a
regex. This field is filled with the hostname when the host on which
it should be installed is selected.

This means, we can remove the extra ID field, as additional MDS, and
their unique ID can be set with the new ID field.

[0] https://docs.ceph.com/en/latest/man/8/ceph-mds/

Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
Tested-by: Christoph Heiss <c.heiss@proxmox.com>
Reviewed-by: Christoph Heiss <c.heiss@proxmox.com>
 [ TL: use camelCase for local serviceID variable ]
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-07-22 18:53:05 +02:00
Aaron Lauterer
9477cb4b76 api: ceph mds: avoid creating MDS when ID starts with number
Ceph MDS IDs cannot start with a number [0].

[0] https://docs.ceph.com/en/latest/man/8/ceph-mds/

Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
Tested-by: Christoph Heiss <c.heiss@proxmox.com>
Reviewed-by: Christoph Heiss <c.heiss@proxmox.com>
2024-07-22 18:44:38 +02:00
Stefan Hanreich
2989f3a9b8 sdn: ipam: fix editing custom mappings
Currently custom mappings cannot be edited, due to them having no VMID
value. The VMID parameter was always sent by the frontend to the
update call - even if it was empty - leading to validation failure on
the backend. Fix this by only sending the vmid parameter when it is
actually set.

Signed-off-by: Stefan Hanreich <s.hanreich@proxmox.com>
2024-07-22 18:37:32 +02:00
Christoph Heiss
7b524c5e3b www: utils: fix inconsistency in host cpu usage display in search view
Between the number of CPUs and the actual label, a space was missing -
resulting in an inconsistency vs. the "CPU usage" column.

Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2024-07-22 18:35:59 +02:00
Christoph Heiss
ec0aff2abb www: utils: fix maxcpu validity check in render_hostcpu()
Comparing with Proxmox.Utils.render_cpu() seems just a slight oversight
in the condition. Fix it by aligning it with how it is done in
Proxmox.Utils.render_cpu() for consistency.

Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2024-07-22 18:35:55 +02:00
Maximiliano Sandoval
641cc888b5 ceph: osd: fix canot typo
Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
2024-07-22 18:28:18 +02:00
Maximiliano Sandoval
ef7e0ee2b2 makefile: fix waring typo
Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
2024-07-22 18:28:18 +02:00
Maximiliano Sandoval
d801ff78c0 guest import: fix attaced typo in translatable string
Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
2024-07-22 18:28:18 +02:00
Maximiliano Sandoval
00830b8717 ui: ceph: rename wizzard variable to wizard
Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
2024-07-22 18:28:18 +02:00
Maximiliano Sandoval
d76c2b0f9e fix typos in comments
Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
2024-07-22 18:28:18 +02:00
Max Carrara
48b64ef35b utils: align regex of parse_ceph_version with Perl equivalent
Signed-off-by: Max Carrara <m.carrara@proxmox.com>
Tested-by: Lukas Wagner <l.wagner@proxmox.com>
Reviewed-by: Lukas Wagner <l.wagner@proxmox.com>
Tested-by: Igor Thaller <igor.thaller@brg9.at>
2024-07-22 16:19:03 +02:00
Max Carrara
ddf6263191 ceph: services: refactor version existence check as guard clause
Signed-off-by: Max Carrara <m.carrara@proxmox.com>
Tested-by: Lukas Wagner <l.wagner@proxmox.com>
Reviewed-by: Lukas Wagner <l.wagner@proxmox.com>
Tested-by: Igor Thaller <igor.thaller@brg9.at>
2024-07-22 16:19:03 +02:00