From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 701211FF16B for ; Tue, 29 Jul 2025 18:32:15 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 8078218569; Tue, 29 Jul 2025 18:33:38 +0200 (CEST) Mime-Version: 1.0 Date: Tue, 29 Jul 2025 18:33:01 +0200 Message-Id: To: "Proxmox VE development discussion" From: "Max R. Carrara" X-Mailer: aerc 0.18.2-0-ge037c095a049 References: <20250729111557.136012-1-w.bumiller@proxmox.com> <20250729111557.136012-26-w.bumiller@proxmox.com> In-Reply-To: <20250729111557.136012-26-w.bumiller@proxmox.com> X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1753806771708 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.084 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [regressiontest.com] Subject: Re: [pve-devel] [PATCH storage 25/26] update tests X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox VE development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" On Tue Jul 29, 2025 at 1:15 PM CEST, Wolfgang Bumiller wrote: > Signed-off-by: Wolfgang Bumiller > --- There are a couple tests for LVM and ZFS that seem to fail; relevant logs are below. I've also added some comments inline further below where possible. ========== ./run_test_zfspoolplugin.pl pool: test-pool state: ONLINE status: Some supported and requested features are not enabled on the pool. The pool can still be used, but some features are unavailable. action: Enable all features using 'zpool upgrade'. Once this is done, the pool may no longer be accessible by software that does not support the features. See zpool-features(7) for details. config: NAME STATE READ WRITE CKSUM test-pool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 scsi-0QEMU_QEMU_HARDDISK_drive-scsi1 ONLINE 0 0 0 scsi-0QEMU_QEMU_HARDDISK_drive-scsi2 ONLINE 0 0 0 errors: No known data errors Start tests for ZFSPoolPlugin run test1 "volume_size_info" run test2 "volume_resize" run test3 "volume_has_feature" run test4 "volume_snapshot" run test5 "volume_snapshot_delete" ######Ignore Output if no Test5 g: is included###### cannot destroy 'regressiontest/base-100-disk-1@__base__': snapshot has dependent clones use '-R' to destroy the following datasets: ######End Ignore####### run test6 "volume_rollback_is_possible" run test7 "volume_rollback" run test8 "parse_volname" Test8 a: parsing wrong at ./run_test_zfspoolplugin.pl line 1044. Test8 b: parsing wrong at ./run_test_zfspoolplugin.pl line 1067. Test8 c: parsing wrong at ./run_test_zfspoolplugin.pl line 1089. Test8 d: parsing wrong at ./run_test_zfspoolplugin.pl line 1111. Test8 e: parsing wrong at ./run_test_zfspoolplugin.pl line 1133. Test8 f: parsing wrong at ./run_test_zfspoolplugin.pl line 1155. run test9 "parse_volume_id" run test10 "volume_is_base" Use of uninitialized value in numeric eq (==) at ./run_test_zfspoolplugin.pl line 863. Argument "base" isn't numeric in numeric eq (==) at ./run_test_zfspoolplugin.pl line 875. Test10 b: is base at ./run_test_zfspoolplugin.pl line 877. Use of uninitialized value in numeric eq (==) at ./run_test_zfspoolplugin.pl line 887. Use of uninitialized value in numeric eq (==) at ./run_test_zfspoolplugin.pl line 899. Argument "basevol" isn't numeric in numeric eq (==) at ./run_test_zfspoolplugin.pl line 911. Test10 e: is base at ./run_test_zfspoolplugin.pl line 913. Use of uninitialized value in numeric eq (==) at ./run_test_zfspoolplugin.pl line 923. run test11 "volume_is_base" Test11 b at ./run_test_zfspoolplugin.pl line 795. cannot open 'regressiontest/vm-110-disk-0': dataset does not exist Test11 b: command 'zfs list -H -o volsize regressiontest/vm-110-disk-0' failed: exit code 1 Test11 e at ./run_test_zfspoolplugin.pl line 831. cannot open 'regressiontest/subvol-210-disk-0': dataset does not exist Test11 e: command 'zfs list -H -o refquota regressiontest/subvol-210-disk-0' failed: exit code 1 run test12 "vdisk_create_base" run test13 "vdisk_alloc" Test13 a: vdisk_alloc without vtype not allowed anymore Test13 b: volname:zfstank99:vol-vm-112-disk-0 don't match Test13 c: vdisk_alloc without vtype not allowed anymore Test13 d: volname:zfstank99:subvol-ct-113-disk-0 don't match run test14 "vdisk_free" run test15 "template_list and vdisk_list" Test 15 d failed Test 15 g failed Test 15 h failed Test 15 i failed run test16 "activate_storage" run test17 "deactivate_storage" run test18 "scan_zfs" run test19 "path" Test 19 a: owner is not correct: expected 'images' get 'vm-vol' at ./run_test_zfspoolplugin.pl line 77. Test 19 b: owner is not correct: expected 'images' get 'vm-vol' at ./run_test_zfspoolplugin.pl line 107. Test 19 c: owner is not correct: expected 'images' get 'vm-vol' at ./run_test_zfspoolplugin.pl line 137. Test 19 d: owner is not correct: expected 'images' get 'ct-vol' at ./run_test_zfspoolplugin.pl line 167. Test 19 e: owner is not correct: expected 'images' get 'ct-vol' at ./run_test_zfspoolplugin.pl line 197. Test 19 f: owner is not correct: expected 'images' get 'ct-vol' at ./run_test_zfspoolplugin.pl line 227. Stop tests for ZFSPoolPlugin 26 tests failed Time: 14s ========== ./run_test_lvmplugin.pl Start tests for LVMPlugin 8000+0 records in 8000+0 records out 8388608000 bytes (8.4 GB, 7.8 GiB) copied, 4.04047 s, 2.1 GB/s Physical volume "/dev/loop1" successfully created. Volume group "regressiontest" successfully created Logical volume "vm-102-disk-1" created. run test1 "volume_size_info" Logical volume "vm-102-disk-1" successfully removed. Volume group "regressiontest" successfully removed Volume group "regressiontest" successfully created Logical volume "vm-102-disk-1" created. run test2 "volume_resize" Size of logical volume regressiontest/vm-102-disk-1 changed from 1.00 GiB (256 extents) to 2.00 GiB (512 extents). Logical volume regressiontest/vm-102-disk-1 successfully resized. Logical volume "vm-102-disk-1" successfully removed. Volume group "regressiontest" successfully removed Volume group "regressiontest" successfully created Logical volume "vm-102-disk-1" created. run test3 "volume_has_feature" Logical volume "vm-102-disk-1" successfully removed. Volume group "regressiontest" successfully removed Volume group "regressiontest" successfully created Logical volume "vm-102-disk-1" created. run test4 "volume_rollback_is_possible" Logical volume "vm-102-disk-1" successfully removed. Volume group "regressiontest" successfully removed Volume group "regressiontest" successfully created Logical volume "vm-102-disk-1" created. run test5 "parse_volname" Logical volume "vm-102-disk-1" successfully removed. Volume group "regressiontest" successfully removed Volume group "regressiontest" successfully created Logical volume "vm-102-disk-1" created. run test6 "parse_volume_id" Logical volume "vm-102-disk-1" successfully removed. Volume group "regressiontest" successfully removed Volume group "regressiontest" successfully created Logical volume "vm-102-disk-1" created. run test7 "vdisk_alloc" Test7 a: vdisk_alloc without vtype not allowed anymore Logical volume "vol-vm-112-disk-0" created. Test7 b: volname:lvmregression:vol-vm-112-disk-0 don't match Logical volume "vm-102-disk-1" successfully removed. Logical volume "vol-vm-112-disk-0" successfully removed. Volume group "regressiontest" successfully removed Volume group "regressiontest" successfully created Logical volume "vm-102-disk-1" created. run test8 "vdisk_free" Logical volume "vm-102-disk-1" successfully removed. Volume group "regressiontest" successfully removed Volume group "regressiontest" successfully created Logical volume "vm-102-disk-1" created. run test15 "template_list and vdisk_list" Logical volume "vm-102-disk-1" successfully removed. Volume group "regressiontest" successfully removed Volume group "regressiontest" successfully created Logical volume "vm-102-disk-1" created. run test10 "activate_storage" Logical volume "vm-102-disk-1" successfully removed. Volume group "regressiontest" successfully removed Volume group "regressiontest" successfully created Logical volume "vm-102-disk-1" created. run test11 "deactivate_storage" 0 logical volume(s) in volume group "regressiontest" now active Logical volume "vm-102-disk-1" successfully removed. Volume group "regressiontest" successfully removed Volume group "regressiontest" successfully created Logical volume "vm-102-disk-1" created. run test12 "path" Logical volume "vm-102-disk-1" successfully removed. Volume group "regressiontest" successfully removed Labels on physical volume "/dev/loop1" successfully wiped. Stop tests for LVMPlugin 2 tests failed Time: 11s ========== > src/test/list_volumes_test.pm | 73 ++++++++++++++++++++---------- > src/test/parse_volname_test.pm | 34 ++++++++++++-- > src/test/path_to_volume_id_test.pm | 27 +++++++---- > src/test/run_test_lvmplugin.pl | 11 +++-- > src/test/run_test_zfspoolplugin.pl | 45 ++++++++++-------- > 5 files changed, 129 insertions(+), 61 deletions(-) > > diff --git a/src/test/list_volumes_test.pm b/src/test/list_volumes_test.pm > index e528fc3..fcc7beb 100644 > --- a/src/test/list_volumes_test.pm > +++ b/src/test/list_volumes_test.pm > @@ -71,6 +71,8 @@ my $scfg = { > 'rootdir' => 1, > 'vztmpl' => 1, > 'images' => 1, > + 'vm-vol' => 1, > + 'ct-vol' => 1, > 'snippets' => 1, > 'backup' => 1, > }, > @@ -87,9 +89,9 @@ my @tests = ( > description => 'VMID: 16110, VM, qcow2, backup, snippets', > vmid => '16110', > files => [ > - "$storage_dir/images/16110/vm-16110-disk-0.qcow2", > - "$storage_dir/images/16110/vm-16110-disk-1.raw", > - "$storage_dir/images/16110/vm-16110-disk-2.vmdk", > + "$storage_dir/vms/16110/vol-vm-16110-disk-0.qcow2", > + "$storage_dir/vms/16110/vol-vm-16110-disk-1.raw", > + "$storage_dir/vms/16110/vol-vm-16110-disk-2.vmdk", > "$storage_dir/dump/vzdump-qemu-16110-2020_03_30-21_11_40.vma.gz", > "$storage_dir/dump/vzdump-qemu-16110-2020_03_30-21_12_45.vma.lzo", > "$storage_dir/dump/vzdump-qemu-16110-2020_03_30-21_13_55.vma", > @@ -99,34 +101,37 @@ my @tests = ( > ], > expected => [ > { > - 'content' => 'images', > + 'content' => 'vm-vol', > + 'vtype' => 'vm-vol', > 'ctime' => DEFAULT_CTIME, > 'format' => 'qcow2', > 'parent' => undef, > 'size' => DEFAULT_SIZE, > 'used' => DEFAULT_USED, > 'vmid' => '16110', > - 'volid' => 'local:16110/vm-16110-disk-0.qcow2', > + 'volid' => 'local:16110/vol-vm-16110-disk-0.qcow2', > }, > { > - 'content' => 'images', > + 'content' => 'vm-vol', > + 'vtype' => 'vm-vol', > 'ctime' => DEFAULT_CTIME, > 'format' => 'raw', > 'parent' => undef, > 'size' => DEFAULT_SIZE, > 'used' => DEFAULT_USED, > 'vmid' => '16110', > - 'volid' => 'local:16110/vm-16110-disk-1.raw', > + 'volid' => 'local:16110/vol-vm-16110-disk-1.raw', > }, > { > - 'content' => 'images', > + 'content' => 'vm-vol', > + 'vtype' => 'vm-vol', > 'ctime' => DEFAULT_CTIME, > 'format' => 'vmdk', > 'parent' => undef, > 'size' => DEFAULT_SIZE, > 'used' => DEFAULT_USED, > 'vmid' => '16110', > - 'volid' => 'local:16110/vm-16110-disk-2.vmdk', > + 'volid' => 'local:16110/vol-vm-16110-disk-2.vmdk', > }, > { > 'content' => 'backup', > @@ -184,7 +189,8 @@ my @tests = ( > description => 'VMID: 16112, lxc, raw, backup', > vmid => '16112', > files => [ > - "$storage_dir/images/16112/vm-16112-disk-0.raw", > + "$storage_dir/cts/16112/vol-ct-16112-disk-0.raw", > + "$storage_dir/images/16112/vm-16112-disk-1.raw", > "$storage_dir/dump/vzdump-lxc-16112-2020_03_30-21_39_30.tar.lzo", > "$storage_dir/dump/vzdump-lxc-16112-2020_03_30-21_49_30.tar.gz", > "$storage_dir/dump/vzdump-lxc-16112-2020_03_30-21_49_30.tar.zst", > @@ -192,6 +198,17 @@ my @tests = ( > "$storage_dir/dump/vzdump-openvz-16112-2020_03_30-21_39_30.tar.bz2", > ], > expected => [ > + { > + 'content' => 'ct-vol', > + 'vtype' => 'ct-vol', > + 'ctime' => DEFAULT_CTIME, > + 'format' => 'raw', > + 'parent' => undef, > + 'size' => DEFAULT_SIZE, > + 'used' => DEFAULT_USED, > + 'vmid' => '16112', > + 'volid' => 'local:16112/vol-ct-16112-disk-0.raw', > + }, > { > 'content' => 'rootdir', > 'ctime' => DEFAULT_CTIME, > @@ -200,7 +217,7 @@ my @tests = ( > 'size' => DEFAULT_SIZE, > 'used' => DEFAULT_USED, > 'vmid' => '16112', > - 'volid' => 'local:16112/vm-16112-disk-0.raw', > + 'volid' => 'local:16112/vm-16112-disk-1.raw', > }, > { > 'content' => 'backup', > @@ -254,7 +271,7 @@ my @tests = ( > vmid => '16114', > files => [ > "$storage_dir/images/16114/vm-16114-disk-0.qcow2", > - "$storage_dir/images/16114/vm-16114-disk-1.qcow2", > + "$storage_dir/vms/16114/vol-vm-16114-disk-1.qcow2", > ], > parent => [ > "../9004/base-9004-disk-0.qcow2", "../9004/base-9004-disk-1.qcow2", > @@ -271,14 +288,15 @@ my @tests = ( > 'volid' => 'local:9004/base-9004-disk-0.qcow2/16114/vm-16114-disk-0.qcow2', > }, > { > - 'content' => 'images', > + 'content' => 'vm-vol', > + 'vtype' => 'vm-vol', > 'ctime' => DEFAULT_CTIME, > 'format' => 'qcow2', > 'parent' => '../9004/base-9004-disk-1.qcow2', > 'size' => DEFAULT_SIZE, > 'used' => DEFAULT_USED, > 'vmid' => '16114', > - 'volid' => 'local:9004/base-9004-disk-1.qcow2/16114/vm-16114-disk-1.qcow2', > + 'volid' => 'local:9004/base-9004-disk-1.qcow2/16114/vol-vm-16114-disk-1.qcow2', > }, > ], > }, > @@ -287,7 +305,7 @@ my @tests = ( > vmid => '9004', > files => [ > "$storage_dir/images/9004/base-9004-disk-0.qcow2", > - "$storage_dir/images/9004/base-9004-disk-1.qcow2", > + "$storage_dir/vms/9004/base-vol-vm-9004-disk-1.qcow2", > ], > expected => [ > { > @@ -301,14 +319,15 @@ my @tests = ( > 'volid' => 'local:9004/base-9004-disk-0.qcow2', > }, > { > - 'content' => 'images', > + 'content' => 'vm-vol', > + 'vtype' => 'vm-vol', > 'ctime' => DEFAULT_CTIME, > 'format' => 'qcow2', > 'parent' => undef, > 'size' => DEFAULT_SIZE, > 'used' => DEFAULT_USED, > 'vmid' => '9004', > - 'volid' => 'local:9004/base-9004-disk-1.qcow2', > + 'volid' => 'local:9004/base-vol-vm-9004-disk-1.qcow2', > }, > ], > }, > @@ -428,21 +447,22 @@ my @tests = ( > #"$storage_dir/images/ssss/base-4321-disk-0.qcow2/1234/vm-1234-disk-0.qcow2", > vmid => undef, > files => [ > - "$storage_dir/images/1234/vm-1234-disk-0.qcow2", > + "$storage_dir/vms/1234/vol-vm-1234-disk-0.qcow2", > ], > parent => [ > - "../ssss/base-4321-disk-0.qcow2", > + "../ssss/base-vol-vm-4321-disk-0.qcow2", > ], > expected => [ > { > - 'content' => 'images', > + 'content' => 'vm-vol', > + 'vtype' => 'vm-vol', > 'ctime' => DEFAULT_CTIME, > 'format' => 'qcow2', > - 'parent' => '../ssss/base-4321-disk-0.qcow2', > + 'parent' => '../ssss/base-vol-vm-4321-disk-0.qcow2', > 'size' => DEFAULT_SIZE, > 'used' => DEFAULT_USED, > 'vmid' => '1234', > - 'volid' => 'local:1234/vm-1234-disk-0.qcow2', > + 'volid' => 'local:1234/vol-vm-1234-disk-0.qcow2', > }, > ], > }, > @@ -521,7 +541,7 @@ plan tests => $plan + 1; > > { > my $sid = 'local'; > - my $types = ['rootdir', 'images', 'vztmpl', 'iso', 'backup', 'snippets']; > + my $types = ['images', 'rootdir', 'vm-vol', 'ct-vol', 'vztmpl', 'iso', 'backup', 'snippets']; > my @suffixes = ('qcow2', 'raw', 'vmdk', 'vhdx'); > > # run through test cases > @@ -555,6 +575,13 @@ plan tests => $plan + 1; > eval { $got = PVE::Storage::Plugin->list_volumes($sid, $scfg, $vmid, $types) }; > $got = $@ if $@; > > + sub sort_by_volid { > + my ($data) = @_; > + return [sort { $a->{volid} cmp $b->{volid} } @$data]; > + } > + > + $got = sort_by_volid($got) if ref($got) && ref($got) eq 'ARRAY'; > + $expected = sort_by_volid($expected); > is_deeply($got, $expected, $description) || diag(explain($got)); > > # clean up after each test case, otherwise > diff --git a/src/test/parse_volname_test.pm b/src/test/parse_volname_test.pm > index 0d077a9..297e280 100644 > --- a/src/test/parse_volname_test.pm > +++ b/src/test/parse_volname_test.pm > @@ -20,6 +20,19 @@ my $tests = [ > # > { > description => 'VM disk image, linked, qcow2, vm- as base-', > + volname => "$vmid/vol-vm-$vmid-disk-0.qcow2/$vmid/vol-vm-$vmid-disk-0.qcow2", > + expected => [ > + 'vm-vol', > + "vol-vm-$vmid-disk-0.qcow2", > + "$vmid", > + "vol-vm-$vmid-disk-0.qcow2", > + "$vmid", > + !!0, > + 'qcow2', > + ], > + }, > + { > + description => 'VM disk image, legacy, linked, qcow2, vm- as base-', > volname => "$vmid/vm-$vmid-disk-0.qcow2/$vmid/vm-$vmid-disk-0.qcow2", > expected => [ > 'images', > @@ -27,11 +40,21 @@ my $tests = [ > "$vmid", > "vm-$vmid-disk-0.qcow2", > "$vmid", > - undef, > + !!0, > 'qcow2', > ], > }, > # > + # Container volumes > + # > + { > + description => 'CT rootdir image', > + volname => "$vmid/vol-ct-$vmid-disk-0.raw", > + expected => [ > + 'ct-vol', "vol-ct-$vmid-disk-0.raw", "$vmid", undef, undef, !!0, 'raw', > + ], > + }, > + # > # iso > # > { > @@ -94,7 +117,7 @@ my $tests = [ > description => 'Container rootdir, subvol', > volname => "$vmid/subvol-$vmid-disk-0.subvol", > expected => > - ['images', "subvol-$vmid-disk-0.subvol", "$vmid", undef, undef, undef, 'subvol'], > + ['images', "subvol-$vmid-disk-0.subvol", "$vmid", undef, undef, !!0, 'subvol'], > }, > { > description => 'Backup archive, no virtualization type', > @@ -209,7 +232,7 @@ foreach my $s (@$disk_suffix) { > description => "VM disk image, $s", > volname => "$vmid/vm-$vmid-disk-1.$s", > expected => [ > - 'images', "vm-$vmid-disk-1.$s", "$vmid", undef, undef, undef, "$s", > + 'images', "vm-$vmid-disk-1.$s", "$vmid", undef, undef, !!0, "$s", > ], > }, > { > @@ -221,7 +244,7 @@ foreach my $s (@$disk_suffix) { > "$vmid", > "base-$vmid-disk-0.$s", > "$vmid", > - undef, > + !!0, > "$s", > ], > }, > @@ -229,7 +252,7 @@ foreach my $s (@$disk_suffix) { > description => "VM disk image, base, $s", > volname => "$vmid/base-$vmid-disk-0.$s", > expected => [ > - 'images', "base-$vmid-disk-0.$s", "$vmid", undef, undef, 'base-', "$s", > + 'images', "base-$vmid-disk-0.$s", "$vmid", undef, undef, !!1, "$s", > ], > }, > ); > @@ -295,6 +318,7 @@ plan tests => scalar @$tests + 1; > > my $seen_vtype; > my $vtype_subdirs = { map { $_ => 1 } keys %{ PVE::Storage::Plugin::get_vtype_subdirs() } }; > +delete $vtype_subdirs->{rootdir}; # this one cannot be observed, it maps to the 'ct-vol' type. > > foreach my $t (@$tests) { > my $description = $t->{description}; > diff --git a/src/test/path_to_volume_id_test.pm b/src/test/path_to_volume_id_test.pm > index ab7e276..bb2d47f 100644 > --- a/src/test/path_to_volume_id_test.pm > +++ b/src/test/path_to_volume_id_test.pm > @@ -25,8 +25,9 @@ my $scfg = { > 'maxfiles' => 0, > 'content' => { > 'snippets' => 1, > - 'rootdir' => 1, > 'images' => 1, > + 'vm-vol' => 1, > + 'ct-vol' => 1, > 'iso' => 1, > 'backup' => 1, > 'vztmpl' => 1, > @@ -44,24 +45,31 @@ my $scfg = { > # expected => the result that path_to_volume_id should return > my @tests = ( > { > - description => 'Image, qcow2', > + description => 'Image, qcow2, legacy naming', > volname => "$storage_dir/images/16110/vm-16110-disk-0.qcow2", > expected => [ > 'images', 'local:16110/vm-16110-disk-0.qcow2', > ], > }, > + { > + description => 'Image, qcow2', > + volname => "$storage_dir/vms/16110/vol-vm-16110-disk-0.qcow2", > + expected => [ > + 'vm-vol', 'local:16110/vol-vm-16110-disk-0.qcow2', > + ], > + }, > { > description => 'Image, raw', > - volname => "$storage_dir/images/16112/vm-16112-disk-0.raw", > + volname => "$storage_dir/vms/16112/vol-vm-16112-disk-0.raw", > expected => [ > - 'images', 'local:16112/vm-16112-disk-0.raw', > + 'vm-vol', 'local:16112/vol-vm-16112-disk-0.raw', > ], > }, > { > description => 'Image template, qcow2', > - volname => "$storage_dir/images/9004/base-9004-disk-0.qcow2", > + volname => "$storage_dir/vms/9004/base-vol-vm-9004-disk-0.qcow2", > expected => [ > - 'images', 'local:9004/base-9004-disk-0.qcow2', > + 'vm-vol', 'local:9004/base-vol-vm-9004-disk-0.qcow2', > ], > }, > > @@ -141,14 +149,14 @@ my @tests = ( > description => 'Rootdir, folder subvol, legacy naming', > volname => "$storage_dir/images/1234/subvol-1234-disk-0.subvol/", # fileparse needs / at the end > expected => [ > - 'ct-vol', 'local:1234/subvol-1234-disk-0.subvol', > + 'images', 'local:1234/subvol-1234-disk-0.subvol', > ], > }, > { > description => 'Rootdir, folder subvol', > - volname => "$storage_dir/images/1234/subvol-1234-disk-0.subvol/", # fileparse needs / at the end > + volname => "$storage_dir/cts/1234/vol-ct-1234-disk-0.subvol/", # fileparse needs / at the end > expected => [ > - 'images', 'local:1234/subvol-1234-disk-0.subvol', > + 'ct-vol', 'local:1234/vol-ct-1234-disk-0.subvol', > ], > }, > { > @@ -239,6 +247,7 @@ plan tests => scalar @tests + 1; > > my $seen_vtype; > my $vtype_subdirs = { map { $_ => 1 } keys %{ PVE::Storage::Plugin::get_vtype_subdirs() } }; > +delete $vtype_subdirs->{rootdir}; # this one cannot be observed, it maps to the 'ct-vol' type. > > foreach my $tt (@tests) { > my $file = $tt->{volname}; > diff --git a/src/test/run_test_lvmplugin.pl b/src/test/run_test_lvmplugin.pl > index e87a3de..92e8d6e 100755 > --- a/src/test/run_test_lvmplugin.pl > +++ b/src/test/run_test_lvmplugin.pl > @@ -159,7 +159,7 @@ my $test7 = sub { > > eval { > my $tmp_volid = > - PVE::Storage::vdisk_alloc($cfg, $storagename, "112", "raw", undef, 1024 * 1024); > + PVE::Storage::vdisk_alloc($cfg, $storagename, "112", "raw", undef, 1024 * 1024, undef); ^ Assuming that this should be "images" instead of undef above, since vdisk_alloc now throws when undef is passed. Should probably also add a test that expects `vdisk_alloc()` to throw when undef is passed. > > if ($tmp_volid ne "$storagename:vm-112-disk-0") { > die "volname:$tmp_volid don't match\n"; > @@ -186,15 +186,16 @@ my $test7 = sub { > } > > eval { > - my $tmp_volid = > - PVE::Storage::vdisk_alloc($cfg, $storagename, "112", "raw", undef, 2048 * 1024); > + my $tmp_volid = PVE::Storage::vdisk_alloc( > + $cfg, $storagename, "112", "raw", undef, 2048 * 1024, 'vm-vol', > + ); > > - if ($tmp_volid ne "$storagename:vm-112-disk-1") { > + if ($tmp_volid ne "$storagename:vol-vm-112-disk-1") { > die "volname:$tmp_volid don't match\n"; > } ^ This here also trips up; see the following output: run test7 "vdisk_alloc" Logical volume "vm-112-disk-0" created. Logical volume "vol-vm-112-disk-2" created. Test7 b: volname:lvmregression:vol-vm-112-disk-2 don't match Logical volume "vm-102-disk-1" successfully removed. Logical volume "vm-112-disk-0" successfully removed. Logical volume "vol-vm-112-disk-2" successfully removed. Volume group "regressiontest" successfully removed Haven't fully investigated yet, but at a quick glance this seems related to the changes to `my $get_vm_disk_number = sub { ... }` and `get_next_vm_diskname()` done in patch 17. > eval { > run_command( > - "lvs --noheadings -o lv_size $vgname/vm-112-disk-1", > + "lvs --noheadings -o lv_size $vgname/vol-vm-112-disk-1", > outfunc => sub { > my $tmp = shift; > if ($tmp !~ m/2\.00g/) { > diff --git a/src/test/run_test_zfspoolplugin.pl b/src/test/run_test_zfspoolplugin.pl > index 9bd70a8..99ab6e2 100755 > --- a/src/test/run_test_zfspoolplugin.pl > +++ b/src/test/run_test_zfspoolplugin.pl > @@ -580,7 +580,7 @@ my $test13 = sub { > > eval { > my $tmp_volid = > - PVE::Storage::vdisk_alloc($cfg, $storagename, "112", "raw", undef, 1024 * 1024); > + PVE::Storage::vdisk_alloc($cfg, $storagename, "112", "raw", undef, 1024 * 1024, undef); ^ Trips up; assuming this also takes "images" instead of undef due to the changes made to `vdisk_alloc()`. > > if ($tmp_volid ne "$storagename:vm-112-disk-0") { > die "volname:$tmp_volid don't match\n"; > @@ -607,18 +607,19 @@ my $test13 = sub { > } > > eval { > - my $tmp_volid = > - PVE::Storage::vdisk_alloc($cfg, $storagename, "112", "raw", undef, 2048 * 1024); > + my $tmp_volid = PVE::Storage::vdisk_alloc( > + $cfg, $storagename, "112", "raw", undef, 2048 * 1024, 'vm-vol', > + ); > > - if ($tmp_volid ne "$storagename:vm-112-disk-1") { > + if ($tmp_volid ne "$storagename:vol-vm-112-disk-1") { > die "volname:$tmp_volid don't match\n"; ^ Also trips up; probably due to the changes related to disk-number fetching as mentioned above. > } > eval { > run_command( > - "zfs get -H volsize $zpath\/vm-112-disk-1", > + "zfs get -H volsize $zpath\/vol-vm-112-disk-1", > outfunc => sub { > my $tmp = shift; > - if ($tmp !~ m/^$zpath\/vm-112-disk-1.*volsize.*2G.*$/) { > + if ($tmp !~ m/^$zpath\/vol-vm-112-disk-1.*volsize.*2G.*$/) { > die "size don't match\n"; > } > }, > @@ -635,8 +636,9 @@ my $test13 = sub { > } > > eval { > - my $tmp_volid = > - PVE::Storage::vdisk_alloc($cfg, $storagename, "113", "subvol", undef, 1024 * 1024); > + my $tmp_volid = PVE::Storage::vdisk_alloc( > + $cfg, $storagename, "113", "subvol", undef, 1024 * 1024, undef, > + ); ^ Trips up as well; see above. > > if ($tmp_volid ne "$storagename:subvol-113-disk-0") { > die "volname:$tmp_volid don't match\n"; > @@ -663,18 +665,19 @@ my $test13 = sub { > } > > eval { > - my $tmp_volid = > - PVE::Storage::vdisk_alloc($cfg, $storagename, "113", "subvol", undef, 2048 * 1024); > + my $tmp_volid = PVE::Storage::vdisk_alloc( > + $cfg, $storagename, "113", "subvol", undef, 2048 * 1024, 'ct-vol', > + ); > > - if ($tmp_volid ne "$storagename:subvol-113-disk-1") { > + if ($tmp_volid ne "$storagename:subvol-ct-113-disk-1") { > die "volname:$tmp_volid don't match\n"; ^ Trips up as well; see above. > } > eval { > run_command( > - "zfs get -H refquota $zpath\/subvol-113-disk-1", > + "zfs get -H refquota $zpath\/subvol-ct-113-disk-1", > outfunc => sub { > my $tmp = shift; > - if ($tmp !~ m/^$zpath\/subvol-113-disk-1.*refquota.*G.*$/) { > + if ($tmp !~ m/^$zpath\/subvol-ct-113-disk-1.*refquota.*G.*$/) { > die "size don't match\n"; > } > }, > @@ -778,7 +781,7 @@ my $test11 = sub { ^ Bunch of things for this test fail; at a quick glance this also seems related to the changes to `my $get_vm_disk_number = sub { ... }` and `get_next_vm_diskname()` done in patch 17. > > print "\nrun test11 \"volume_is_base\"\n"; > > - eval { PVE::Storage::vdisk_clone($cfg, "$storagename:$vmdisk", 110); }; > + eval { PVE::Storage::vdisk_clone($cfg, "$storagename:$vmdisk", 110, undef, undef); }; > if (!$@) { > $count++; > warn "Test11 a: clone_image only works on base images"; > @@ -786,7 +789,7 @@ my $test11 = sub { > > eval { > if ("$storagename:$vmbase\/vm-110-disk-0" ne > - PVE::Storage::vdisk_clone($cfg, "$storagename:$vmbase", 110, '__base__') > + PVE::Storage::vdisk_clone($cfg, "$storagename:$vmbase", 110, '__base__', undef) > ) { > $count++; > warn "Test11 b"; > @@ -806,13 +809,15 @@ my $test11 = sub { > warn "Test11 b: $@"; > } > > - eval { PVE::Storage::vdisk_clone($cfg, "$storagename:$vmbase\/$vmlinked", 111); }; > + eval { > + PVE::Storage::vdisk_clone($cfg, "$storagename:$vmbase\/$vmlinked", 111, undef, undef); > + }; > if (!$@) { > $count++; > warn "Test11 c: clone_image only works on base images"; > } > > - eval { PVE::Storage::vdisk_clone($cfg, "$storagename:$ctdisk", 110); }; > + eval { PVE::Storage::vdisk_clone($cfg, "$storagename:$ctdisk", 110, undef, undef); }; > if (!$@) { > $count++; > warn "Test11 d: clone_image only works on base images"; > @@ -820,7 +825,7 @@ my $test11 = sub { > > eval { > if ("$storagename:$ctbase\/subvol-210-disk-0" ne > - PVE::Storage::vdisk_clone($cfg, "$storagename:$ctbase", 210, '__base__') > + PVE::Storage::vdisk_clone($cfg, "$storagename:$ctbase", 210, '__base__', undef) > ) { > $count++; > warn "Test11 e"; > @@ -840,7 +845,9 @@ my $test11 = sub { > warn "Test11 e: $@"; > } > > - eval { PVE::Storage::vdisk_clone($cfg, "$storagename:$ctbase\/$ctlinked", 211); }; > + eval { > + PVE::Storage::vdisk_clone($cfg, "$storagename:$ctbase\/$ctlinked", 211, undef, undef); > + }; > if (!$@) { > $count++; > warn "Test11 f: clone_image only works on base images"; _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel