[pve-devel] [PATCH 24/44] sheepdog : has_feature : clone base

Alexandre Derumier aderumier at odiso.com
Thu Feb 14 11:05:10 CET 2013


Signed-off-by: Alexandre Derumier <aderumier at odiso.com>
---
 PVE/Storage/SheepdogPlugin.pm |   16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/PVE/Storage/SheepdogPlugin.pm b/PVE/Storage/SheepdogPlugin.pm
index ae6a837..14875a9 100644
--- a/PVE/Storage/SheepdogPlugin.pm
+++ b/PVE/Storage/SheepdogPlugin.pm
@@ -405,13 +405,21 @@ sub volume_snapshot_delete {
 sub volume_has_feature {
     my ($class, $scfg, $feature, $storeid, $volname, $snapname, $running) = @_;
 
-    my $features = {
+   my $features = {
 	snapshot => { current => 1, snap => 1},
-	clone => { snap => 1},
+	clone => { base => 1},
     };
 
-    my $snap = $snapname ? 'snap' : 'current';
-    return 1 if $features->{$feature}->{$snap};
+    my ($vtype, $name, $vmid, $basename, $basevmid, $isBase) =
+        $class->parse_volname($volname);
+
+    my $key = undef;
+    if($snapname){
+	$key = $snapname
+    }else{
+	$key =  $isBase ? 'base' : 'current';
+    }
+    return 1 if $features->{$feature}->{$key};
 
     return undef;
 }
-- 
1.7.10.4




More information about the pve-devel mailing list