That way it is automatically called for all plungins.
if ($storeid) {
my $scfg = storage_config($cfg, $storeid);
my $plugin = PVE::Storage::Plugin->lookup($scfg->{type});
if ($storeid) {
my $scfg = storage_config($cfg, $storeid);
my $plugin = PVE::Storage::Plugin->lookup($scfg->{type});
+ $plugin->volume_rollback_is_possible($scfg, $storeid, $volname, $snap);
return $plugin->volume_snapshot_rollback($scfg, $storeid, $volname, $snap);
} elsif ($volid =~ m|^(/.+)$| && -e $volid) {
die "snapshot rollback device is not possible";
return $plugin->volume_snapshot_rollback($scfg, $storeid, $volname, $snap);
} elsif ($volid =~ m|^(/.+)$| && -e $volid) {
die "snapshot rollback device is not possible";
sub volume_snapshot_rollback {
my ($class, $scfg, $storeid, $volname, $snap) = @_;
sub volume_snapshot_rollback {
my ($class, $scfg, $storeid, $volname, $snap) = @_;
- # abort rollback if snapshot is not the latest
- $class->volume_rollback_is_possible($scfg, $storeid, $volname, $snap);
-
$class->zfs_delete_lu($scfg, $volname);
$class->zfs_request($class, $scfg, undef, 'rollback', "$scfg->{pool}/$volname\@$snap");
$class->zfs_delete_lu($scfg, $volname);
$class->zfs_request($class, $scfg, undef, 'rollback', "$scfg->{pool}/$volname\@$snap");
sub volume_snapshot_rollback {
my ($class, $scfg, $storeid, $volname, $snap) = @_;
sub volume_snapshot_rollback {
my ($class, $scfg, $storeid, $volname, $snap) = @_;
- # abort rollback if snapshot is not the latest
- $class->volume_rollback_is_possible($scfg, $storeid, $volname, $snap);
-
zfs_request($class, $scfg, undef, 'rollback', "$scfg->{pool}/$volname\@$snap");
}
zfs_request($class, $scfg, undef, 'rollback', "$scfg->{pool}/$volname\@$snap");
}