[pve-devel] [PATCH 1/7] add vm_qga_command

Alexandre Derumier aderumier at odiso.com
Sun Mar 17 16:09:01 CET 2013


and reuse vm_qmp_command && qmp_socket with $qga param

Signed-off-by: Alexandre Derumier <aderumier at odiso.com>
---
 PVE/QemuServer.pm |   20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index eba9aed..8c4a1a1 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -2470,8 +2470,9 @@ sub vnc_socket {
 }
 
 sub qmp_socket {
-    my ($vmid) = @_;
-    return "${var_run_tmpdir}/$vmid.qmp";
+    my ($vmid, $qga) = @_;
+    my $sockettype = $qga ? 'qga' : 'qmp';
+    return "${var_run_tmpdir}/$vmid.$sockettype";
 }
 
 sub qga_socket {
@@ -3002,6 +3003,13 @@ sub vm_start {
     });
 }
 
+sub vm_qga_cmd {
+    my ($vmid, $execute, %params) = @_;
+
+    my $cmd = { execute => $execute, arguments => \%params };
+    vm_qmp_command($vmid, $cmd, undef, 1);
+}
+
 sub vm_mon_cmd {
     my ($vmid, $execute, %params) = @_;
 
@@ -3017,7 +3025,7 @@ sub vm_mon_cmd_nocheck {
 }
 
 sub vm_qmp_command {
-    my ($vmid, $cmd, $nocheck) = @_;
+    my ($vmid, $cmd, $nocheck, $qga) = @_;
 
     my $res;
 
@@ -3029,12 +3037,12 @@ sub vm_qmp_command {
  
     eval {
 	die "VM $vmid not running\n" if !check_running($vmid, $nocheck);
-	my $sname = qmp_socket($vmid);
+	my $sname = qmp_socket($vmid, $qga);
 	if (-e $sname) {
-	    my $qmpclient = PVE::QMPClient->new();
+	    my $qmpclient = PVE::QMPClient->new(undef, $qga);
 
 	    $res = $qmpclient->cmd($vmid, $cmd, $timeout);
-	} elsif (-e "${var_run_tmpdir}/$vmid.mon") {
+	} elsif (-e "${var_run_tmpdir}/$vmid.mon" && !$qga) {
 	    die "can't execute complex command on old monitor - stop/start your vm to fix the problem\n"
 		if scalar(%{$cmd->{arguments}});
 	    vm_monitor_command($vmid, $cmd->{execute}, $nocheck);
-- 
1.7.10.4



More information about the pve-devel mailing list