[pve-devel] [PATCH 2/3] API2: remove require full parameter for snapshot cloning

Stefan Priebe s.priebe at profihost.ag
Fri Jul 4 10:25:48 CEST 2014


Signed-off-by: Stefan Priebe <s.priebe at profihost.ag>
---
 PVE/API2/Qemu.pm |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm
index 96c9302..1ce9045 100644
--- a/PVE/API2/Qemu.pm
+++ b/PVE/API2/Qemu.pm
@@ -2128,7 +2128,6 @@ __PACKAGE__->register_method({
 		description => "Add the new VM to the specified pool.",
 	    },
             snapname => get_standard_option('pve-snapshot-name', {
- 		requires => 'full',
 		optional => 1,
             }),
 	    storage => get_standard_option('pve-storage-id', {
@@ -2262,10 +2261,14 @@ __PACKAGE__->register_method({
 		    if (PVE::QemuServer::drive_is_cdrom($drive)) {
 			$newconf->{$opt} = $value; # simply copy configuration
 		    } else {
-			if ($param->{full} || !PVE::Storage::volume_is_base($storecfg,  $drive->{file})) {
+			if ($param->{full}) {
 			    die "Full clone feature is not available"
 				if !PVE::Storage::volume_has_feature($storecfg, 'copy', $drive->{file}, $snapname, $running);
 			    $drive->{full} = 1;
+			} else {
+			    # not full means clone instead of copy
+			    die "Linked clone feature is not available"
+				if !PVE::Storage::volume_has_feature($storecfg, 'clone', $drive->{file}, $snapname, $running);
 			}
 			$drives->{$opt} = $drive;
 			push @$vollist, $drive->{file};
-- 
1.7.10.4



More information about the pve-devel mailing list