by introducing a parameter $opts, which should contain 'include_<TYPE>'-flags. Also added @param and removed the '__'-prefix for future use from outside the module.
Signed-off-by: Fabian Ebner <f.eb...@proxmox.com> --- PVE/AbstractConfig.pm | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/PVE/AbstractConfig.pm b/PVE/AbstractConfig.pm index 5c449f6..9ce3d12 100644 --- a/PVE/AbstractConfig.pm +++ b/PVE/AbstractConfig.pm @@ -501,9 +501,12 @@ sub __snapshot_rollback_get_unused { die "abstract method - implement me\n"; } -# Iterate over all configured volumes, calling $func for each key/value pair. -sub __snapshot_foreach_volume { - my ($class, $conf, $func) = @_; +# Iterate over all configured volumes, calling $func for each key/value pair +# with additional parameters @param. +# By default unused volumes as well as special volumes like vmstate are excluded. +# They can be included in the iteration by setting $opts->{include_TYPE} +sub snapshot_foreach_volume { + my ($class, $conf, $opts, $func, @param) = @_; die "abstract method - implement me\n"; } @@ -653,7 +656,7 @@ sub snapshot_create { $class->__snapshot_create_vol_snapshots_hook($vmid, $snap, $running, "before"); - $class->__snapshot_foreach_volume($snap, sub { + $class->snapshot_foreach_volume($snap, undef, sub { my ($vs, $volume) = @_; $class->__snapshot_create_vol_snapshot($vmid, $vs, $volume, $snapname); @@ -745,7 +748,7 @@ sub snapshot_delete { }; # now remove all volume snapshots - $class->__snapshot_foreach_volume($snap, sub { + $class->snapshot_foreach_volume($snap, undef, sub { my ($vs, $volume) = @_; return if $snapname eq 'vzdump' && $vs ne 'rootfs' && !$volume->{backup}; @@ -819,7 +822,7 @@ sub snapshot_rollback { my $snap = &$get_snapshot_config(); - $class->__snapshot_foreach_volume($snap, sub { + $class->snapshot_foreach_volume($snap, undef, sub { my ($vs, $volume) = @_; $class->__snapshot_rollback_vol_possible($volume, $snapname); @@ -872,7 +875,7 @@ sub snapshot_rollback { $class->lock_config($vmid, $updatefn); - $class->__snapshot_foreach_volume($snap, sub { + $class->snapshot_foreach_volume($snap, undef, sub { my ($vs, $volume) = @_; $class->__snapshot_rollback_vol_rollback($volume, $snapname); -- 2.20.1 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel