[pve-devel] [PATCH 6/7] qmpclient-qga : build qga command

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


example of command:

first json is guest-sync to sync and flush the client, second json is the command

{ "execute": "guest-sync", "arguments": { "id": 123456 } }{"execute":"guest-ping"}

Signed-off-by: Alexandre Derumier <aderumier at odiso.com>
---
 PVE/QMPClient.pm |   25 +++++++++++++++++++++----
 1 file changed, 21 insertions(+), 4 deletions(-)

diff --git a/PVE/QMPClient.pm b/PVE/QMPClient.pm
index 39a2869..193e53f 100755
--- a/PVE/QMPClient.pm
+++ b/PVE/QMPClient.pm
@@ -187,10 +187,27 @@ my $check_queue = sub {
 		delete $cmd->{arguments}->{fd};
 	    }
 
-	    my $qmpcmd = to_json({
-		execute => $cmd->{execute},
-		arguments => $cmd->{arguments},
-		id => $cmd->{id}});
+	    my $qmpcmd = undef;
+
+	    if($self->{qga}){
+
+		my $qmpcmdid =to_json({
+		    execute => 'guest-sync',
+		    arguments => { id => int($cmd->{id})}});
+
+		$qmpcmd = to_json({
+		    execute => $cmd->{execute},
+		    arguments => $cmd->{arguments}});
+
+		$qmpcmd = $qmpcmdid.$qmpcmd;
+
+	    }else{
+
+		$qmpcmd = to_json({
+		    execute => $cmd->{execute},
+		    arguments => $cmd->{arguments},
+		    id => $cmd->{id}});
+	    }
 
 	    if ($fd >= 0) {
 		my $ret = PVE::IPCC::sendfd(fileno($fh), $fd, $qmpcmd);
-- 
1.7.10.4




More information about the pve-devel mailing list