From 392f8b5dff4f0a7d682cba265d65b58eee1ec541 Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Tue, 13 Jun 2017 06:47:05 +0200 Subject: [PATCH] PVE::QemuServer::foreach_volid - pass $attr hash to callback That way we can pass more informations, i.e. the 'replicate' attribute. --- PVE/QemuServer.pm | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index 0efab217..758b56ac 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -2776,24 +2776,28 @@ sub foreach_volid { my $volhash = {}; my $test_volid = sub { - my ($volid, $is_cdrom) = @_; + my ($volid, $is_cdrom, $replicate) = @_; return if !$volid; - $volhash->{$volid} = $is_cdrom || 0; + $volhash->{$volid}->{cdrom} //= 1; + $volhash->{$volid}->{cdrom} = 0 if !$is_cdrom; + + $volhash->{$volid}->{replicate} //= 0; + $volhash->{$volid}->{replicate} = 1 if $replicate; }; foreach_drive($conf, sub { my ($ds, $drive) = @_; - &$test_volid($drive->{file}, drive_is_cdrom($drive)); + &$test_volid($drive->{file}, drive_is_cdrom($drive), $drive->{replicate} // 1); }); foreach my $snapname (keys %{$conf->{snapshots}}) { my $snap = $conf->{snapshots}->{$snapname}; - &$test_volid($snap->{vmstate}, 0); + &$test_volid($snap->{vmstate}, 0, 1); foreach_drive($snap, sub { my ($ds, $drive) = @_; - &$test_volid($drive->{file}, drive_is_cdrom($drive)); + &$test_volid($drive->{file}, drive_is_cdrom($drive), $drive->{replicate} // 1); }); } @@ -4846,7 +4850,7 @@ sub get_vm_volumes { my $vollist = []; foreach_volid($conf, sub { - my ($volid, $is_cdrom) = @_; + my ($volid, $attr) = @_; return if $volid =~ m|^/|;