static int
prlsdkDoApplyConfig(virConnectPtr conn,
PRL_HANDLE sdkdom,
- virDomainDefPtr def)
+ virDomainDefPtr def,
+ virDomainDefPtr olddef)
{
PRL_RESULT pret;
size_t i;
if (prlsdkRemoveBootDevices(sdkdom) < 0)
goto error;
+ if (olddef) {
+ for (i = 0; i < olddef->nnets; i++)
+ prlsdkDelNet(conn->privateData, olddef->nets[i]);
+ }
+
+ for (i = 0; i < def->nnets; i++) {
+ if (prlsdkAddNet(sdkdom, conn->privateData, def->nets[i]) < 0)
+ goto error;
+ }
+
if (prlsdkApplyGraphicsParams(sdkdom, def) < 0)
goto error;
goto error;
}
- for (i = 0; i < def->nnets; i++) {
- if (prlsdkAddNet(sdkdom, conn->privateData, def->nets[i]) < 0)
- goto error;
- }
-
for (i = 0; i < def->ndisks; i++) {
bool bootDisk = false;
if (PRL_FAILED(waitJob(job, privconn->jobTimeout)))
return -1;
- ret = prlsdkDoApplyConfig(conn, sdkdom, new);
+ ret = prlsdkDoApplyConfig(conn, sdkdom, new, dom->def);
if (ret == 0) {
job = PrlVm_CommitEx(sdkdom, PVCF_DETACH_HDD_BUNDLE);
pret = PrlVmCfg_SetOfflineManagementEnabled(sdkdom, 0);
prlsdkCheckRetGoto(pret, cleanup);
- ret = prlsdkDoApplyConfig(conn, sdkdom, def);
+ ret = prlsdkDoApplyConfig(conn, sdkdom, def, NULL);
if (ret)
goto cleanup;
}
- ret = prlsdkDoApplyConfig(conn, sdkdom, def);
+ ret = prlsdkDoApplyConfig(conn, sdkdom, def, NULL);
if (ret)
goto cleanup;