separate virDomainDefParseSysinfoInfo from virDomainDefParseXML
---
src/conf/domain_conf.c | 40 ++++++++++++++++++++++++++++------------
1 file changed, 28 insertions(+), 12 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index de8a9fc..a8fc27c 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -20997,6 +20997,33 @@ virDomainDefParseIdmapInfo(virDomainParseTotalParamPtr param)
}
+static int
+virDomainDefParseSysinfoInfo(virDomainParseTotalParamPtr param)
+{
+ virDomainDefPtr def = param->def;
+ xmlXPathContextPtr ctxt = param->ctxt;
+ bool uuid_generated = param->uuid_generated;
+
+ int ret = -1;
+ xmlNodePtr node = NULL;
+
+ if ((node = virXPathNode("./sysinfo[1]", ctxt)) != NULL) {
+ xmlNodePtr oldnode = ctxt->node;
+ ctxt->node = node;
+ def->sysinfo = virSysinfoParseXML(node, ctxt,
+ def->uuid, uuid_generated);
+ ctxt->node = oldnode;
+
+ if (def->sysinfo == NULL)
+ goto cleanup;
+ }
+ ret = 0;
+
+ cleanup:
+ return ret;
+}
+
+
static virDomainDefPtr
virDomainDefParseXML(xmlDocPtr xml,
xmlNodePtr root,
@@ -21012,7 +21039,6 @@ virDomainDefParseXML(xmlDocPtr xml,
char *tmp = NULL;
size_t fun_index = 0;
virDomainDefPtr def;
- bool uuid_generated = false;
virHashTablePtr bootHash = NULL;
virDomainParseTotalParam param = {
xml,
@@ -21052,6 +21078,7 @@ virDomainDefParseXML(xmlDocPtr xml,
virDomainDefParseBootOptionsInfo,
virDomainDefParseDeviceInfo,
virDomainDefParseIdmapInfo,
+ virDomainDefParseSysinfoInfo,
NULL
};
@@ -21083,17 +21110,6 @@ virDomainDefParseXML(xmlDocPtr xml,
fun_index++;
}
- if ((node = virXPathNode("./sysinfo[1]", ctxt)) != NULL) {
- xmlNodePtr oldnode = ctxt->node;
- ctxt->node = node;
- def->sysinfo = virSysinfoParseXML(node, ctxt,
- def->uuid, uuid_generated);
- ctxt->node = oldnode;
-
- if (def->sysinfo == NULL)
- goto error;
- }
-
if (virDomainKeyWrapDefParseXML(def, ctxt) < 0)
goto error;
--
2.8.3