]> git.proxmox.com Git - pve-storage.git/blobdiff - PVE/Storage/LvmThinPlugin.pm
pbs: allow setting up a master key
[pve-storage.git] / PVE / Storage / LvmThinPlugin.pm
index aafc202c043615852e1dbd9b7c2ebd0681914a12..c9e127ce0cb5a170f991f8704dc3a9660c54e977 100644 (file)
@@ -95,9 +95,7 @@ sub alloc_image {
 
     die "no such volume group '$vg'\n" if !defined ($vgs->{$vg});
 
-    my $lvs = PVE::Storage::LVMPlugin::lvm_list_volumes($vg);
-
-    $name = PVE::Storage::LVMPlugin::lvm_find_free_diskname($lvs, $vg, $storeid, $vmid, $scfg)
+    $name = $class->find_free_diskname($storeid, $scfg, $vmid)
        if !$name;
 
     my $cmd = ['/sbin/lvcreate', '-aly', '-V', "${size}k", '--name', $name,
@@ -119,7 +117,7 @@ sub free_image {
 
        # remove all volume snapshots first
        foreach my $lv (keys %$dat) {
-           next if $lv !~ m/^snap_${volname}_(\w+)$/;
+           next if $lv !~ m/^snap_${volname}_${PVE::JSONSchema::CONFIGID_RE}$/;
            my $cmd = ['/sbin/lvremove', '-f', "$vg/$lv"];
            run_command($cmd, errmsg => "lvremove snapshot '$vg/$lv' error");
        }
@@ -167,6 +165,7 @@ sub list_images {
 
            push @$res, {
                volid => $volid, format => 'raw', size => $info->{lv_size}, vmid => $owner,
+               ctime => $info->{ctime},
            };
        }
     }
@@ -268,9 +267,7 @@ sub clone_image {
        $lv = "$vg/$volname";
     }
 
-    my $lvs = PVE::Storage::LVMPlugin::lvm_list_volumes($vg);
-
-    my $name =  PVE::Storage::LVMPlugin::lvm_find_free_diskname($lvs, $vg, $storeid, $vmid, $scfg);
+    my $name = $class->find_free_diskname($storeid, $scfg, $vmid);
 
     my $cmd = ['/sbin/lvcreate', '-n', $name, '-prw', '-kn', '-s', $lv];
     run_command($cmd, errmsg => "clone image '$lv' error");