[pve-devel] [PATCH] Storage: add methode

Daniel Hunsaker danhunsaker at gmail.com
Wed Feb 11 21:52:31 CET 2015


Indeed.  It's also spelled entirely without the 'l' in PVE/Storage/Plugin.pm
and PVE/Storage/ZFSPoolPlugin.pm, which is probably not intended.

On Wed Feb 11 2015 at 12:31:11 PM Alexandre DERUMIER <aderumier at odiso.com>
wrote:

> Hi,
>
> I think the english word should be "volume_rollback_is_possible" , not
> "volume_rollback_is_possibel"
>
>
> ----- Mail original -----
> De: "Wolfgang Link" <w.link at proxmox.com>
> À: "pve-devel" <pve-devel at pve.proxmox.com>
> Envoyé: Mercredi 11 Février 2015 13:33:15
> Objet: [pve-devel] [PATCH] Storage: add methode
>
> add methode volume_rollback_is_possibel and refactor
> Improve error handling
> If snapshot is not revetable catch it before vm will lock and shutdown.
> This is the case if zfs has an younger snapshot.
>
> Signed-off-by: Wolfgang Link <w.link at proxmox.com>
> ---
> PVE/Storage.pm | 19 +++++++++++++++----
> PVE/Storage/Plugin.pm | 6 ++++++
> PVE/Storage/ZFSPlugin.pm | 6 ------
> PVE/Storage/ZFSPoolPlugin.pm | 11 ++++++++---
> 4 files changed, 29 insertions(+), 13 deletions(-)
>
> diff --git a/PVE/Storage.pm b/PVE/Storage.pm
> index 8711710..c4b9a68 100755
> --- a/PVE/Storage.pm
> +++ b/PVE/Storage.pm
> @@ -144,6 +144,21 @@ sub volume_resize {
> }
> }
>
> +sub volume_rollback_is_possibel {
> + my ($cfg, $volid, $snap) = @_;
> +
> + 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_rollback_is_possibe($scfg, $storeid, $volname,
> $snap);
> + } elsif ($volid =~ m|^(/.+)$| && -e $volid) {
> + die "snapshot rollback device is not possible";
> + } else {
> + die "can't snapshot";
> + }
> +}
> +
> sub volume_snapshot {
> my ($cfg, $volid, $snap, $running) = @_;
>
> @@ -167,10 +182,6 @@ sub volume_snapshot_rollback {
> my $scfg = storage_config($cfg, $storeid);
> my $plugin = PVE::Storage::Plugin->lookup($scfg->{type});
> return $plugin->volume_snapshot_rollback($scfg, $storeid, $volname,
> $snap);
> - } elsif ($volid =~ m|^(/.+)$| && -e $volid) {
> - die "snapshot rollback device is not possible";
> - } else {
> - die "can't snapshot";
> }
> }
>
> diff --git a/PVE/Storage/Plugin.pm b/PVE/Storage/Plugin.pm
> index 15c23d4..4549f9f 100644
> --- a/PVE/Storage/Plugin.pm
> +++ b/PVE/Storage/Plugin.pm
> @@ -656,6 +656,12 @@ sub volume_snapshot {
> return undef;
> }
>
> +sub volume_rollback_is_possibe {
> + my ($class, $scfg, $storeid, $volname, $snap) = @_;
> +
> + return 1;
> +}
> +
> sub volume_snapshot_rollback {
> my ($class, $scfg, $storeid, $volname, $snap) = @_;
>
> diff --git a/PVE/Storage/ZFSPlugin.pm b/PVE/Storage/ZFSPlugin.pm
> index 77394b9..f020985 100644
> --- a/PVE/Storage/ZFSPlugin.pm
> +++ b/PVE/Storage/ZFSPlugin.pm
> @@ -310,12 +310,6 @@ sub volume_resize {
> sub volume_snapshot_rollback {
> my ($class, $scfg, $storeid, $volname, $snap) = @_;
>
> - # abort rollback if snapshot is not the latest
> - my $recentsnap = $class->zfs_get_latest_snapshot($scfg, $volname);
> - if ($snap ne $recentsnap) {
> - die "cannot rollback, more recent snapshots exist\n";
> - }
> -
> $class->zfs_delete_lu($scfg, $volname);
>
> $class->zfs_request($class, $scfg, undef, 'rollback',
> "$scfg->{pool}/$volname\@$snap");
> diff --git a/PVE/Storage/ZFSPoolPlugin.pm b/PVE/Storage/ZFSPoolPlugin.pm
> index 754f29f..0d38012 100644
> --- a/PVE/Storage/ZFSPoolPlugin.pm
> +++ b/PVE/Storage/ZFSPoolPlugin.pm
> @@ -411,13 +411,18 @@ sub volume_snapshot_delete {
> sub volume_snapshot_rollback {
> my ($class, $scfg, $storeid, $volname, $snap) = @_;
>
> - # abort rollback if snapshot is not the latest
> + zfs_request($class, $scfg, undef, 'rollback', "$scfg->{pool}/$volname\@$
> snap");
> +}
> +
> +sub volume_rollback_is_possibe {
> + my ($class, $scfg, $storeid, $volname, $snap) = @_;
> +
> my $recentsnap = $class->zfs_get_latest_snapshot($scfg, $volname);
> if ($snap ne $recentsnap) {
> - die "cannot rollback, more recent snapshots exist\n";
> + die "cannot rollback, more recent snapshots exist\n";
> }
>
> - zfs_request($class, $scfg, undef, 'rollback', "$scfg->{pool}/$volname\@$
> snap");
> + return 1;
> }
>
> sub activate_storage {
> --
> 1.7.10.4
>
>
> _______________________________________________
> pve-devel mailing list
> pve-devel at pve.proxmox.com
> http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
> _______________________________________________
> pve-devel mailing list
> pve-devel at pve.proxmox.com
> http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.proxmox.com/pipermail/pve-devel/attachments/20150211/81f4a578/attachment.htm>


More information about the pve-devel mailing list