extract register_qmeventd_handle to QemuServer.pm

...to be reused by live-restore.

Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
This commit is contained in:
Stefan Reiter 2021-03-03 10:56:10 +01:00 committed by Thomas Lamprecht
parent 26731a3c15
commit 65911545dd
2 changed files with 30 additions and 30 deletions

View File

@ -7558,6 +7558,34 @@ sub device_bootorder {
return $bootorder;
}
sub register_qmeventd_handle {
my ($vmid) = @_;
my $fh;
my $peer = "/var/run/qmeventd.sock";
my $count = 0;
for (;;) {
$count++;
$fh = IO::Socket::UNIX->new(Peer => $peer, Blocking => 0, Timeout => 1);
last if $fh;
if ($! != EINTR && $! != EAGAIN) {
die "unable to connect to qmeventd socket (vmid: $vmid) - $!\n";
}
if ($count > 4) {
die "unable to connect to qmeventd socket (vmid: $vmid) - timeout "
. "after $count retries\n";
}
usleep(25000);
}
# send handshake to mark VM as backing up
print $fh to_json({vzdump => {vmid => "$vmid"}});
# return handle to be closed later when inhibit is no longer required
return $fh;
}
# bash completion helper
sub complete_backup_archives {

View File

@ -481,7 +481,7 @@ sub archive_pbs {
my $devlist = _get_task_devlist($task);
$self->enforce_vm_running_for_backup($vmid);
$self->register_qmeventd_handle($vmid);
$self->{qmeventd_fh} = PVE::QemuServer::register_qmeventd_handle($vmid);
my $backup_job_uuid;
eval {
@ -656,7 +656,7 @@ sub archive_vma {
my $devlist = _get_task_devlist($task);
$self->enforce_vm_running_for_backup($vmid);
$self->register_qmeventd_handle($vmid);
$self->{qmeventd_fh} = PVE::QemuServer::register_qmeventd_handle($vmid);
my $cpid;
my $backup_job_uuid;
@ -815,34 +815,6 @@ sub enforce_vm_running_for_backup {
die $@ if $@;
}
sub register_qmeventd_handle {
my ($self, $vmid) = @_;
my $fh;
my $peer = "/var/run/qmeventd.sock";
my $count = 0;
for (;;) {
$count++;
$fh = IO::Socket::UNIX->new(Peer => $peer, Blocking => 0, Timeout => 1);
last if $fh;
if ($! != EINTR && $! != EAGAIN) {
$self->log("warn", "unable to connect to qmeventd socket (vmid: $vmid) - $!\n");
return;
}
if ($count > 4) {
$self->log("warn", "unable to connect to qmeventd socket (vmid: $vmid)"
. " - timeout after $count retries\n");
return;
}
usleep(25000);
}
# send handshake to mark VM as backing up
print $fh to_json({vzdump => {vmid => "$vmid"}});
$self->{qmeventd_fh} = $fh;
}
# resume VM againe once we got in a clear state (stop mode backup of running VM)
sub resume_vm_after_job_start {
my ($self, $task, $vmid) = @_;