[pve-devel] [PATCH container v3 6/8] api: create: get rid of $storage_only_mode variable

Fiona Ebner f.ebner at proxmox.com
Fri Jan 23 15:34:26 CET 2026


The name is rather vague. The variable is set if and only if there are
no mp params specified via the API, so explicitly check for that
instead. This also makes it visible that in the non-restore case, the
result of create_ct_determine_mp_param() does not depend upon
$api_mp_param.

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

New in v3.

 src/PVE/API2/LXC.pm | 19 ++++---------------
 1 file changed, 4 insertions(+), 15 deletions(-)

diff --git a/src/PVE/API2/LXC.pm b/src/PVE/API2/LXC.pm
index f7d5de4..fc278a7 100644
--- a/src/PVE/API2/LXC.pm
+++ b/src/PVE/API2/LXC.pm
@@ -137,28 +137,20 @@ __PACKAGE__->register_method({
 
 my sub create_ct_determine_mp_param {
     my (
-        $storage_cfg,
-        $vmid,
-        $archive,
-        $api_mp_param,
-        $orig_mp_param,
-        $restore,
-        $storage,
-        $storage_only_mode,
+        $storage_cfg, $vmid, $archive, $api_mp_param, $orig_mp_param, $restore, $storage,
         $is_root,
     ) = @_;
 
     my $mp_param;
     my $delayed_mp_param = {};
 
-    if (!$storage_only_mode) {
+    if (scalar(keys $api_mp_param->%*)) {
         $mp_param = $api_mp_param;
         return ($mp_param, $delayed_mp_param);
     }
 
     if (!$restore) {
-        $mp_param = $api_mp_param;
-        $mp_param->{rootfs} = "$storage:4"; # defaults to 4GB
+        $mp_param = { rootfs => "$storage:4" }; # defaults to 4GB
         return ($mp_param, $delayed_mp_param);
     }
 
@@ -437,7 +429,6 @@ __PACKAGE__->register_method({
 
         my $no_disk_param = {};
         my $api_mp_param = {};
-        my $storage_only_mode = 1;
         foreach my $opt (keys %$param) {
             my $value = $param->{$opt};
             if ($opt eq 'rootfs' || $opt =~ m/^mp\d+$/) {
@@ -447,7 +438,6 @@ __PACKAGE__->register_method({
                 } else {
                     $api_mp_param->{$opt} = $value;
                 }
-                $storage_only_mode = 0;
             } elsif ($opt =~ m/^unused\d+$/) {
                 warn "ignoring '$opt', cannot create/restore with unused volume\n";
                 delete $param->{$opt};
@@ -457,7 +447,7 @@ __PACKAGE__->register_method({
         }
 
         die "mount points configured, but 'rootfs' not set - aborting\n"
-            if !$storage_only_mode && !defined($api_mp_param->{rootfs});
+            if scalar(keys $api_mp_param->%*) && !defined($api_mp_param->{rootfs});
 
         # check storage access, activate storage
         PVE::LXC::Config->foreach_volume(
@@ -549,7 +539,6 @@ __PACKAGE__->register_method({
                     $orig_mp_param,
                     $restore,
                     $storage,
-                    $storage_only_mode,
                     $is_root,
                 );
 
-- 
2.47.3





More information about the pve-devel mailing list