From: Fiona Ebner <f.ebner@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [RFC container 7/7] api: create/update vm: clamp cpuunit value
Date: Fri, 7 Oct 2022 14:41:47 +0200 [thread overview]
Message-ID: <20221007124156.110246-11-f.ebner@proxmox.com> (raw)
In-Reply-To: <20221007124156.110246-1-f.ebner@proxmox.com>
While the clamping already happens before setting the actual
cpu.weight lxc config key, it can be done here too, to avoid writing
new out-of-range values into the config.
Can't use a validator enforcing this, because existing out-of-range
values should not become errors on parsing the config.
Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
---
src/PVE/API2/LXC.pm | 3 +++
src/PVE/API2/LXC/Config.pm | 4 ++++
2 files changed, 7 insertions(+)
diff --git a/src/PVE/API2/LXC.pm b/src/PVE/API2/LXC.pm
index 589f96f..8282850 100644
--- a/src/PVE/API2/LXC.pm
+++ b/src/PVE/API2/LXC.pm
@@ -221,6 +221,9 @@ __PACKAGE__->register_method({
my $restore = extract_param($param, 'restore');
my $unique = extract_param($param, 'unique');
+ $param->{cpuunits} = PVE::GuestHelpers::get_cpuunits($param->{cpuunits})
+ if defined($param->{cpuunits}); # clamp value depending on cgroup version
+
# used to skip firewall config restore if user lacks permission
my $skip_fw_config_restore = 0;
diff --git a/src/PVE/API2/LXC/Config.pm b/src/PVE/API2/LXC/Config.pm
index 1fec048..a27be56 100644
--- a/src/PVE/API2/LXC/Config.pm
+++ b/src/PVE/API2/LXC/Config.pm
@@ -10,6 +10,7 @@ use PVE::INotify;
use PVE::Cluster qw(cfs_read_file);
use PVE::AccessControl;
use PVE::Firewall;
+use PVE::GuestHelpers;
use PVE::Storage;
use PVE::RESTHandler;
use PVE::RPCEnvironment;
@@ -144,6 +145,9 @@ __PACKAGE__->register_method({
my $revert_str = extract_param($param, 'revert');
my @revert = PVE::Tools::split_list($revert_str);
+ $param->{cpuunits} = PVE::GuestHelpers::get_cpuunits($param->{cpuunits})
+ if defined($param->{cpuunits}); # clamp value depending on cgroup version
+
my $code = sub {
my $conf = PVE::LXC::Config->load_config($vmid);
--
2.30.2
next prev parent reply other threads:[~2022-10-07 12:42 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-07 12:41 [pve-devel] [PATCH-SERIES docs/(guest-)common/qemu-server/container/manager] cpuunits improvements Fiona Ebner
2022-10-07 12:41 ` [pve-devel] [PATCH docs 1/2] qm: resource limits: update systemd setting name for cpuunits Fiona Ebner
2022-10-19 12:04 ` [pve-devel] applied: " Thomas Lamprecht
2022-10-07 12:41 ` [pve-devel] [PATCH docs 2/2] pct/qm: update cpuunits default Fiona Ebner
2022-10-07 12:41 ` [pve-devel] [PATCH guest-common 1/1] helpers: move get_cpuunits helper from qemu-server Fiona Ebner
2022-10-19 12:04 ` Thomas Lamprecht
2022-10-07 12:41 ` [pve-devel] [PATCH container 1/7] config: cpuunits: drop description for outdated special value Fiona Ebner
2022-10-07 12:41 ` [pve-devel] [PATCH container 2/7] change cpu shares: hard-code cgroupv1 default parameter Fiona Ebner
2022-10-07 12:41 ` [pve-devel] [PATCH container 3/7] config: cpuunits: update default description Fiona Ebner
2022-10-07 12:41 ` [pve-devel] [PATCH container 4/7] use helper from guest-common for cpuunits Fiona Ebner
2022-10-07 12:41 ` [pve-devel] [PATCH container 5/7] config: replace mentions of "VM" with "container" Fiona Ebner
2022-10-07 12:41 ` [pve-devel] [RFC container 6/7] change cpu shares: drop superfluous parameter Fiona Ebner
2022-10-07 12:41 ` Fiona Ebner [this message]
2022-10-07 12:41 ` [pve-devel] [PATCH qemu-server 1/3] move get_cpuunits helper to guest-common Fiona Ebner
2022-10-07 12:41 ` [pve-devel] [RFC qemu-server 2/3] change cpu shares: drop superfluous parameter Fiona Ebner
2022-10-07 12:41 ` [pve-devel] [RFC qemu-server 3/3] api: create/update vm: clamp cpuunit value Fiona Ebner
2022-10-07 12:41 ` [pve-devel] [RFC common 1/1] change cpu shares: drop unused $cgroupv1_default parameter Fiona Ebner
2022-11-07 15:30 ` [pve-devel] applied: " Thomas Lamprecht
2022-10-07 12:41 ` [pve-devel] [PATCH manager 1/5] ui: lxc: cpu edit: drop superfluous delete_if_default Fiona Ebner
2022-10-07 12:41 ` [pve-devel] [PATCH manager 2/5] ui: qemu/lxc: cpu edit: fix 'create' parameter for delete_if_default() Fiona Ebner
2022-10-07 12:41 ` [pve-devel] [PATCH manager 3/5] ui: lxc/qemu: cpu edit: use emptyText for cpuunits Fiona Ebner
2022-10-07 12:41 ` [pve-devel] [PATCH v2 manager 4/5] cluster resources: add cgroup-mode to node properties Fiona Ebner
2022-11-02 12:24 ` Fiona Ebner
2022-10-07 12:41 ` [pve-devel] [PATCH manager 5/5] ui: lxc/qemu: cpu edit: make cpuunits depend on node's cgroup version Fiona Ebner
2022-11-08 15:27 ` [pve-devel] partially-applied-series: [PATCH-SERIES docs/(guest-)common/qemu-server/container/manager] cpuunits improvements Thomas Lamprecht
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20221007124156.110246-11-f.ebner@proxmox.com \
--to=f.ebner@proxmox.com \
--cc=pve-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.