Signed-off-by: Tim Wiederhake <twiederh(a)redhat.com>
---
src/conf/domain_conf.c | 84 ++++++++++--------------------------------
1 file changed, 20 insertions(+), 64 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 20cf987176..52d12bfb43 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -18228,32 +18228,16 @@ virDomainVcpuParse(virDomainDef *def,
}
VIR_FREE(tmp);
- if ((tmp = virXMLPropString(vcpuNode, "current"))) {
- if (virStrToLong_ui(tmp, NULL, 10, &vcpus) < 0) {
- virReportError(VIR_ERR_XML_ERROR, "%s",
- _("current vcpus count must be an integer"));
- return -1;
- }
- VIR_FREE(tmp);
- } else {
- vcpus = maxvcpus;
- }
+ vcpus = maxvcpus;
- tmp = virXMLPropString(vcpuNode, "placement");
- if (tmp) {
- int placement_mode;
- if ((placement_mode =
- virDomainCpuPlacementModeTypeFromString(tmp)) < 0) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
- _("Unsupported CPU placement mode
'%s'"),
- tmp);
- return -1;
- }
- def->placement_mode = placement_mode;
- VIR_FREE(tmp);
- } else {
- def->placement_mode = VIR_DOMAIN_CPU_PLACEMENT_MODE_STATIC;
- }
+ if (virXMLPropUInt(vcpuNode, "current", 10, VIR_XML_PROP_NONE,
&vcpus) < 0)
+ return -1;
+
+ def->placement_mode = VIR_DOMAIN_CPU_PLACEMENT_MODE_STATIC;
+ if (virXMLPropEnum(vcpuNode, "placement",
+ virDomainCpuPlacementModeTypeFromString,
+ VIR_XML_PROP_NONE, &def->placement_mode) < 0)
+ return -1;
if (def->placement_mode != VIR_DOMAIN_CPU_PLACEMENT_MODE_AUTO) {
tmp = virXMLPropString(vcpuNode, "cpuset");
@@ -18284,18 +18268,11 @@ virDomainVcpuParse(virDomainDef *def,
for (i = 0; i < n; i++) {
virDomainVcpuDef *vcpu;
- int state;
+ virTristateBool state;
unsigned int id;
- unsigned int order;
- if (!(tmp = virXMLPropString(nodes[i], "id")) ||
- virStrToLong_uip(tmp, NULL, 10, &id) < 0) {
- virReportError(VIR_ERR_XML_ERROR, "%s",
- _("missing or invalid vcpu id"));
+ if (virXMLPropUInt(nodes[i], "id", 10, VIR_XML_PROP_REQUIRED,
&id) < 0)
return -1;
- }
-
- VIR_FREE(tmp);
if (id >= def->maxvcpus) {
virReportError(VIR_ERR_XML_ERROR,
@@ -18306,41 +18283,20 @@ virDomainVcpuParse(virDomainDef *def,
vcpu = virDomainDefGetVcpu(def, id);
- if (!(tmp = virXMLPropString(nodes[i], "enabled"))) {
- virReportError(VIR_ERR_XML_ERROR, "%s",
- _("missing vcpu enabled state"));
- return -1;
- }
-
- if ((state = virTristateBoolTypeFromString(tmp)) < 0) {
- virReportError(VIR_ERR_XML_ERROR,
- _("invalid vcpu 'enabled' value
'%s'"), tmp);
+ if (virXMLPropTristateBool(nodes[i], "enabled",
+ VIR_XML_PROP_REQUIRED, &state) < 0)
return -1;
- }
- VIR_FREE(tmp);
vcpu->online = state == VIR_TRISTATE_BOOL_YES;
- if ((tmp = virXMLPropString(nodes[i], "hotpluggable"))) {
- int hotpluggable;
- if ((hotpluggable = virTristateBoolTypeFromString(tmp)) < 0) {
- virReportError(VIR_ERR_XML_ERROR,
- _("invalid vcpu 'hotpluggable' value
'%s'"), tmp);
- return -1;
- }
- vcpu->hotpluggable = hotpluggable;
- VIR_FREE(tmp);
- }
+ if (virXMLPropTristateBool(nodes[i], "hotpluggable",
+ VIR_XML_PROP_NONE,
+ &vcpu->hotpluggable) < 0)
+ return -1;
- if ((tmp = virXMLPropString(nodes[i], "order"))) {
- if (virStrToLong_uip(tmp, NULL, 10, &order) < 0) {
- virReportError(VIR_ERR_XML_ERROR, "%s",
- _("invalid vcpu order"));
- return -1;
- }
- vcpu->order = order;
- VIR_FREE(tmp);
- }
+ if (virXMLPropUInt(nodes[i], "order", 10, VIR_XML_PROP_NONE,
+ &vcpu->order) < 0)
+ return -1;
}
} else {
if (virDomainDefSetVcpus(def, vcpus) < 0)
--
2.26.3