On Thu, 10 Jun 2010 12:44:55 +0200
Juan Quintela<address@hidden> wrote:
Luiz Capitulino<address@hidden> wrote:
On Wed, 9 Jun 2010 14:10:53 +0200
Juan Quintela<address@hidden> wrote:
This is a resent with what we agreed on yesterday call.
Migration events would be there for 0.13 until we get proper
async command support.
Something which is not clear to me is the set of events we'd have if migrate
was an async command.
Ie, do we really need MIGRATION_FAILED in this case? Don't we expect to get
this information from the async response?
I am not able to define simpler semantics for this events:
Ok, I must be missing something here.
First, let's talk about how async commands work today, better yet, how they
should work in 0.14.
I see two possible interfaces (off the top of my head):
1. QMP only returns the response when the command is finished, eg:
C: { "execute": "migrate", "id": "foo" ... }
/* nothing is returned, other commands are issued, after several hours...
*/
S: { "return": ... "id": "foo" }
2. QMP returns a response right away just to signal that the command
has been accepted:
C: { "execute": "migrate", "id": "foo" ... }
S: { "return": {}, "id": "foo" ... }
However, the actual response is emitted as an event:
S: { "event": "ASYNC_RESPONSE", "return": ..., "id": "foo" }
This event is emmited on all source and target monitors.
- For 0.13: Event don't have a QError.
- For 0.14: It will gain a QError.
About migration becoming an async command. Really it is independent
of what events we emit. If migration becomes async command, only
difference is for the monitor that emitted the command, rest of
monitors see nothing. If we want to be able to see that informantion
in the other monitors, we need the events anyways.
Somewhere else in this discussion someone has said that we should assume
that the client talking to the source is the same one which is going to
talk to the target, in this case all the communication is done through
the source qemu instance.