]> git.proxmox.com Git - pve-storage.git/blobdiff - PVE/Storage/ZFSPlugin.pm
Include new storage function volume_snapshot_list.
[pve-storage.git] / PVE / Storage / ZFSPlugin.pm
index 6ed3dc905071472b9e7103fd1fd332114b454d0c..c7c7ba30025be7118da6119a04f4ea31bb505721 100644 (file)
@@ -51,7 +51,7 @@ my $zfs_get_base = sub {
 sub zfs_request {
     my ($class, $scfg, $timeout, $method, @params) = @_;
 
-    $timeout = PVE::RPCEnvironment::is_worker() ? 60*60 : 10
+    $timeout = PVE::RPCEnvironment->is_worker() ? 60*60 : 10
        if !$timeout;
 
     my $msg = '';
@@ -260,10 +260,13 @@ sub create_base {
 sub clone_image {
     my ($class, $scfg, $storeid, $volname, $vmid, $snap) = @_;
 
-    my $name  = $class->SUPER::clone_image($scfg, $storeid, $volname, $vmid, $snap);
+    my $name = $class->SUPER::clone_image($scfg, $storeid, $volname, $vmid, $snap);
 
-    my $guid = $class->zfs_create_lu($scfg, $name);
-    $class->zfs_add_lun_mapping_entry($scfg, $name, $guid);
+    # get ZFS dataset name from PVE volname
+    my (undef, $clonedname) = $class->parse_volname($name);
+
+    my $guid = $class->zfs_create_lu($scfg, $clonedname);
+    $class->zfs_add_lun_mapping_entry($scfg, $clonedname, $guid);
 
     return $name;
 }
@@ -333,6 +336,13 @@ sub volume_snapshot_rollback {
     $class->zfs_add_lun_mapping_entry($scfg, $volname);
 }
 
+sub volume_send {
+    my ($class, $scfg, $storeid, $volname, $ip, $snap,
+       $incremental_snap, $verbose, $limit, $target_path) = @_;
+
+    die "Volume_send is not implemented for ZFS over iSCSI.\n";
+}
+
 sub volume_has_feature {
     my ($class, $scfg, $feature, $storeid, $volname, $snapname, $running) = @_;
 
@@ -359,6 +369,12 @@ sub volume_has_feature {
     return undef;
 }
 
+sub volume_snapshot_list {
+    my ($class, $scfg, $storeid, $volname, $prefix, $ip) = @_;
+    # return an empty array if dataset does not exist.
+    die "Volume_snapshot_list is not implemented for ZFS over iSCSI.\n";
+}
+
 sub activate_storage {
     my ($class, $storeid, $scfg, $cache) = @_;