
On Tue, 2018-10-02 at 16:48 +0200, Peter Krempa wrote:
On Tue, Oct 02, 2018 at 16:14:45 +0200, Andrea Bolognani wrote: [...]
@@ -19114,9 +19114,14 @@ virDomainDefParseCaps(virDomainDefPtr def, } else { if (!def->os.arch) def->os.arch = capsdata->arch; - if ((!def->os.machine && - VIR_STRDUP(def->os.machine, capsdata->machinetype) < 0)) - goto cleanup; + if (!def->os.machine) { + virReportWarning(VIR_ERR_DEPRECATED_FEATURE, + "%s", + _("Missing machine type"));
Soo, and if multiple warnings are present? Since we don't support multiple error objects this will create one warning and after you fix it a second one.
I don't think that's necessarily a blocker: a similar behavior can be observed by feeding libvirt a guest definition that contains two or more errors, in which case you're expected to solve them one at the time; you could very well do the same for warnings.
Also I doubt that LXC has a machine type.
That could be addressed by reporting the warning from the QEMU driver instead of the generic code. Doing so would probably require shuffling the calls around quite a bit, but I don't see why it wouldn't be possible. -- Andrea Bolognani / Red Hat / Virtualization