mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-11 07:17:44 +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
|
static int
|
||||||
virDomainDiskSourcePRParse(xmlNodePtr node,
|
virDomainDiskSourcePRParse(xmlNodePtr node,
|
||||||
xmlXPathContextPtr ctxt,
|
xmlXPathContextPtr ctxt,
|
||||||
@ -9068,7 +9043,8 @@ int
|
|||||||
virDomainStorageSourceParse(xmlNodePtr node,
|
virDomainStorageSourceParse(xmlNodePtr node,
|
||||||
xmlXPathContextPtr ctxt,
|
xmlXPathContextPtr ctxt,
|
||||||
virStorageSourcePtr src,
|
virStorageSourcePtr src,
|
||||||
unsigned int flags)
|
unsigned int flags,
|
||||||
|
virDomainXMLOptionPtr xmlopt)
|
||||||
{
|
{
|
||||||
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
xmlNodePtr tmp;
|
xmlNodePtr tmp;
|
||||||
@ -9122,6 +9098,15 @@ virDomainStorageSourceParse(xmlNodePtr node,
|
|||||||
if (src->path && !*src->path)
|
if (src->path && !*src->path)
|
||||||
VIR_FREE(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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -9133,10 +9118,7 @@ virDomainDiskSourceParse(xmlNodePtr node,
|
|||||||
unsigned int flags,
|
unsigned int flags,
|
||||||
virDomainXMLOptionPtr xmlopt)
|
virDomainXMLOptionPtr xmlopt)
|
||||||
{
|
{
|
||||||
if (virDomainStorageSourceParse(node, ctxt, src, flags) < 0)
|
if (virDomainStorageSourceParse(node, ctxt, src, flags, xmlopt) < 0)
|
||||||
return -1;
|
|
||||||
|
|
||||||
if (virDomainDiskSourcePrivateDataParse(node, ctxt, src, flags, xmlopt) < 0)
|
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -3467,7 +3467,8 @@ int virDomainStorageSourceFormat(virBufferPtr attrBuf,
|
|||||||
int virDomainStorageSourceParse(xmlNodePtr node,
|
int virDomainStorageSourceParse(xmlNodePtr node,
|
||||||
xmlXPathContextPtr ctxt,
|
xmlXPathContextPtr ctxt,
|
||||||
virStorageSourcePtr src,
|
virStorageSourcePtr src,
|
||||||
unsigned int flags)
|
unsigned int flags,
|
||||||
|
virDomainXMLOptionPtr xmlopt)
|
||||||
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);
|
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);
|
||||||
|
|
||||||
int virDomainDefGetVcpuPinInfoHelper(virDomainDefPtr def,
|
int virDomainDefGetVcpuPinInfoHelper(virDomainDefPtr def,
|
||||||
|
@ -2760,7 +2760,7 @@ qemuDomainObjPrivateXMLParseJobNBDSource(xmlNodePtr node,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (virDomainStorageSourceParse(ctxt->node, ctxt, migrSource,
|
if (virDomainStorageSourceParse(ctxt->node, ctxt, migrSource,
|
||||||
VIR_DOMAIN_DEF_PARSE_STATUS) < 0)
|
VIR_DOMAIN_DEF_PARSE_STATUS, NULL) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
if ((ctxt->node = virXPathNode("./privateData", ctxt)) &&
|
if ((ctxt->node = virXPathNode("./privateData", ctxt)) &&
|
||||||
|
Loading…
Reference in New Issue
Block a user