mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
qemu: Implement support for 'capability_filters' config option
Filter out the given capabilities and set domain taint if we've done so. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
30ce8f3163
commit
2cb86fc260
@ -8339,7 +8339,8 @@ void qemuDomainObjCheckTaint(virQEMUDriverPtr driver,
|
|||||||
custom_hypervisor_feat = true;
|
custom_hypervisor_feat = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (custom_hypervisor_feat) {
|
if (custom_hypervisor_feat ||
|
||||||
|
(cfg->capabilityfilters && *cfg->capabilityfilters)) {
|
||||||
qemuDomainObjTaint(driver, obj,
|
qemuDomainObjTaint(driver, obj,
|
||||||
VIR_DOMAIN_TAINT_CUSTOM_HYPERVISOR_FEATURE, logCtxt);
|
VIR_DOMAIN_TAINT_CUSTOM_HYPERVISOR_FEATURE, logCtxt);
|
||||||
}
|
}
|
||||||
|
@ -5452,10 +5452,25 @@ static int
|
|||||||
qemuProcessStartUpdateCustomCaps(virDomainObjPtr vm)
|
qemuProcessStartUpdateCustomCaps(virDomainObjPtr vm)
|
||||||
{
|
{
|
||||||
qemuDomainObjPrivatePtr priv = vm->privateData;
|
qemuDomainObjPrivatePtr priv = vm->privateData;
|
||||||
|
VIR_AUTOUNREF(virQEMUDriverConfigPtr) cfg = virQEMUDriverGetConfig(priv->driver);
|
||||||
qemuDomainXmlNsDefPtr nsdef = vm->def->namespaceData;
|
qemuDomainXmlNsDefPtr nsdef = vm->def->namespaceData;
|
||||||
|
char **next;
|
||||||
int tmp;
|
int tmp;
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
|
if (cfg->capabilityfilters) {
|
||||||
|
for (next = cfg->capabilityfilters; *next; next++) {
|
||||||
|
if ((tmp = virQEMUCapsTypeFromString(*next)) < 0) {
|
||||||
|
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||||
|
_("invalid capability_filters capability '%s'"),
|
||||||
|
*next);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
virQEMUCapsClear(priv->qemuCaps, tmp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (nsdef) {
|
if (nsdef) {
|
||||||
for (i = 0; i < nsdef->ncapsadd; i++) {
|
for (i = 0; i < nsdef->ncapsadd; i++) {
|
||||||
if ((tmp = virQEMUCapsTypeFromString(nsdef->capsadd[i])) < 0) {
|
if ((tmp = virQEMUCapsTypeFromString(nsdef->capsadd[i])) < 0) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user