qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Michal Privoznik <mprivozn@redhat.com>
To: Eric Blake <eblake@redhat.com>
Cc: libvir-list@redhat.com, "MATSUDA,
	Daiki" <matsudadik@intellilink.co.jp>,
	QEMU Developers <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH 0/5] support guest agent general command
Date: Tue, 21 Aug 2012 17:26:20 +0200	[thread overview]
Message-ID: <5033A89C.40009@redhat.com> (raw)
In-Reply-To: <5022795C.1020009@redhat.com>

On 08.08.2012 16:36, Eric Blake wrote:
> [adding qemu-devel, for a qemu-ga question]
> 
> On 08/07/2012 06:04 PM, MATSUDA, Daiki wrote:
>> Hi, All.
>>
>> I rewrote the patches as Eric suggested.
>>
>>
>>
>> virsh # help qemu-agent-command
>>   NAME
>>     qemu-agent-command - Qemu Guest Agent Command
>>
>>   SYNOPSIS
>>     qemu-agent-command <domain> [--timeout <number>] {[--cmd] <string>}...
> 
>>
>> virsh # qemu-agent-command RHEL58_64 '{"execute":"guest-info"}'
>> {"return":{"version":"1.1.50","supported_commands":[{"enabled":true,"name":"guest-network-get-interfaces"},{"enabled":true,"name":"guest-suspend-hybrid"},...
> 
> Question to the qemu folks - can we enhance 'guest-info' to tell us
> commands required to give output on success, vs. commands that are
> expected to never answer (except on possible error), so that libvirt can
> then make smarter decisions about whether to wait for a response for an
> arbitrary guest agent command?  That is, I would love for the
> 'success-response' field of the qapi-schema-guest.json file to be
> exposed to libvirt, as it would greatly help in implementing Daiki's
> patchset for calling an arbitrary command and knowing whether to block
> on expecting a response rather than forcing the user to know which magic
> --timeout values to use.
> 

Even if I'd gladly eliminate this --timeout I am not so sure we can do
that. Even if qemu-ga will report which commands does reply on success.
I guess this is the image you had in mind:
1) user issues command X
2) libvirt asks qemu-ga if X returns an success reply
3a) if it does, wait for it
3b) if it doesn't just write command into agent's socket. Asynchronously.
4) return from API

Well, current version of qemu-ga doesn't report this kind of info yet
(patch against qemu-ga has been submitted). So in step #3 we can't
decide whether to go with A or B path. And we can't wait for monitor
event like we do now for those commands not replying on success - this
command needs to be as general as possible.

On the other hand, what would happen if step #2 fails, so we go with 3B
 then? For instance, if issued command was fsfreeze-freeze, which we've
written asynchronously, users can issue fsfreeze-status to query for status.

Have I got it right?

Michal

  reply	other threads:[~2012-08-21 15:26 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <5021AD24.6080806@intellilink.co.jp>
2012-08-08 14:36 ` [Qemu-devel] [PATCH 0/5] support guest agent general command Eric Blake
2012-08-21 15:26   ` Michal Privoznik [this message]
2012-08-21 15:55     ` Eric Blake

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5033A89C.40009@redhat.com \
    --to=mprivozn@redhat.com \
    --cc=eblake@redhat.com \
    --cc=libvir-list@redhat.com \
    --cc=matsudadik@intellilink.co.jp \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).