mirror of
https://git.proxmox.com/git/pve-manager
synced 2025-08-07 14:15:18 +00:00
migrateall: use get_filtered_vmlist
instead of using get_start_stop_list in a rather hacky way use the new get_filtered_vmlist method and adapt the loop, as now only one level is required. most changes are just an indent shift left as we lost an unnecessary loop level Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
parent
b72cdbb752
commit
f5c1dde5f4
@ -1588,32 +1588,20 @@ __PACKAGE__->register_method ({
|
|||||||
die "either 'maxworkers' parameter or max_workers in datacenter.cfg must be set!\n";
|
die "either 'maxworkers' parameter or max_workers in datacenter.cfg must be set!\n";
|
||||||
|
|
||||||
my $code = sub {
|
my $code = sub {
|
||||||
|
|
||||||
$rpcenv->{type} = 'priv'; # to start tasks in background
|
$rpcenv->{type} = 'priv'; # to start tasks in background
|
||||||
|
|
||||||
my $migrateList = &$get_start_stop_list($nodename, undef, $param->{vms});
|
my $vmlist = &$get_filtered_vmlist($nodename, $param->{vms}, 1, 1);
|
||||||
|
|
||||||
foreach my $order (sort {$b <=> $a} keys %$migrateList) {
|
my $workers = {};
|
||||||
my $vmlist = $migrateList->{$order};
|
foreach my $vmid (sort keys %$vmlist) {
|
||||||
my $workers = {};
|
my $d = $vmlist->{$vmid};
|
||||||
foreach my $vmid (sort {$b <=> $a} keys %$vmlist) {
|
my $pid;
|
||||||
my $d = $vmlist->{$vmid};
|
eval { $pid = &$create_migrate_worker($nodename, $d->{type}, $vmid, $target); };
|
||||||
my $pid;
|
warn $@ if $@;
|
||||||
eval { $pid = &$create_migrate_worker($nodename, $d->{type}, $vmid, $target); };
|
next if !$pid;
|
||||||
warn $@ if $@;
|
|
||||||
next if !$pid;
|
|
||||||
|
|
||||||
$workers->{$pid} = 1;
|
$workers->{$pid} = 1;
|
||||||
while (scalar(keys %$workers) >= $maxWorkers) {
|
while (scalar(keys %$workers) >= $maxWorkers) {
|
||||||
foreach my $p (keys %$workers) {
|
|
||||||
if (!PVE::ProcFSTools::check_process_running($p)) {
|
|
||||||
delete $workers->{$p};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
sleep(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
while (scalar(keys %$workers)) {
|
|
||||||
foreach my $p (keys %$workers) {
|
foreach my $p (keys %$workers) {
|
||||||
if (!PVE::ProcFSTools::check_process_running($p)) {
|
if (!PVE::ProcFSTools::check_process_running($p)) {
|
||||||
delete $workers->{$p};
|
delete $workers->{$p};
|
||||||
@ -1622,6 +1610,14 @@ __PACKAGE__->register_method ({
|
|||||||
sleep(1);
|
sleep(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
while (scalar(keys %$workers)) {
|
||||||
|
foreach my $p (keys %$workers) {
|
||||||
|
if (!PVE::ProcFSTools::check_process_running($p)) {
|
||||||
|
delete $workers->{$p};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sleep(1);
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user