qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Re: [RFC] qapi: events in QMP


From: Markus Armbruster
Subject: Re: [Qemu-devel] Re: [RFC] qapi: events in QMP
Date: Tue, 15 Feb 2011 15:54:23 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux)

Luiz Capitulino <address@hidden> writes:

> On Mon, 14 Feb 2011 13:34:11 -0600
> Anthony Liguori <address@hidden> wrote:
>
>> On 02/14/2011 12:34 PM, Luiz Capitulino wrote:
>> > On Mon, 14 Feb 2011 08:39:11 -0600
>> > Anthony Liguori<address@hidden>  wrote:
>> >
>> >    
>> >> On 02/14/2011 06:45 AM, Luiz Capitulino wrote:
>> >>      
>> >>> So the question is: how does the schema based design support extending
>> >>> commands or events? Does it require adding new commands/events?
>> >>>
>> >>>        
>> >> Well, let me ask you, how do we do that today?
>> >>
>> >> Let's say that I want to add a new parameter to the `change' function so
>> >> that I can include a salt parameter as part of the password.
>> >>
>> >> The way we'd do this today is by checking for the 'salt' parameter in
>> >> qdict, and if it's not present, use a random salt or something like that.
>> >>      
>> > You likely want to do what you did before. Of course that you have to
>> > consider if what you're doing is extending an existing command or badly
>> > overloading it (like change is today), in this case you'll want to add
>> > a new command instead.
>> >
>> > But yes, the use-case here is extending an existing command.
>> >
>> >    
>> >> However, if I'm a QMP client, how can I tell whether you're going to
>> >> ignore my salt parameter or actually use it?  Nothing in QMP tells me
>> >> this today.  If I set the salt parameter in the `change' command, I'll
>> >> just get a success message.
>> >>      
>> > I'm sorry?
>> >
>> > { "execute": "change", "arguments": { "device": "vnc", "target": 
>> > "password", "arg": "1234", "salt": "r1" } }
>> > {"error": {"class": "InvalidParameter", "desc": "Invalid parameter 
>> > 'salt'", "data": {"name": "salt"}}}
>> >    
>> 
>> So I'm supposed to execute the command, and if execution fails, drop the 
>> new parameter?  If we add a few optional parameters, does that mean I 
>> have to try every possible combination of parameters?
>
> No, of course not, our plan has always been to do this via an schema,

Correct.

> the only reason we don't do this today is lack of time/help.

Disagree on "only".  QMP didn't just suffer from lack of pushing power.
On the contrary, it suffered from too much pushing in opposite
directions.

[...]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]