提交 afece205 编写于 作者: P Peter Krempa

qemu: checkpoint: Forbid creating checkpoints until we support backups

Checkpoints by themselves are not very useful for anything else than
testing the few bitmap interactions that are currently implemented.

It's very unlikely that anybody used this feature and thus we can
disable it until we have a more complete implementation ready.

Additionally the code for deleting checkpoints has many broken failure
scenarios which should be fixed first. This will require support of
deleting a bitmap in a qemu 'transaction' which was not released yet.

Curious users obviously can use the qemu namespace in the XML to enable
this for experiments:

  <domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
    ...
    <qemu:capabilities>
      <qemu:add capability='incremental-backup'/>
    </qemu:capabilities>
  </domain>
Signed-off-by: NPeter Krempa <pkrempa@redhat.com>
Reviewed-by: NEric Blake <eblake@redhat.com>
上级 f0be06f5
...@@ -383,9 +383,9 @@ qemuCheckpointCreateXML(virDomainPtr domain, ...@@ -383,9 +383,9 @@ qemuCheckpointCreateXML(virDomainPtr domain,
return NULL; return NULL;
} }
if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BITMAP_MERGE)) { if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_INCREMENTAL_BACKUP)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
_("qemu binary lacks persistent bitmaps support")); _("incremental backup is not supported yet"));
return NULL; return NULL;
} }
...@@ -570,14 +570,15 @@ qemuCheckpointDelete(virDomainObjPtr vm, ...@@ -570,14 +570,15 @@ qemuCheckpointDelete(virDomainObjPtr vm,
return -1; return -1;
if (!metadata_only) { if (!metadata_only) {
if (!virDomainObjIsActive(vm)) { if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_INCREMENTAL_BACKUP)) {
virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
_("cannot delete checkpoint for inactive domain")); _("incremental backup is not supported yet"));
goto endjob; goto endjob;
} }
if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BITMAP_MERGE)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", if (!virDomainObjIsActive(vm)) {
_("qemu binary lacks persistent bitmaps support")); virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
_("cannot delete checkpoint for inactive domain"));
goto endjob; goto endjob;
} }
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册