]> git.proxmox.com Git - qemu-server.git/commitdiff
move get_replicatable_volumes from QemuServer.pm to QemuConfig.pm
authorDietmar Maurer <dietmar@proxmox.com>
Sat, 6 May 2017 15:13:31 +0000 (17:13 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Sat, 6 May 2017 15:13:31 +0000 (17:13 +0200)
PVE/API2/Qemu.pm
PVE/QemuConfig.pm
PVE/QemuServer.pm

index db1de34c57a5948df4d548a4157de7791f199482..5051727a3d934efd5ff39326358e485050aeb052 100644 (file)
@@ -1055,7 +1055,7 @@ my $update_vm_api  = sub {
                    &$create_disks($rpcenv, $authuser, $conf->{pending}, $storecfg, $vmid, undef, {$opt => $param->{$opt}});
                } elsif ($opt eq "replicate") {
                    # check if all volumes have replicate feature
-                   PVE::QemuServer::get_replicatable_volumes($storecfg, $conf);
+                   PVE::QemuConfig->get_replicatable_volumes($storecfg, $conf);
                    my $repl = PVE::JSONSchema::check_format('pve-replicate', $param->{opt});
                    PVE::Cluster::check_node_exists($repl->{target});
                    $conf->{$opt} = $param->{$opt};
index 692bba88722b7cad5d3a11d5a87f38ab3b44ed5e..a2bc4fc0dbecf6462a399c1b05c78ca1b0f0cc0a 100644 (file)
@@ -29,7 +29,7 @@ sub guest_type {
 }
 
 sub __config_max_unused_disks {
-    my ($class) =@_;
+    my ($class) = @_;
 
     return $MAX_UNUSED_DISKS;
 }
@@ -63,6 +63,45 @@ sub has_feature {
     return $err ? 0 : 1;
 }
 
+sub get_replicatable_volumes {
+    my ($class, $storecfg, $conf, $noerr) = @_;
+
+    my $volhash = {};
+
+    my $test_volid = sub {
+       my ($volid, $drive) = @_;
+
+       return if !$volid;
+
+       return if PVE::QemuServer::drive_is_cdrom($drive);
+
+       return if defined($drive->{replicate}) && !$drive->{replicate};
+
+       if (!PVE::Storage::volume_has_feature($storecfg, 'replicate', $volid)) {
+           return if $noerr;
+           die "missing replicate feature on volume '$volid'\n";
+       }
+
+       $volhash->{$volid} = 1;
+    };
+
+    PVE::QemuServer::foreach_drive($conf, sub {
+       my ($ds, $drive) = @_;
+       $test_volid->($drive->{file}, $drive);
+    });
+
+    foreach my $snapname (keys %{$conf->{snapshots}}) {
+       my $snap = $conf->{snapshots}->{$snapname};
+       # fixme: what about $snap->{vmstate}
+       PVE::QemuServer::foreach_drive($snap, sub {
+           my ($ds, $drive) = @_;
+           $test_volid->($drive->{file}, $drive);
+        });
+    }
+
+    return $volhash;
+}
+
 sub __snapshot_save_vmstate {
     my ($class, $vmid, $conf, $snapname, $storecfg) = @_;
 
index 08ac94023346520dfe4593fa02733ac237e0bfbb..2fb419db835dbbe043e0892fcd479a0b882d1592 100644 (file)
@@ -2776,45 +2776,6 @@ sub foreach_volid {
     }
 }
 
-sub get_replicatable_volumes {
-    my ($storecfg, $conf, $noerr) = @_;
-
-    my $volhash = {};
-
-    my $test_volid = sub {
-       my ($volid, $drive) = @_;
-       
-       return if !$volid;
-
-       return if drive_is_cdrom($drive);
-
-       return if defined($drive->{replicate}) && !$drive->{replicate};
-
-       if (!PVE::Storage::volume_has_feature($storecfg, 'replicate', $volid)) {
-           return if $noerr;
-           die "missing replicate feature on volume '$volid'\n"; 
-       }
-
-       $volhash->{$volid} = 1;
-    };
-
-    foreach_drive($conf, sub {
-       my ($ds, $drive) = @_;
-       $test_volid->($drive->{file}, $drive);
-    });
-
-    foreach my $snapname (keys %{$conf->{snapshots}}) {
-       my $snap = $conf->{snapshots}->{$snapname};
-       # fixme: what about $snap->{vmstate}
-       foreach_drive($snap, sub {
-           my ($ds, $drive) = @_;
-           $test_volid->($drive->{file}, $drive);
-        });
-    }
-
-    return $volhash;
-}
-
 sub vga_conf_has_spice {
     my ($vga) = @_;