mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-24 04:12:20 +00:00
parallels: handle unlimited cpus on containers
User may set "unlimited" cpus for containers, which means to take all available cpus on the node. Signed-off-by: Dmitry Guryanov <dguryanov@parallels.com>
This commit is contained in:
parent
fb583a8f5b
commit
4bc97d592f
@ -468,12 +468,29 @@ parallelsLoadDomain(parallelsConnPtr privconn, virJSONValuePtr jobj)
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (virJSONValueObjectGetNumberUint(jobj3, "cpus", &x) < 0) {
|
if (virJSONValueObjectGetNumberUint(jobj3, "cpus", &x) == 0) {
|
||||||
|
def->vcpus = x;
|
||||||
|
def->maxvcpus = x;
|
||||||
|
} else if ((tmp = virJSONValueObjectGetString(jobj3, "cpus"))) {
|
||||||
|
if (STREQ(tmp, "unlimited")) {
|
||||||
|
virNodeInfo nodeinfo;
|
||||||
|
|
||||||
|
if (nodeGetInfo(NULL, &nodeinfo) < 0) {
|
||||||
|
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||||
|
_("Can't get node info"));
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
|
def->vcpus = nodeinfo.cpus;
|
||||||
|
def->maxvcpus = def->vcpus;
|
||||||
|
} else {
|
||||||
|
parallelsParseError();
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
parallelsParseError();
|
parallelsParseError();
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
def->vcpus = x;
|
|
||||||
def->maxvcpus = x;
|
|
||||||
|
|
||||||
if (!(jobj3 = virJSONValueObjectGet(jobj2, "memory"))) {
|
if (!(jobj3 = virJSONValueObjectGet(jobj2, "memory"))) {
|
||||||
parallelsParseError();
|
parallelsParseError();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user