mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-07-31 05:57:16 +00:00
qemu: domain: Call virDomainCapsDeviceDefValidate
Fill in virDomainCaps at Validate time and use it to call virDomainCapsDeviceDefValidate Reviewed-by: Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com> Signed-off-by: Cole Robinson <crobinso@redhat.com>
This commit is contained in:
parent
d3c7536ce3
commit
b66ca0220a
@ -41,6 +41,7 @@
|
|||||||
#include "viruuid.h"
|
#include "viruuid.h"
|
||||||
#include "virfile.h"
|
#include "virfile.h"
|
||||||
#include "domain_addr.h"
|
#include "domain_addr.h"
|
||||||
|
#include "domain_capabilities.h"
|
||||||
#include "domain_event.h"
|
#include "domain_event.h"
|
||||||
#include "virtime.h"
|
#include "virtime.h"
|
||||||
#include "virnetdevopenvswitch.h"
|
#include "virnetdevopenvswitch.h"
|
||||||
@ -6737,14 +6738,24 @@ qemuDomainDeviceDefValidate(const virDomainDeviceDef *dev,
|
|||||||
int ret = 0;
|
int ret = 0;
|
||||||
virQEMUDriverPtr driver = opaque;
|
virQEMUDriverPtr driver = opaque;
|
||||||
virQEMUCapsPtr qemuCaps = NULL;
|
virQEMUCapsPtr qemuCaps = NULL;
|
||||||
|
virDomainCapsPtr domCaps = NULL;
|
||||||
|
|
||||||
if (!(qemuCaps = virQEMUCapsCacheLookup(driver->qemuCapsCache,
|
if (!(qemuCaps = virQEMUCapsCacheLookup(driver->qemuCapsCache,
|
||||||
def->emulator)))
|
def->emulator)))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
if (!(domCaps = virQEMUDriverGetDomainCapabilities(driver, qemuCaps,
|
||||||
|
def->os.machine,
|
||||||
|
def->os.arch,
|
||||||
|
def->virtType)))
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
if ((ret = qemuDomainDeviceDefValidateAddress(dev, qemuCaps)) < 0)
|
if ((ret = qemuDomainDeviceDefValidateAddress(dev, qemuCaps)) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
|
if (virDomainCapsDeviceDefValidate(domCaps, dev, def) < 0)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
switch ((virDomainDeviceType)dev->type) {
|
switch ((virDomainDeviceType)dev->type) {
|
||||||
case VIR_DOMAIN_DEVICE_NET:
|
case VIR_DOMAIN_DEVICE_NET:
|
||||||
ret = qemuDomainDeviceDefValidateNetwork(dev->data.net);
|
ret = qemuDomainDeviceDefValidateNetwork(dev->data.net);
|
||||||
@ -6831,6 +6842,7 @@ qemuDomainDeviceDefValidate(const virDomainDeviceDef *dev,
|
|||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virObjectUnref(qemuCaps);
|
virObjectUnref(qemuCaps);
|
||||||
|
virObjectUnref(domCaps);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user