Eduardo Habkost <ehabkost@xxxxxxxxxx> writes: > Extend query-cpu-definitions schema to allow it to return two new > optional fields: "runnable" and "unavailable-features". > "runnable" will tell if the CPU model can be run in the current > host. "unavailable-features" will contain a list of CPU > properties that are preventing the CPU model from running in the > current host. > > Cc: David Hildenbrand <dahi@xxxxxxxxxxxxxxxxxx> > Cc: Michael Mueller <mimu@xxxxxxxxxxxxxxxxxx> > Cc: Christian Borntraeger <borntraeger@xxxxxxxxxx> > Cc: Cornelia Huck <cornelia.huck@xxxxxxxxxx> > Cc: Jiri Denemark <jdenemar@xxxxxxxxxx> > Cc: libvir-list@xxxxxxxxxx > Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> > --- > Changes v1 -> v2: > * Remove @runnable field, non-empty @unavailable-features is > enough to report CPU model as not runnable. > * Documentation updates: > * Changed to "(since 2.7)"; > * Add more details about the exact meaning of > unavailable-features, and what it would mean to see > read-only QOM properties in the list, and that > implementations can return "type" if there's > no extra information available; > --- > qapi-schema.json | 23 ++++++++++++++++++++++- > 1 file changed, 22 insertions(+), 1 deletion(-) > > diff --git a/qapi-schema.json b/qapi-schema.json > index 8483bdf..43478e9 100644 > --- a/qapi-schema.json > +++ b/qapi-schema.json > @@ -3005,11 +3005,32 @@ > # Virtual CPU definition. > # > # @name: the name of the CPU definition > +# @unavailable-features: #optional List of properties that prevent > +# the CPU model from running in the current > +# host. (since 2.7) > +# > +# @unavailable-features is a list of QOM property names that > +# represent CPU model attributes that prevent the CPU from running. > +# If the QOM property is read-only, that means there's no known > +# way to make the CPU model run in the current host. If > +# absolutely no extra information will be returned to explain why Suggest "can be returned". > +# the CPU model is not runnable, implementations may simply > +# return "type" as the property name. > +# If the property is read-write, it means that it MAY be possible > +# to run the CPU model in the current host if that property is > +# changed. Management software can use it as hints to suggest or > +# choose an alternative for the user, or just to generate meaningful > +# error messages explaining why the CPU model can't be used. > +# If @unavailable-features is an empty list, the CPU model is > +# runnable using the current host and machine-type. > +# If @unavailable-features is not present, runnability > +# information for the CPU is not available. > # > # Since: 1.2.0 > ## > { 'struct': 'CpuDefinitionInfo', > - 'data': { 'name': 'str' } } > + 'data': { 'name': 'str', > + '*unavailable-features': [ 'str' ] } } > > ## > # @query-cpu-definitions: With the commit message tidied up as per your reply to Jiri: Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list