mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-23 14:15:28 +00:00
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:
parent
bdc76386d3
commit
971872ca27
@ -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;
|
||||
|
@ -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,
|
||||
|
@ -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)) &&
|
||||
|
Loading…
Reference in New Issue
Block a user