qemuDomainValidateStorageSource: Relax PR validation

Rather than rejecting the user provided path and alias for the
managed PR reservation we will ignore the provided path. The
reason is that migration XML does contain path even for managed
reservations.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
Michal Privoznik 2018-07-03 13:24:48 +02:00
parent dd1d58cabc
commit 900403a3b2

View File

@ -4616,19 +4616,11 @@ qemuDomainValidateStorageSource(virStorageSourcePtr src,
} }
} }
if (src->pr) { if (src->pr &&
if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_PR_MANAGER_HELPER)) { !virQEMUCapsGet(qemuCaps, QEMU_CAPS_PR_MANAGER_HELPER)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("reservations not supported with this QEMU binary")); _("reservations not supported with this QEMU binary"));
return -1; return -1;
}
if (virStoragePRDefIsManaged(src->pr) && src->pr->path) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("'path' attribute should not be provided for "
"managed reservations"));
return -1;
}
} }
return 0; return 0;
@ -12855,6 +12847,7 @@ qemuDomainPrepareStorageSourcePR(virStorageSourcePtr src,
return 0; return 0;
if (virStoragePRDefIsManaged(src->pr)) { if (virStoragePRDefIsManaged(src->pr)) {
VIR_FREE(src->pr->path);
if (!(src->pr->path = qemuDomainGetManagedPRSocketPath(priv))) if (!(src->pr->path = qemuDomainGetManagedPRSocketPath(priv)))
return -1; return -1;
if (VIR_STRDUP(src->pr->mgralias, qemuDomainGetManagedPRAlias()) < 0) if (VIR_STRDUP(src->pr->mgralias, qemuDomainGetManagedPRAlias()) < 0)