virDomainCheckpointDefParse(xmlXPathContextPtr ctxt,
virCapsPtr caps,
virDomainXMLOptionPtr xmlopt,
+ void *parseOpaque,
unsigned int flags)
{
virDomainCheckpointDefPtr ret = NULL;
return NULL;
}
def->parent.dom = virDomainDefParseNode(ctxt->node->doc, domainNode,
- caps, xmlopt, NULL,
+ caps, xmlopt, parseOpaque,
domainflags);
if (!def->parent.dom)
return NULL;
xmlNodePtr root,
virCapsPtr caps,
virDomainXMLOptionPtr xmlopt,
+ void *parseOpaque,
unsigned int flags)
{
xmlXPathContextPtr ctxt = NULL;
}
ctxt->node = root;
- def = virDomainCheckpointDefParse(ctxt, caps, xmlopt, flags);
+ def = virDomainCheckpointDefParse(ctxt, caps, xmlopt, parseOpaque, flags);
cleanup:
xmlXPathFreeContext(ctxt);
return def;
virDomainCheckpointDefParseString(const char *xmlStr,
virCapsPtr caps,
virDomainXMLOptionPtr xmlopt,
+ void *parseOpaque,
unsigned int flags)
{
virDomainCheckpointDefPtr ret = NULL;
if ((xml = virXMLParse(NULL, xmlStr, _("(domain_checkpoint)")))) {
xmlKeepBlanksDefault(keepBlanksDefault);
ret = virDomainCheckpointDefParseNode(xml, xmlDocGetRootElement(xml),
- caps, xmlopt, flags);
+ caps, xmlopt, parseOpaque, flags);
xmlFreeDoc(xml);
}
xmlKeepBlanksDefault(keepBlanksDefault);
virDomainCheckpointDefParseString(const char *xmlStr,
virCapsPtr caps,
virDomainXMLOptionPtr xmlopt,
+ void *parseOpaque,
unsigned int flags);
virDomainCheckpointDefPtr
virDomainSnapshotDefParse(xmlXPathContextPtr ctxt,
virCapsPtr caps,
virDomainXMLOptionPtr xmlopt,
+ void *parseOpaque,
bool *current,
unsigned int flags)
{
goto cleanup;
}
def->parent.dom = virDomainDefParseNode(ctxt->node->doc, domainNode,
- caps, xmlopt, NULL, domainflags);
+ caps, xmlopt, parseOpaque,
+ domainflags);
if (!def->parent.dom)
goto cleanup;
} else {
xmlNodePtr root,
virCapsPtr caps,
virDomainXMLOptionPtr xmlopt,
+ void *parseOpaque,
bool *current,
unsigned int flags)
{
}
ctxt->node = root;
- def = virDomainSnapshotDefParse(ctxt, caps, xmlopt, current, flags);
+ def = virDomainSnapshotDefParse(ctxt, caps, xmlopt, parseOpaque, current, flags);
cleanup:
xmlXPathFreeContext(ctxt);
return def;
virDomainSnapshotDefParseString(const char *xmlStr,
virCapsPtr caps,
virDomainXMLOptionPtr xmlopt,
+ void *parseOpaque,
bool *current,
unsigned int flags)
{
if ((xml = virXMLParse(NULL, xmlStr, _("(domain_snapshot)")))) {
xmlKeepBlanksDefault(keepBlanksDefault);
ret = virDomainSnapshotDefParseNode(xml, xmlDocGetRootElement(xml),
- caps, xmlopt, current, flags);
+ caps, xmlopt, parseOpaque,
+ current, flags);
xmlFreeDoc(xml);
}
xmlKeepBlanksDefault(keepBlanksDefault);
virDomainSnapshotDefPtr virDomainSnapshotDefParseString(const char *xmlStr,
virCapsPtr caps,
virDomainXMLOptionPtr xmlopt,
+ void *parseOpaque,
bool *current,
unsigned int flags);
virDomainSnapshotDefPtr virDomainSnapshotDefParseNode(xmlDocPtr xml,
xmlNodePtr root,
virCapsPtr caps,
virDomainXMLOptionPtr xmlopt,
+ void *parseOpaque,
bool *current,
unsigned int flags);
virDomainSnapshotDefPtr virDomainSnapshotDefNew(void);
return NULL;
def = virDomainSnapshotDefParseString(xmlDesc, priv->caps,
- priv->xmlopt, NULL, parse_flags);
+ priv->xmlopt, NULL, NULL, parse_flags);
if (!def)
return NULL;
int ret = -1;
virCapsPtr caps = NULL;
int direrr;
+ qemuDomainObjPrivatePtr priv;
virObjectLock(vm);
+
+ priv = vm->privateData;
+
if (virAsprintf(&snapDir, "%s/%s", baseDir, vm->def->name) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to allocate memory for "
}
def = virDomainSnapshotDefParseString(xmlStr, caps,
- qemu_driver->xmlopt, &cur,
+ qemu_driver->xmlopt,
+ priv->qemuCaps, &cur,
flags);
if (def == NULL) {
/* Nothing we can do here, skip this one */
int ret = -1;
virCapsPtr caps = NULL;
int direrr;
+ qemuDomainObjPrivatePtr priv;
virObjectLock(vm);
+ priv = vm->privateData;
+
if (virAsprintf(&chkDir, "%s/%s", baseDir, vm->def->name) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to allocate memory for "
def = virDomainCheckpointDefParseString(xmlStr, caps,
qemu_driver->xmlopt,
+ priv->qemuCaps,
flags);
if (!def || virDomainCheckpointAlignDisks(def) < 0) {
/* Nothing we can do here, skip this one */
goto cleanup;
}
+ priv = vm->privateData;
cfg = virQEMUDriverGetConfig(driver);
if (virDomainSnapshotCreateXMLEnsureACL(domain->conn, vm->def, flags) < 0)
parse_flags |= VIR_DOMAIN_SNAPSHOT_PARSE_VALIDATE;
if (!(def = virDomainSnapshotDefParseString(xmlDesc, caps, driver->xmlopt,
- NULL, parse_flags)))
+ priv->qemuCaps, NULL, parse_flags)))
goto cleanup;
/* reject snapshot names containing slashes or starting with dot as
qemuDomainObjSetAsyncJobMask(vm, QEMU_JOB_NONE);
- priv = vm->privateData;
-
if (redefine) {
if (virDomainSnapshotRedefinePrep(domain, vm, &def, &snap,
driver->xmlopt,
}
if (!(def = virDomainCheckpointDefParseString(xmlDesc, caps, driver->xmlopt,
- parse_flags)))
+ priv->qemuCaps, parse_flags)))
goto cleanup;
/* Unlike snapshots, the RNG schema already ensured a sane filename. */
def = virDomainSnapshotDefParseNode(ctxt->doc, node,
privconn->caps,
privconn->xmlopt,
+ NULL,
&cur,
VIR_DOMAIN_SNAPSHOT_PARSE_DISKS |
VIR_DOMAIN_SNAPSHOT_PARSE_INTERNAL |
if (!(def = virDomainSnapshotDefParseString(xmlDesc,
privconn->caps,
privconn->xmlopt,
- NULL,
+ NULL, NULL,
parse_flags)))
goto cleanup;
}
if (!(def = virDomainCheckpointDefParseString(xmlDesc, privconn->caps,
- privconn->xmlopt,
+ privconn->xmlopt, NULL,
parse_flags)))
goto cleanup;
parse_flags |= VIR_DOMAIN_SNAPSHOT_PARSE_VALIDATE;
if (!(def = virDomainSnapshotDefParseString(xmlDesc, data->caps,
- data->xmlopt, NULL,
+ data->xmlopt, NULL, NULL,
parse_flags)))
goto cleanup;
}
def = virDomainSnapshotDefParseString(defXml,
data->caps,
- data->xmlopt, NULL,
+ data->xmlopt, NULL, NULL,
VIR_DOMAIN_SNAPSHOT_PARSE_DISKS |
VIR_DOMAIN_SNAPSHOT_PARSE_REDEFINE);
if (!def) {
return -1;
if (!(def = virDomainCheckpointDefParseString(inXmlData, driver.caps,
- driver.xmlopt,
+ driver.xmlopt, NULL,
parseflags))) {
if (flags & TEST_INVALID)
return 0;
goto cleanup;
if (!(def = virDomainSnapshotDefParseString(inXmlData, driver.caps,
- driver.xmlopt, &cur,
+ driver.xmlopt, NULL, &cur,
parseflags)))
goto cleanup;
if (cur) {