]> git.proxmox.com Git - pve-storage.git/commitdiff
plugin : has_feature : clone from base + fix
authorAlexandre Derumier <aderumier@odiso.com>
Thu, 14 Feb 2013 10:05:08 +0000 (11:05 +0100)
committerDietmar Maurer <dietmar@proxmox.com>
Thu, 14 Feb 2013 10:10:23 +0000 (11:10 +0100)
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
PVE/Storage/Plugin.pm

index 462d9e1e21d40d66b8545aadfd46669a10b986d8..445afe759a463525543d8e261e6f8f07e1e6e773 100644 (file)
@@ -683,16 +683,23 @@ sub volume_has_feature {
 
     my $features = {
         snapshot => { current => { qcow2 => 1}, snap => { qcow2 => 1} },
-        clone => { current => {qcow2 => 1, raw => 1, vmdk => 1} },
+        clone => { base => {qcow2 => 1, raw => 1, vmdk => 1} },
     };
 
-    if ($volname =~ m!^(\d+)/(\S+)$!) {
-        my ($vmid, $name) = ($1, $2);
-        my (undef, $format) = parse_name_dir($name);
-       my $snap = $snapname ? 'snap' : 'current';
-       return 1 if defined($features->{$feature}->{$snap}->{$format});
+    my ($vtype, $name, $vmid, $basename, $basevmid, $isBase) =
+       $class->parse_volname($volname);
+
+    my (undef, $format) = parse_name_dir($name);
 
+    my $key = undef;
+    if($snapname){
+        $key = $snapname
+    }else{
+        $key =  $isBase ? 'base' : 'current';
     }
+
+    return 1 if defined($features->{$feature}->{$key}->{$format});
+
     return undef;
 }