qom: Improve error messages when property has no getter or setter
When you try to set a property that has no setter, the error message blames "insufficient permission": $ qemu-system-x86_64 -S -display none -nodefaults -monitor stdio QEMU 7.1.50 monitor - type 'help' for more information (qemu) qom-set /machine type q35 Error: Insufficient permission to perform this operation This implies it could work with "sufficient permission". It can't. Change the error message to: Error: Property 'pc-i440fx-7.2-machine.type' is not writable Do the same for getting a property that has no getter. Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20221012153801.2604340-2-armbru@redhat.com> Reviewed-by: David Hildenbrand <david@redhat.com>
This commit is contained in:
parent
344744e148
commit
3f7febc937
@ -1383,7 +1383,8 @@ bool object_property_get(Object *obj, const char *name, Visitor *v,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!prop->get) {
|
if (!prop->get) {
|
||||||
error_setg(errp, QERR_PERMISSION_DENIED);
|
error_setg(errp, "Property '%s.%s' is not readable",
|
||||||
|
object_get_typename(obj), name);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
prop->get(obj, v, name, prop->opaque, &err);
|
prop->get(obj, v, name, prop->opaque, &err);
|
||||||
@ -1402,7 +1403,8 @@ bool object_property_set(Object *obj, const char *name, Visitor *v,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!prop->set) {
|
if (!prop->set) {
|
||||||
error_setg(errp, QERR_PERMISSION_DENIED);
|
error_setg(errp, "Property '%s.%s' is not writable",
|
||||||
|
object_get_typename(obj), name);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
prop->set(obj, v, name, prop->opaque, errp);
|
prop->set(obj, v, name, prop->opaque, errp);
|
||||||
|
Loading…
Reference in New Issue
Block a user