conf: Fold private data parsing into virDomainStorageSourceParse

Storage source private data can be parsed along with other components of
private data rather than a separate function which is called from
multiple places.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Peter Krempa 2019-03-15 16:33:38 +01:00
parent bdc76386d3
commit 971872ca27
3 changed files with 15 additions and 32 deletions

View File

@ -9020,31 +9020,6 @@ virDomainDiskSourceNetworkParse(xmlNodePtr node,
}
static int
virDomainDiskSourcePrivateDataParse(xmlNodePtr node,
xmlXPathContextPtr ctxt,
virStorageSourcePtr src,
unsigned int flags,
virDomainXMLOptionPtr xmlopt)
{
VIR_XPATH_NODE_AUTORESTORE(ctxt);
if (!(flags & VIR_DOMAIN_DEF_PARSE_STATUS) ||
!xmlopt || !xmlopt->privateData.storageParse)
return 0;
ctxt->node = node;
if (!(ctxt->node = virXPathNode("./privateData", ctxt)))
return 0;
if (xmlopt->privateData.storageParse(ctxt, src) < 0)
return -1;
return 0;
}
static int
virDomainDiskSourcePRParse(xmlNodePtr node,
xmlXPathContextPtr ctxt,
@ -9068,7 +9043,8 @@ int
virDomainStorageSourceParse(xmlNodePtr node,
xmlXPathContextPtr ctxt,
virStorageSourcePtr src,
unsigned int flags)
unsigned int flags,
virDomainXMLOptionPtr xmlopt)
{
VIR_XPATH_NODE_AUTORESTORE(ctxt);
xmlNodePtr tmp;
@ -9122,6 +9098,15 @@ virDomainStorageSourceParse(xmlNodePtr node,
if (src->path && !*src->path)
VIR_FREE(src->path);
if ((flags & VIR_DOMAIN_DEF_PARSE_STATUS) &&
xmlopt && xmlopt->privateData.storageParse &&
(tmp = virXPathNode("./privateData", ctxt))) {
ctxt->node = tmp;
if (xmlopt->privateData.storageParse(ctxt, src) < 0)
return -1;
}
return 0;
}
@ -9133,10 +9118,7 @@ virDomainDiskSourceParse(xmlNodePtr node,
unsigned int flags,
virDomainXMLOptionPtr xmlopt)
{
if (virDomainStorageSourceParse(node, ctxt, src, flags) < 0)
return -1;
if (virDomainDiskSourcePrivateDataParse(node, ctxt, src, flags, xmlopt) < 0)
if (virDomainStorageSourceParse(node, ctxt, src, flags, xmlopt) < 0)
return -1;
return 0;

View File

@ -3467,7 +3467,8 @@ int virDomainStorageSourceFormat(virBufferPtr attrBuf,
int virDomainStorageSourceParse(xmlNodePtr node,
xmlXPathContextPtr ctxt,
virStorageSourcePtr src,
unsigned int flags)
unsigned int flags,
virDomainXMLOptionPtr xmlopt)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);
int virDomainDefGetVcpuPinInfoHelper(virDomainDefPtr def,

View File

@ -2760,7 +2760,7 @@ qemuDomainObjPrivateXMLParseJobNBDSource(xmlNodePtr node,
}
if (virDomainStorageSourceParse(ctxt->node, ctxt, migrSource,
VIR_DOMAIN_DEF_PARSE_STATUS) < 0)
VIR_DOMAIN_DEF_PARSE_STATUS, NULL) < 0)
goto cleanup;
if ((ctxt->node = virXPathNode("./privateData", ctxt)) &&