Luiz Capitulino <lcapitulino@xxxxxxxxxx> writes: > On Fri, 10 Aug 2012 09:41:20 -0500 > Anthony Liguori <aliguori@xxxxxxxxxx> wrote: > >> Luiz Capitulino <lcapitulino@xxxxxxxxxx> writes: >> >> > On Fri, 27 Jul 2012 08:37:15 -0500 >> > Anthony Liguori <aliguori@xxxxxxxxxx> wrote: >> > >> >> This provides the same output as -M ? but in a structured way. >> >> >> >> Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> >> >> --- >> >> qapi-schema.json | 28 ++++++++++++++++++++++++++++ >> >> qmp-commands.hx | 6 ++++++ >> >> vl.c | 31 +++++++++++++++++++++++++++++++ >> >> 3 files changed, 65 insertions(+), 0 deletions(-) >> >> >> >> diff --git a/qapi-schema.json b/qapi-schema.json >> >> index 28e9914..5b47026 100644 >> >> --- a/qapi-schema.json >> >> +++ b/qapi-schema.json >> >> @@ -2200,3 +2200,31 @@ >> >> # Since: 0.14.0 >> >> ## >> >> { 'command': 'closefd', 'data': {'fdname': 'str'} } >> >> + >> >> +## >> >> +# @MachineInfo: >> >> +# >> >> +# Information describing a machine. >> >> +# >> >> +# @name: the name of the machine >> >> +# >> >> +# @alias: #optional an alias for the machine name >> >> +# >> >> +# @default: #optional whether the machine is default >> > >> > Why is default optional? >> >> Brievity. > > Can you elaborate, please? There is only one machine that is default. Having default=false for all of the rest just adds a lot of unnecessary information in the response. Regards, Anthony Liguori > >> >> Regards, >> >> Anthony Liguori >> >> > >> >> +# >> >> +# Since: 1.2.0 >> >> +## >> >> +{ 'type': 'MachineInfo', >> >> + 'data': { 'name': 'str', '*alias': 'str', >> >> + '*is-default': 'bool' } } >> >> + >> >> +## >> >> +# @query-machines: >> >> +# >> >> +# Return a list of supported machines >> >> +# >> >> +# Returns: a list of MachineInfo >> >> +# >> >> +# Since: 1.2.0 >> >> +## >> >> +{ 'command': 'query-machines', 'returns': ['MachineInfo'] } >> >> diff --git a/qmp-commands.hx b/qmp-commands.hx >> >> index 5c55528..a6f82fc 100644 >> >> --- a/qmp-commands.hx >> >> +++ b/qmp-commands.hx >> >> @@ -2222,3 +2222,9 @@ EQMP >> >> .mhandler.cmd_new = qmp_marshal_input_device_list_properties, >> >> }, >> >> >> >> + { >> >> + .name = "query-machines", >> >> + .args_type = "", >> >> + .mhandler.cmd_new = qmp_marshal_input_query_machines, >> >> + }, >> >> + >> >> diff --git a/vl.c b/vl.c >> >> index 8904db1..cd900e0 100644 >> >> --- a/vl.c >> >> +++ b/vl.c >> >> @@ -1209,6 +1209,37 @@ QEMUMachine *find_default_machine(void) >> >> return NULL; >> >> } >> >> >> >> +MachineInfoList *qmp_query_machines(Error **errp) >> >> +{ >> >> + MachineInfoList *mach_list = NULL; >> >> + QEMUMachine *m; >> >> + >> >> + for (m = first_machine; m; m = m->next) { >> >> + MachineInfoList *entry; >> >> + MachineInfo *info; >> >> + >> >> + info = g_malloc0(sizeof(*info)); >> >> + if (m->is_default) { >> >> + info->has_is_default = true; >> >> + info->is_default = true; >> >> + } >> >> + >> >> + if (m->alias) { >> >> + info->has_alias = true; >> >> + info->alias = g_strdup(m->alias); >> >> + } >> >> + >> >> + info->name = g_strdup(m->name); >> >> + >> >> + entry = g_malloc0(sizeof(*entry)); >> >> + entry->value = info; >> >> + entry->next = mach_list; >> >> + mach_list = entry; >> >> + } >> >> + >> >> + return mach_list; >> >> +} >> >> + >> >> /***********************************************************/ >> >> /* main execution loop */ >> >> >> -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list