mirror of https://gitee.com/openkylin/libvirt.git
snapshot: Allow for post-parse override
Wire up the accessor functions necessary for the testsuite to install an alternative post-parse handler from normal drivers. I could have modified the signature for virDomainXMLOptionNew() to take another parameter, but thought it was easier to add a new set function rather than chase down all existing callers. Until code actually sets the override, there is no change in behavior. Signed-off-by: Eric Blake <eblake@redhat.com> Reviewed-by: Cole Robinson <crobinso@redhat.com>
This commit is contained in:
parent
5ba4d81ce9
commit
df2ae0d042
|
@ -82,6 +82,9 @@ struct _virDomainXMLOption {
|
|||
|
||||
/* Private data for save image stored in snapshot XML */
|
||||
virSaveCookieCallbacks saveCookie;
|
||||
|
||||
/* Snapshot postparse callbacks */
|
||||
virDomainMomentPostParseCallback momentPostParse;
|
||||
};
|
||||
|
||||
#define VIR_DOMAIN_DEF_FORMAT_COMMON_FLAGS \
|
||||
|
@ -1476,6 +1479,24 @@ virDomainXMLOptionGetSaveCookie(virDomainXMLOptionPtr xmlopt)
|
|||
}
|
||||
|
||||
|
||||
void
|
||||
virDomainXMLOptionSetMomentPostParse(virDomainXMLOptionPtr xmlopt,
|
||||
virDomainMomentPostParseCallback cb)
|
||||
{
|
||||
xmlopt->momentPostParse = cb;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
virDomainXMLOptionRunMomentPostParse(virDomainXMLOptionPtr xmlopt,
|
||||
virDomainMomentDefPtr def)
|
||||
{
|
||||
if (!xmlopt->momentPostParse)
|
||||
return virDomainMomentDefPostParse(def);
|
||||
return xmlopt->momentPostParse(def);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
virBlkioDeviceArrayClear(virBlkioDevicePtr devices,
|
||||
int ndevices)
|
||||
|
|
|
@ -2728,6 +2728,13 @@ virDomainXMLOptionPtr virDomainXMLOptionNew(virDomainDefParserConfigPtr config,
|
|||
virSaveCookieCallbacksPtr
|
||||
virDomainXMLOptionGetSaveCookie(virDomainXMLOptionPtr xmlopt);
|
||||
|
||||
typedef int (*virDomainMomentPostParseCallback)(virDomainMomentDefPtr def);
|
||||
|
||||
void virDomainXMLOptionSetMomentPostParse(virDomainXMLOptionPtr xmlopt,
|
||||
virDomainMomentPostParseCallback cb);
|
||||
int virDomainXMLOptionRunMomentPostParse(virDomainXMLOptionPtr xmlopt,
|
||||
virDomainMomentDefPtr def);
|
||||
|
||||
void virDomainNetGenerateMAC(virDomainXMLOptionPtr xmlopt, virMacAddrPtr mac);
|
||||
|
||||
virDomainXMLNamespacePtr
|
||||
|
|
|
@ -270,7 +270,7 @@ virDomainSnapshotDefParse(xmlXPathContextPtr ctxt,
|
|||
} else {
|
||||
VIR_WARN("parsing older snapshot that lacks domain");
|
||||
}
|
||||
} else if (virDomainMomentDefPostParse(&def->common) < 0) {
|
||||
} else if (virDomainXMLOptionRunMomentPostParse(xmlopt, &def->common) < 0) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
|
|
|
@ -608,6 +608,7 @@ virDomainWatchdogModelTypeToString;
|
|||
virDomainXMLOptionGetNamespace;
|
||||
virDomainXMLOptionGetSaveCookie;
|
||||
virDomainXMLOptionNew;
|
||||
virDomainXMLOptionSetMomentPostParse;
|
||||
|
||||
|
||||
# conf/domain_event.h
|
||||
|
|
Loading…
Reference in New Issue