return $plugin->volume_snapshot_info($scfg, $storeid, $volname);
}
-sub volume_snapshot_list {
- my ($cfg, $volid) = @_;
-
- my ($storeid, $volname) = parse_volume_id($volid, 1);
- if ($storeid) {
- my $scfg = storage_config($cfg, $storeid);
- my $plugin = PVE::Storage::Plugin->lookup($scfg->{type});
- return $plugin->volume_snapshot_list($scfg, $storeid, $volname);
- } elsif ($volid =~ m|^(/.+)$| && -e $volid) {
- die "send file/device '$volid' is not possible\n";
- } else {
- die "unable to parse volume ID '$volid'\n";
- }
- # return an empty array if dataset does not exist.
-}
-
sub get_image_dir {
my ($cfg, $storeid, $vmid) = @_;
die "volume_snapshot_info is not implemented for $class";
}
-sub volume_snapshot_list {
- my ($class, $scfg, $storeid, $volname) = @_;
-
- # implement in subclass
- die "Volume_snapshot_list is not implemented for $class";
-
- # return an empty array if dataset does not exist.
-}
-
sub activate_storage {
my ($class, $storeid, $scfg, $cache) = @_;
return undef;
}
-sub volume_snapshot_list {
- my ($class, $scfg, $storeid, $volname) = @_;
- # 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) = @_;
return $info;
}
-sub volume_snapshot_list {
- my ($class, $scfg, $storeid, $volname) = @_;
-
- my $snaps = [];
- # return an empty array if dataset does not exist.
- eval { $snaps = $class->zfs_get_sorted_snapshot_list($scfg, $volname, ['-S', 'name']); };
- return $snaps;
-}
-
my sub dataset_mounted_heuristic {
my ($dataset) = @_;