vz: fixed race in vzDomainAttach/DettachDevice

While dettaching/attaching device in OpenStack, nova
calls vzDomainDettachDevice twice, because the update of the internal
configuration of the ct comes a bit latter than the update event.
As the result, we suffer from the second call to dettach the same device.

Signed-off-by: Olga Krishtal <okrishtal@virtuozzo.com>
This commit is contained in:
Olga Krishtal 2016-08-18 14:57:14 +03:00 committed by Maxim Nestratov
parent 2354266acf
commit 3a6cf6fc16

View File

@ -3600,6 +3600,12 @@ prlsdkAttachDevice(vzDriverPtr driver,
return -1;
}
if (prlsdkUpdateDomain(driver, dom) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("Failed to save new config"));
return -1;
}
job = PrlVm_CommitEx(privdom->sdkdom, PVCF_DETACH_HDD_BUNDLE);
if (PRL_FAILED(waitDomainJob(job, dom)))
return -1;
@ -3667,6 +3673,12 @@ prlsdkDetachDevice(vzDriverPtr driver,
goto cleanup;
}
if (prlsdkUpdateDomain(driver, dom) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("Failed to save new config"));
goto cleanup;
}
job = PrlVm_CommitEx(privdom->sdkdom, PVCF_DETACH_HDD_BUNDLE);
if (PRL_FAILED(waitDomainJob(job, dom)))
goto cleanup;