5
0
mirror of git://git.proxmox.com/git/qemu-server.git synced 2025-03-12 20:58:26 +03:00

vm_shutdown: request 'stopped' state for HA enabled VMs

This commit is contained in:
Dietmar Maurer 2016-11-23 08:03:08 +01:00
parent 29ddbe702b
commit ae849692d9

View File

@ -1959,18 +1959,40 @@ __PACKAGE__->register_method({
}
}
my $realcmd = sub {
my $upid = shift;
if (PVE::HA::Config::vm_is_ha_managed($vmid) &&
($rpcenv->{type} ne 'ha')) {
syslog('info', "shutdown VM $vmid: $upid\n");
my $hacmd = sub {
my $upid = shift;
PVE::QemuServer::vm_stop($storecfg, $vmid, $skiplock, 0, $param->{timeout},
$shutdown, $param->{forceStop}, $keepActive);
my $service = "vm:$vmid";
return;
};
my $cmd = ['ha-manager', 'set', $service, '--state', 'stopped'];
return $rpcenv->fork_worker('qmshutdown', $vmid, $authuser, $realcmd);
print "Executing HA stop for VM $vmid\n";
PVE::Tools::run_command($cmd);
return;
};
return $rpcenv->fork_worker('hastop', $vmid, $authuser, $hacmd);
} else {
my $realcmd = sub {
my $upid = shift;
syslog('info', "shutdown VM $vmid: $upid\n");
PVE::QemuServer::vm_stop($storecfg, $vmid, $skiplock, 0, $param->{timeout},
$shutdown, $param->{forceStop}, $keepActive);
return;
};
return $rpcenv->fork_worker('qmshutdown', $vmid, $authuser, $realcmd);
}
}});
__PACKAGE__->register_method({