Luiz Capitulino <lcapitul...@redhat.com> writes: > On Mon, 14 Feb 2011 13:34:11 -0600 > Anthony Liguori <anth...@codemonkey.ws> wrote: > >> On 02/14/2011 12:34 PM, Luiz Capitulino wrote: >> > On Mon, 14 Feb 2011 08:39:11 -0600 >> > Anthony Liguori<anth...@codemonkey.ws> 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. [...]