public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Fiona Ebner <f.ebner@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH storage 2/2] get bandwidth limit: improve detecting if storages are involved
Date: Wed, 23 Nov 2022 12:40:25 +0100	[thread overview]
Message-ID: <20221123114025.164565-2-f.ebner@proxmox.com> (raw)
In-Reply-To: <20221123114025.164565-1-f.ebner@proxmox.com>

Previously, calling with e.g. $storage_list = [undef] would lead to an
early return of $override and not consider the limit from
datacenter.cfg.

Refactoring the bandwidth limit handling for migration introduced
calls such as described above, which broke applying the limit from
datacenter.cfg for VM RAM/state migration.

Reported in the community forum:
https://forum.proxmox.com/threads/37920/post-513005

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
---

We could of course also fix the call sites in AbstractMigrate.pm and
StorageTunnel.pm (or not pass [undef] as a list of storages to the
tunnel in the first place), but supporting [undef] in Storage.pm
directly seemed nicer IMHO, as we already support having some of the
entries in the list undef (just not all yet).

 PVE/Storage.pm            | 2 +-
 test/run_bwlimit_tests.pl | 5 +++++
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/PVE/Storage.pm b/PVE/Storage.pm
index c21b85e..89c7116 100755
--- a/PVE/Storage.pm
+++ b/PVE/Storage.pm
@@ -2082,7 +2082,7 @@ sub get_bandwidth_limit {
     }
 
     # Apply per-storage limits - if there are storages involved.
-    if (defined($storage_list) && @$storage_list) {
+    if (defined($storage_list) && grep { defined($_) } $storage_list->@*) {
 	my $config = config();
 
 	# The Datastore.Allocate permission allows us to modify the per-storage
diff --git a/test/run_bwlimit_tests.pl b/test/run_bwlimit_tests.pl
index 5e59bf0..6ae379c 100755
--- a/test/run_bwlimit_tests.pl
+++ b/test/run_bwlimit_tests.pl
@@ -109,6 +109,8 @@ my @tests = (
     [ ['restore', ['d50m40r30'],     0],   0, 'root / specific storage limit (restore)' ],
     [ ['migrate', undef,           100], 100, 'root / undef storage (migrate)' ],
     [ ['migrate', [],              100], 100, 'root / no storage (migrate)' ],
+    [ ['migrate', [undef],       undef], 100, 'root / [undef] storage no override (migrate)' ],
+    [ ['migrate', [undef, undef],  200], 200, 'root / list of undef storages with override (migrate)' ],
 
     [ user => 'user1@test' ],
     [ ['unknown', ['nolimit'],      undef], 100, 'generic default limit' ],
@@ -189,6 +191,9 @@ my @tests = (
     [ ['restore', ['nolimit', 'd20m40r30'],   undef],     30, 'multiple storages specific limit with privileges on one of them (default limited) (restore)' ],
     [ ['restore', ['d20m40r30', 'm50'],         200],     60, 'multiple storages specific limit with privileges on one of them (global default limited) (restore)' ],
     [ ['move',    ['nolimit', undef ],          40] ,     40, 'multiple storages one undefined, passing 40 (move)' ],
+    [ ['move',    undef,                       100] ,     80, 'undef storage, passing 100 (move)' ],
+    [ ['move',    [undef],                     100] ,     80, '[undef] storage, passing 100 (move)' ],
+    [ ['move',    [undef],                   undef] ,     80, '[undef] storage, no override (move)' ],
 );
 
 foreach my $t (@tests) {
-- 
2.30.2





  reply	other threads:[~2022-11-23 11:40 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-23 11:40 [pve-devel] [PATCH storage 1/2] test: bwlimit: fix test description Fiona Ebner
2022-11-23 11:40 ` Fiona Ebner [this message]
2022-11-24  7:29 ` [pve-devel] applied-series: " 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=20221123114025.164565-2-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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal