mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 21:55:25 +00:00
testParseNodeInfo: Rewrite to virXPathU(Int|LongLong)
Use the function for appropriate types and simplify the error logic. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
3e3c52f10f
commit
4899c55e99
@ -874,41 +874,30 @@ testParseXMLDocFromFile(xmlNodePtr node,
|
|||||||
static int
|
static int
|
||||||
testParseNodeInfo(virNodeInfoPtr nodeInfo, xmlXPathContextPtr ctxt)
|
testParseNodeInfo(virNodeInfoPtr nodeInfo, xmlXPathContextPtr ctxt)
|
||||||
{
|
{
|
||||||
long l;
|
|
||||||
int ret;
|
|
||||||
g_autofree char *str = NULL;
|
g_autofree char *str = NULL;
|
||||||
|
unsigned int activeCpus;
|
||||||
|
unsigned long long memory = 0;
|
||||||
|
int rc;
|
||||||
|
|
||||||
ret = virXPathLong("string(/node/cpu/nodes[1])", ctxt, &l);
|
if (virXPathUInt("string(/node/cpu/nodes[1])", ctxt, &nodeInfo->nodes) == -2) {
|
||||||
if (ret == 0) {
|
|
||||||
nodeInfo->nodes = l;
|
|
||||||
} else if (ret == -2) {
|
|
||||||
virReportError(VIR_ERR_XML_ERROR, "%s",
|
virReportError(VIR_ERR_XML_ERROR, "%s",
|
||||||
_("invalid node cpu nodes value"));
|
_("invalid node cpu nodes value"));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = virXPathLong("string(/node/cpu/sockets[1])", ctxt, &l);
|
if (virXPathUInt("string(/node/cpu/sockets[1])", ctxt, &nodeInfo->sockets) == -2) {
|
||||||
if (ret == 0) {
|
|
||||||
nodeInfo->sockets = l;
|
|
||||||
} else if (ret == -2) {
|
|
||||||
virReportError(VIR_ERR_XML_ERROR, "%s",
|
virReportError(VIR_ERR_XML_ERROR, "%s",
|
||||||
_("invalid node cpu sockets value"));
|
_("invalid node cpu sockets value"));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = virXPathLong("string(/node/cpu/cores[1])", ctxt, &l);
|
if (virXPathUInt("string(/node/cpu/cores[1])", ctxt, &nodeInfo->cores) == -2) {
|
||||||
if (ret == 0) {
|
|
||||||
nodeInfo->cores = l;
|
|
||||||
} else if (ret == -2) {
|
|
||||||
virReportError(VIR_ERR_XML_ERROR, "%s",
|
virReportError(VIR_ERR_XML_ERROR, "%s",
|
||||||
_("invalid node cpu cores value"));
|
_("invalid node cpu cores value"));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = virXPathLong("string(/node/cpu/threads[1])", ctxt, &l);
|
if (virXPathUInt("string(/node/cpu/threads[1])", ctxt, &nodeInfo->threads) == -2) {
|
||||||
if (ret == 0) {
|
|
||||||
nodeInfo->threads = l;
|
|
||||||
} else if (ret == -2) {
|
|
||||||
virReportError(VIR_ERR_XML_ERROR, "%s",
|
virReportError(VIR_ERR_XML_ERROR, "%s",
|
||||||
_("invalid node cpu threads value"));
|
_("invalid node cpu threads value"));
|
||||||
return -1;
|
return -1;
|
||||||
@ -916,19 +905,19 @@ testParseNodeInfo(virNodeInfoPtr nodeInfo, xmlXPathContextPtr ctxt)
|
|||||||
|
|
||||||
nodeInfo->cpus = (nodeInfo->cores * nodeInfo->threads *
|
nodeInfo->cpus = (nodeInfo->cores * nodeInfo->threads *
|
||||||
nodeInfo->sockets * nodeInfo->nodes);
|
nodeInfo->sockets * nodeInfo->nodes);
|
||||||
ret = virXPathLong("string(/node/cpu/active[1])", ctxt, &l);
|
|
||||||
if (ret == 0) {
|
if ((rc = virXPathUInt("string(/node/cpu/active[1])", ctxt, &activeCpus)) == -2) {
|
||||||
if (l < nodeInfo->cpus)
|
|
||||||
nodeInfo->cpus = l;
|
|
||||||
} else if (ret == -2) {
|
|
||||||
virReportError(VIR_ERR_XML_ERROR, "%s",
|
virReportError(VIR_ERR_XML_ERROR, "%s",
|
||||||
_("invalid node cpu active value"));
|
_("invalid node cpu active value"));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
ret = virXPathLong("string(/node/cpu/mhz[1])", ctxt, &l);
|
|
||||||
if (ret == 0) {
|
if (rc == 0) {
|
||||||
nodeInfo->mhz = l;
|
if (activeCpus < nodeInfo->cpus)
|
||||||
} else if (ret == -2) {
|
nodeInfo->cpus = activeCpus;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (virXPathUInt("string(/node/cpu/mhz[1])", ctxt, &nodeInfo->mhz) == -2) {
|
||||||
virReportError(VIR_ERR_XML_ERROR, "%s",
|
virReportError(VIR_ERR_XML_ERROR, "%s",
|
||||||
_("invalid node cpu mhz value"));
|
_("invalid node cpu mhz value"));
|
||||||
return -1;
|
return -1;
|
||||||
@ -943,15 +932,15 @@ testParseNodeInfo(virNodeInfoPtr nodeInfo, xmlXPathContextPtr ctxt)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = virXPathLong("string(/node/memory[1])", ctxt, &l);
|
if ((rc = virXPathULongLong("string(/node/memory[1])", ctxt, &memory)) == -2) {
|
||||||
if (ret == 0) {
|
|
||||||
nodeInfo->memory = l;
|
|
||||||
} else if (ret == -2) {
|
|
||||||
virReportError(VIR_ERR_XML_ERROR, "%s",
|
virReportError(VIR_ERR_XML_ERROR, "%s",
|
||||||
_("invalid node memory value"));
|
_("invalid node memory value"));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (rc == 0)
|
||||||
|
nodeInfo->memory = memory;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user