提交 07141541 编写于 作者: P Peter Krempa

conf: Extract parsing of storage source related data

Split out the parser and separate it from the private data part so that
it can be later reused in other parts of the code.
Signed-off-by: NPeter Krempa <pkrempa@redhat.com>
上级 b17573fe
......@@ -8554,24 +8554,26 @@ virDomainDiskSourceNetworkParse(xmlNodePtr node,
static int
virDomainDiskSourcePrivateDataParse(xmlXPathContextPtr ctxt,
virDomainDiskSourcePrivateDataParse(xmlNodePtr node,
xmlXPathContextPtr ctxt,
virStorageSourcePtr src,
unsigned int flags,
virDomainXMLOptionPtr xmlopt)
{
xmlNodePtr saveNode = ctxt->node;
xmlNodePtr node;
int ret = -1;
if (!(flags & VIR_DOMAIN_DEF_PARSE_STATUS) ||
!xmlopt || !xmlopt->privateData.storageParse)
return 0;
if (!(node = virXPathNode("./privateData", ctxt)))
return 0;
ctxt->node = node;
if (!(ctxt->node = virXPathNode("./privateData", ctxt))) {
ret = 0;
goto cleanup;
}
if (xmlopt->privateData.storageParse(ctxt, src) < 0)
goto cleanup;
......@@ -8584,12 +8586,11 @@ virDomainDiskSourcePrivateDataParse(xmlXPathContextPtr ctxt,
}
int
virDomainDiskSourceParse(xmlNodePtr node,
xmlXPathContextPtr ctxt,
virStorageSourcePtr src,
unsigned int flags,
virDomainXMLOptionPtr xmlopt)
static int
virDomainStorageSourceParse(xmlNodePtr node,
xmlXPathContextPtr ctxt,
virStorageSourcePtr src,
unsigned int flags)
{
int ret = -1;
xmlNodePtr saveNode = ctxt->node;
......@@ -8635,9 +8636,6 @@ virDomainDiskSourceParse(xmlNodePtr node,
ctxt, flags) < 0)
goto cleanup;
if (virDomainDiskSourcePrivateDataParse(ctxt, src, flags, xmlopt) < 0)
goto cleanup;
/* People sometimes pass a bogus '' source path when they mean to omit the
* source element completely (e.g. CDROM without media). This is just a
* little compatibility check to help those broken apps */
......@@ -8652,6 +8650,23 @@ virDomainDiskSourceParse(xmlNodePtr node,
}
int
virDomainDiskSourceParse(xmlNodePtr node,
xmlXPathContextPtr ctxt,
virStorageSourcePtr src,
unsigned int flags,
virDomainXMLOptionPtr xmlopt)
{
if (virDomainStorageSourceParse(node, ctxt, src, flags) < 0)
return -1;
if (virDomainDiskSourcePrivateDataParse(node, ctxt, src, flags, xmlopt) < 0)
return -1;
return 0;
}
static int
virDomainDiskBackingStoreParse(xmlXPathContextPtr ctxt,
virStorageSourcePtr src,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册