]>
git.proxmox.com Git - qemu-server.git/blob - PVE/QemuServer/Monitor.pm
1 package PVE
::QemuServer
::Monitor
;
7 use PVE
::QemuServer
::Helpers
;
16 my ($vmid, $cmd) = @_;
21 if ($cmd->{arguments
}) {
22 $timeout = delete $cmd->{arguments
}->{timeout
};
26 die "VM $vmid not running\n" if !PVE
::QemuServer
::Helpers
::vm_running_locally
($vmid);
27 my $sname = PVE
::QemuServer
::Helpers
::qmp_socket
($vmid);
28 if (-e
$sname) { # test if VM is reasonably new and supports qmp/qga
29 my $qmpclient = PVE
::QMPClient-
>new();
31 $res = $qmpclient->cmd($vmid, $cmd, $timeout);
33 die "unable to open monitor socket\n";
37 syslog
("err", "VM $vmid qmp command failed - $err");
45 my ($vmid, $execute, %params) = @_;
47 my $cmd = { execute
=> $execute, arguments
=> \
%params };
49 return qmp_cmd
($vmid, $cmd);
53 my ($vmid, $cmdline) = @_;
56 execute
=> 'human-monitor-command',
57 arguments
=> { 'command-line' => $cmdline },
60 return qmp_cmd
($vmid, $cmd);