mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
vz: fix building capabilities
There should be at least one domain for each guest in cababilities. And in current code we don't add domain for this guest for example. if ((guest = virCapabilitiesAddGuest(caps, VIR_DOMAIN_OSTYPE_HVM, VIR_ARCH_X86_64, "vz", NULL, 0, NULL)) == NULL) Anyway, with two virt types it looks a litte messy, so let's move adding guest and domain to a separate function. Signed-off-by: Dmitry Guryanov <dguryanov@parallels.com>
This commit is contained in:
parent
d28fefc66a
commit
651426e93e
@ -78,14 +78,45 @@ vzDriverUnlock(vzConnPtr driver)
|
|||||||
virMutexUnlock(&driver->lock);
|
virMutexUnlock(&driver->lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
vzCapsAddGuestDomain(virCapsPtr caps,
|
||||||
|
virDomainOSType ostype,
|
||||||
|
virArch arch,
|
||||||
|
const char * emulator,
|
||||||
|
virDomainVirtType virt_type)
|
||||||
|
{
|
||||||
|
virCapsGuestPtr guest;
|
||||||
|
|
||||||
|
if ((guest = virCapabilitiesAddGuest(caps, ostype, arch, emulator,
|
||||||
|
NULL, 0, NULL)) == NULL)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
|
||||||
|
if (virCapabilitiesAddGuestDomain(guest, virt_type,
|
||||||
|
NULL, NULL, 0, NULL) == NULL)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static virCapsPtr
|
static virCapsPtr
|
||||||
vzBuildCapabilities(void)
|
vzBuildCapabilities(void)
|
||||||
{
|
{
|
||||||
virCapsPtr caps = NULL;
|
virCapsPtr caps = NULL;
|
||||||
virCPUDefPtr cpu = NULL;
|
virCPUDefPtr cpu = NULL;
|
||||||
virCPUDataPtr data = NULL;
|
virCPUDataPtr data = NULL;
|
||||||
virCapsGuestPtr guest;
|
|
||||||
virNodeInfo nodeinfo;
|
virNodeInfo nodeinfo;
|
||||||
|
virDomainOSType ostypes[] = {
|
||||||
|
VIR_DOMAIN_OSTYPE_HVM,
|
||||||
|
VIR_DOMAIN_OSTYPE_EXE
|
||||||
|
};
|
||||||
|
virArch archs[] = { VIR_ARCH_I686, VIR_ARCH_X86_64 };
|
||||||
|
const char *const emulators[] = { "parallels", "vz" };
|
||||||
|
virDomainVirtType virt_types[] = {
|
||||||
|
VIR_DOMAIN_VIRT_PARALLELS,
|
||||||
|
VIR_DOMAIN_VIRT_VZ
|
||||||
|
};
|
||||||
|
size_t i, j, k;
|
||||||
|
|
||||||
if ((caps = virCapabilitiesNew(virArchFromHost(),
|
if ((caps = virCapabilitiesNew(virArchFromHost(),
|
||||||
false, false)) == NULL)
|
false, false)) == NULL)
|
||||||
@ -94,58 +125,11 @@ vzBuildCapabilities(void)
|
|||||||
if (nodeCapsInitNUMA(caps) < 0)
|
if (nodeCapsInitNUMA(caps) < 0)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
if ((guest = virCapabilitiesAddGuest(caps, VIR_DOMAIN_OSTYPE_HVM,
|
for (i = 0; i < 2; i++)
|
||||||
VIR_ARCH_X86_64,
|
for (j = 0; j < 2; j++)
|
||||||
"parallels",
|
for (k = 0; k < 2; k++)
|
||||||
NULL, 0, NULL)) == NULL)
|
if (vzCapsAddGuestDomain(caps, ostypes[i], archs[j],
|
||||||
goto error;
|
emulators[k], virt_types[k]) < 0)
|
||||||
|
|
||||||
if ((guest = virCapabilitiesAddGuest(caps, VIR_DOMAIN_OSTYPE_HVM,
|
|
||||||
VIR_ARCH_I686,
|
|
||||||
"parallels",
|
|
||||||
NULL, 0, NULL)) == NULL)
|
|
||||||
goto error;
|
|
||||||
|
|
||||||
|
|
||||||
if (virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_PARALLELS,
|
|
||||||
NULL, NULL, 0, NULL) == NULL)
|
|
||||||
goto error;
|
|
||||||
|
|
||||||
if ((guest = virCapabilitiesAddGuest(caps, VIR_DOMAIN_OSTYPE_EXE,
|
|
||||||
VIR_ARCH_X86_64,
|
|
||||||
"parallels",
|
|
||||||
NULL, 0, NULL)) == NULL)
|
|
||||||
goto error;
|
|
||||||
|
|
||||||
if (virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_PARALLELS,
|
|
||||||
NULL, NULL, 0, NULL) == NULL)
|
|
||||||
goto error;
|
|
||||||
|
|
||||||
if ((guest = virCapabilitiesAddGuest(caps, VIR_DOMAIN_OSTYPE_HVM,
|
|
||||||
VIR_ARCH_X86_64,
|
|
||||||
"vz",
|
|
||||||
NULL, 0, NULL)) == NULL)
|
|
||||||
goto error;
|
|
||||||
|
|
||||||
if ((guest = virCapabilitiesAddGuest(caps, VIR_DOMAIN_OSTYPE_HVM,
|
|
||||||
VIR_ARCH_I686,
|
|
||||||
"vz",
|
|
||||||
NULL, 0, NULL)) == NULL)
|
|
||||||
goto error;
|
|
||||||
|
|
||||||
|
|
||||||
if (virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_VZ,
|
|
||||||
NULL, NULL, 0, NULL) == NULL)
|
|
||||||
goto error;
|
|
||||||
|
|
||||||
if ((guest = virCapabilitiesAddGuest(caps, VIR_DOMAIN_OSTYPE_EXE,
|
|
||||||
VIR_ARCH_X86_64,
|
|
||||||
"vz",
|
|
||||||
NULL, 0, NULL)) == NULL)
|
|
||||||
goto error;
|
|
||||||
|
|
||||||
if (virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_VZ,
|
|
||||||
NULL, NULL, 0, NULL) == NULL)
|
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
if (nodeGetInfo(&nodeinfo))
|
if (nodeGetInfo(&nodeinfo))
|
||||||
|
Loading…
Reference in New Issue
Block a user