mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-27 08:05:24 +00:00
parallels: fix parallelsDomainDefineXML for existing containers
Fix code, which checks what is changed in virDomainDef structure. It looks slightly different for containers and VMs: containers haven't boot devices, but have init path Signed-off-by: Dmitry Guryanov <dguryanov@parallels.com>
This commit is contained in:
parent
4bc97d592f
commit
0f82f30612
@ -1484,24 +1484,46 @@ parallelsApplyChanges(virDomainObjPtr dom, virDomainDefPtr new)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* we fill only type and arch fields in parallelsLoadDomain, so
|
/* we fill only type and arch fields in parallelsLoadDomain for
|
||||||
* we can check that all other paramenters are null */
|
* hvm type and also init for containers, so we can check that all
|
||||||
|
* other paramenters are null and boot devices config is default */
|
||||||
|
|
||||||
if (!STREQ_NULLABLE(old->os.type, new->os.type) ||
|
if (!STREQ_NULLABLE(old->os.type, new->os.type) ||
|
||||||
!STREQ_NULLABLE(old->os.arch, new->os.arch) ||
|
!STREQ_NULLABLE(old->os.arch, new->os.arch) ||
|
||||||
new->os.machine != NULL || new->os.nBootDevs != 1 ||
|
new->os.machine != NULL || new->os.bootmenu != 0 ||
|
||||||
new->os.bootDevs[0] != VIR_DOMAIN_BOOT_DISK ||
|
new->os.kernel != NULL || new->os.initrd != NULL ||
|
||||||
new->os.bootmenu != 0 || new->os.init != NULL ||
|
new->os.cmdline != NULL || new->os.root != NULL ||
|
||||||
new->os.initargv != NULL || new->os.kernel != NULL ||
|
new->os.loader != NULL || new->os.bootloader != NULL ||
|
||||||
new->os.initrd != NULL || new->os.cmdline != NULL ||
|
new->os.bootloaderArgs != NULL || new->os.smbios_mode != 0 ||
|
||||||
new->os.root != NULL || new->os.loader != NULL ||
|
new->os.bios.useserial != 0) {
|
||||||
new->os.bootloader != NULL || new->os.bootloaderArgs != NULL ||
|
|
||||||
new->os.smbios_mode != 0 || new->os.bios.useserial != 0) {
|
|
||||||
|
|
||||||
virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s",
|
virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s",
|
||||||
_("changing OS parameters is not supported "
|
_("changing OS parameters is not supported "
|
||||||
"by parallels driver"));
|
"by parallels driver"));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
if (STREQ(new->os.type, "hvm")) {
|
||||||
|
if (new->os.nBootDevs != 1 ||
|
||||||
|
new->os.bootDevs[0] != VIR_DOMAIN_BOOT_DISK ||
|
||||||
|
new->os.init != NULL || new->os.initargv != NULL) {
|
||||||
|
|
||||||
|
virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s",
|
||||||
|
_("changing OS parameters is not supported "
|
||||||
|
"by parallels driver"));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (new->os.nBootDevs != 0 ||
|
||||||
|
!STREQ_NULLABLE(old->os.init, new->os.init) ||
|
||||||
|
(new->os.initargv != NULL && new->os.initargv[0] != NULL)) {
|
||||||
|
|
||||||
|
virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s",
|
||||||
|
_("changing OS parameters is not supported "
|
||||||
|
"by parallels driver"));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (!STREQ_NULLABLE(old->emulator, new->emulator)) {
|
if (!STREQ_NULLABLE(old->emulator, new->emulator)) {
|
||||||
virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s",
|
virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s",
|
||||||
|
Loading…
Reference in New Issue
Block a user