]> git.proxmox.com Git - qemu-server.git/commitdiff
PVE::QemuServer::foreach_volid - pass $attr hash to callback
authorDietmar Maurer <dietmar@proxmox.com>
Tue, 13 Jun 2017 04:47:05 +0000 (06:47 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Tue, 13 Jun 2017 07:02:06 +0000 (09:02 +0200)
That way we can pass more informations, i.e. the 'replicate' attribute.

PVE/QemuServer.pm

index 0efab217d46b84322769db8b6c74d1fafc96795c..758b56acf18543611f3d74bb18bcff9985704074 100644 (file)
@@ -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|^/|;