static int
qemuDomainObjPrivateXMLFormatNBDMigrationSource(virBufferPtr buf,
- virStorageSourcePtr src)
+ virStorageSourcePtr src,
+ virDomainXMLOptionPtr xmlopt)
{
VIR_AUTOCLEAN(virBuffer) attrBuf = VIR_BUFFER_INITIALIZER;
VIR_AUTOCLEAN(virBuffer) childBuf = VIR_BUFFER_INITIALIZER;
- VIR_AUTOCLEAN(virBuffer) privateDataBuf = VIR_BUFFER_INITIALIZER;
int ret = -1;
virBufferSetChildIndent(&childBuf, buf);
- virBufferSetChildIndent(&privateDataBuf, &childBuf);
virBufferAsprintf(&attrBuf, " type='%s' format='%s'",
virStorageTypeToString(src->type),
virStorageFileFormatTypeToString(src->format));
- if (virDomainStorageSourceFormat(&attrBuf, &childBuf, src,
- VIR_DOMAIN_DEF_FORMAT_STATUS) < 0)
- goto cleanup;
-
- if (qemuStorageSourcePrivateDataFormat(src, &privateDataBuf) < 0)
- goto cleanup;
-
- if (virXMLFormatElement(&childBuf, "privateData", NULL, &privateDataBuf) < 0)
+ if (virDomainDiskSourceFormat(&childBuf, src, 0, false,
+ VIR_DOMAIN_DEF_FORMAT_STATUS, xmlopt) < 0)
goto cleanup;
if (virXMLFormatElement(buf, "migrationSource", &attrBuf, &childBuf) < 0)
qemuDomainObjPrivateXMLFormatNBDMigration(virBufferPtr buf,
virDomainObjPtr vm)
{
+ qemuDomainObjPrivatePtr priv = vm->privateData;
VIR_AUTOCLEAN(virBuffer) attrBuf = VIR_BUFFER_INITIALIZER;
VIR_AUTOCLEAN(virBuffer) childBuf = VIR_BUFFER_INITIALIZER;
size_t i;
if (diskPriv->migrSource &&
qemuDomainObjPrivateXMLFormatNBDMigrationSource(&childBuf,
- diskPriv->migrSource) < 0)
+ diskPriv->migrSource,
+ priv->driver->xmlopt) < 0)
goto cleanup;
if (virXMLFormatElement(buf, "disk", &attrBuf, &childBuf) < 0)
char *type = NULL;
int ret = -1;
VIR_AUTOUNREF(virStorageSourcePtr) migrSource = NULL;
+ xmlNodePtr sourceNode;
ctxt->node = node;
goto cleanup;
}
+ /* newer libvirt uses the <source> subelement instead of formatting the
+ * source directly into <migrationSource> */
+ if ((sourceNode = virXPathNode("./source", ctxt)))
+ ctxt->node = sourceNode;
+
if (virDomainStorageSourceParse(ctxt->node, ctxt, migrSource,
VIR_DOMAIN_DEF_PARSE_STATUS, NULL) < 0)
goto cleanup;
</qemuCaps>
<job type='none' async='migration out' phase='perform3' flags='0x0'>
<disk dev='vdb' migrating='yes'>
- <migrationSource type='network' format='raw' protocol='nbd' name='drive-virtio-disk1' tlsFromConfig='0'>
- <host name='andariel.usersys.redhat.com' port='49152'/>
- <privateData>
- <nodenames>
- <nodename type='storage' name='migration-vdb-storage'/>
- <nodename type='format' name='migration-vdb-format'/>
- </nodenames>
- </privateData>
+ <migrationSource type='network' format='raw'>
+ <source protocol='nbd' name='drive-virtio-disk1' tlsFromConfig='0'>
+ <host name='andariel.usersys.redhat.com' port='49152'/>
+ <privateData>
+ <nodenames>
+ <nodename type='storage' name='migration-vdb-storage'/>
+ <nodename type='format' name='migration-vdb-format'/>
+ </nodenames>
+ </privateData>
+ </source>
</migrationSource>
</disk>
<disk dev='vdc' migrating='yes'>
</qemuCaps>
<job type='none' async='migration out' phase='perform3' flags='0x0'>
<disk dev='vdb' migrating='yes'>
- <migrationSource type='network' format='raw' protocol='nbd' name='drive-virtio-disk1' tlsFromConfig='0'>
- <host name='andariel.usersys.redhat.com' port='49152'/>
- <privateData>
- <nodenames>
- <nodename type='storage' name='migration-vdb-storage'/>
- <nodename type='format' name='migration-vdb-format'/>
- </nodenames>
- </privateData>
+ <migrationSource type='network' format='raw'>
+ <source protocol='nbd' name='drive-virtio-disk1' tlsFromConfig='0'>
+ <host name='andariel.usersys.redhat.com' port='49152'/>
+ <privateData>
+ <nodenames>
+ <nodename type='storage' name='migration-vdb-storage'/>
+ <nodename type='format' name='migration-vdb-format'/>
+ </nodenames>
+ </privateData>
+ </source>
</migrationSource>
</disk>
<disk dev='vdc' migrating='yes'>
- <migrationSource type='network' format='raw' protocol='nbd' name='drive-virtio-disk2' tlsFromConfig='0'>
- <host name='andariel.usersys.redhat.com' port='49152'/>
- <privateData>
- <nodenames>
- <nodename type='storage' name='migration-vdc-storage'/>
- <nodename type='format' name='migration-vdc-format'/>
- </nodenames>
- </privateData>
+ <migrationSource type='network' format='raw'>
+ <source protocol='nbd' name='drive-virtio-disk2' tlsFromConfig='0'>
+ <host name='andariel.usersys.redhat.com' port='49152'/>
+ <privateData>
+ <nodenames>
+ <nodename type='storage' name='migration-vdc-storage'/>
+ <nodename type='format' name='migration-vdc-format'/>
+ </nodenames>
+ </privateData>
+ </source>
</migrationSource>
</disk>
<disk dev='hda' migrating='no'/>