]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
Add 'backup' block job type
authorPeter Krempa <pkrempa@redhat.com>
Fri, 18 Oct 2019 13:10:33 +0000 (15:10 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Tue, 10 Dec 2019 11:41:57 +0000 (12:41 +0100)
A backup job may consist of many backup sub-blockjobs. Add the new
blockjob type and add all type converter strings.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
examples/c/misc/event-test.c
include/libvirt/libvirt-domain.h
src/conf/domain_conf.c
src/qemu/qemu_blockjob.c
src/qemu/qemu_blockjob.h
src/qemu/qemu_domain.c
src/qemu/qemu_driver.c
src/qemu/qemu_monitor_json.c
tools/virsh-domain.c

index 5db572175d8664559e987e97e9dd1465526cb74a..ae282a5027784ed397aee407f555ea66412874e9 100644 (file)
@@ -891,6 +891,9 @@ blockJobTypeToStr(int type)
 
     case VIR_DOMAIN_BLOCK_JOB_TYPE_ACTIVE_COMMIT:
         return "active layer block commit";
+
+    case VIR_DOMAIN_BLOCK_JOB_TYPE_BACKUP:
+        return "backup";
     }
 
     return "unknown";
index b03df65ae67f8980695a574cfb817bbb72f30519..e60003978a8a9c57cde4de3ee18dd575842ef266 100644 (file)
@@ -2460,6 +2460,9 @@ typedef enum {
      * exists as long as sync is active */
     VIR_DOMAIN_BLOCK_JOB_TYPE_ACTIVE_COMMIT = 4,
 
+    /* Backup (virDomainBackupBegin) */
+    VIR_DOMAIN_BLOCK_JOB_TYPE_BACKUP = 5,
+
 # ifdef VIR_ENUM_SENTINELS
     VIR_DOMAIN_BLOCK_JOB_TYPE_LAST
 # endif
index 8b40623eef2fe3bbebf2f74dbca187e89f93308c..50d9230239bd6e1634cbcef48ade7e32fc3cd5e8 100644 (file)
@@ -1227,7 +1227,7 @@ VIR_ENUM_IMPL(virDomainOsDefFirmware,
 VIR_ENUM_DECL(virDomainBlockJob);
 VIR_ENUM_IMPL(virDomainBlockJob,
               VIR_DOMAIN_BLOCK_JOB_TYPE_LAST,
-              "", "", "copy", "", "active-commit",
+              "", "", "copy", "", "active-commit", "",
 );
 
 VIR_ENUM_IMPL(virDomainMemoryModel,
index 4c8114d9d94c218505324b183e51898b9f5e381a..ce4056a7b3139c8a2f5a195d009996dbb8509ee4 100644 (file)
@@ -65,6 +65,7 @@ VIR_ENUM_IMPL(qemuBlockjob,
               "copy",
               "commit",
               "active-commit",
+              "backup",
               "",
               "create",
               "broken");
@@ -1280,6 +1281,8 @@ qemuBlockJobEventProcessConcludedTransition(qemuBlockJobDataPtr job,
             qemuBlockJobProcessEventConcludedCopyAbort(driver, vm, job, asyncJob);
         break;
 
+    case QEMU_BLOCKJOB_TYPE_BACKUP:
+        break;
 
     case QEMU_BLOCKJOB_TYPE_BROKEN:
     case QEMU_BLOCKJOB_TYPE_NONE:
index fdfe2c57ec74cef3673edc0e770af05ce0d80af4..4734984c9966bd62ea9dc2c6ba037bab0560caff 100644 (file)
@@ -60,6 +60,7 @@ typedef enum {
     QEMU_BLOCKJOB_TYPE_COPY = VIR_DOMAIN_BLOCK_JOB_TYPE_COPY,
     QEMU_BLOCKJOB_TYPE_COMMIT = VIR_DOMAIN_BLOCK_JOB_TYPE_COMMIT,
     QEMU_BLOCKJOB_TYPE_ACTIVE_COMMIT = VIR_DOMAIN_BLOCK_JOB_TYPE_ACTIVE_COMMIT,
+    QEMU_BLOCKJOB_TYPE_BACKUP = VIR_DOMAIN_BLOCK_JOB_TYPE_BACKUP,
     /* Additional enum values local to qemu */
     QEMU_BLOCKJOB_TYPE_INTERNAL,
     QEMU_BLOCKJOB_TYPE_CREATE,
index a0cff12df538f05f5446575c59e46e9a25408825..c0b32afc2e9c83b712362603d5b63729d73fca1b 100644 (file)
@@ -2603,6 +2603,8 @@ qemuDomainObjPrivateXMLFormatBlockjobIterator(void *payload,
                 virBufferAddLit(&attrBuf, " shallownew='yes'");
             break;
 
+        case QEMU_BLOCKJOB_TYPE_BACKUP:
+            break;
 
         case QEMU_BLOCKJOB_TYPE_BROKEN:
         case QEMU_BLOCKJOB_TYPE_NONE:
@@ -3172,6 +3174,8 @@ qemuDomainObjPrivateXMLParseBlockjobDataSpecific(qemuBlockJobDataPtr job,
             }
             break;
 
+        case QEMU_BLOCKJOB_TYPE_BACKUP:
+            break;
 
         case QEMU_BLOCKJOB_TYPE_BROKEN:
         case QEMU_BLOCKJOB_TYPE_NONE:
index 02126bc0496521d8b582c9b756d6ff08a32201e3..15eb581fb32c4154a301390a67718c829cb095eb 100644 (file)
@@ -17412,6 +17412,7 @@ qemuDomainBlockPivot(virQEMUDriverPtr driver,
 
     case QEMU_BLOCKJOB_TYPE_PULL:
     case QEMU_BLOCKJOB_TYPE_COMMIT:
+    case QEMU_BLOCKJOB_TYPE_BACKUP:
     case QEMU_BLOCKJOB_TYPE_INTERNAL:
     case QEMU_BLOCKJOB_TYPE_CREATE:
     case QEMU_BLOCKJOB_TYPE_BROKEN:
index 9f3783ab707db9d17deec73cc6ece47cc5b9f313..391f39668a4327ca53aeaeb6252c5740c4ce3b57 100644 (file)
@@ -1147,6 +1147,8 @@ qemuMonitorJSONHandleBlockJobImpl(qemuMonitorPtr mon,
         type = VIR_DOMAIN_BLOCK_JOB_TYPE_COMMIT;
     else if (STREQ(type_str, "mirror"))
         type = VIR_DOMAIN_BLOCK_JOB_TYPE_COPY;
+    else if (STREQ(type_str, "backup"))
+        type = VIR_DOMAIN_BLOCK_JOB_TYPE_BACKUP;
 
     switch ((virConnectDomainEventBlockJobStatus) event) {
     case VIR_DOMAIN_BLOCK_JOB_COMPLETED:
@@ -4844,6 +4846,8 @@ qemuMonitorJSONParseBlockJobInfo(virHashTablePtr blockJobs,
         info->type = VIR_DOMAIN_BLOCK_JOB_TYPE_COMMIT;
     else if (STREQ(type, "mirror"))
         info->type = VIR_DOMAIN_BLOCK_JOB_TYPE_COPY;
+    else if (STREQ(type, "backup"))
+        info->type = VIR_DOMAIN_BLOCK_JOB_TYPE_BACKUP;
     else
         info->type = VIR_DOMAIN_BLOCK_JOB_TYPE_UNKNOWN;
 
index ef6d93b9a580091235890f2ef1cb5bdf5feed283..45b9bf8a381fb6ccad010f16373ac19f453e39c6 100644 (file)
@@ -2550,7 +2550,9 @@ VIR_ENUM_IMPL(virshDomainBlockJob,
               N_("Block Pull"),
               N_("Block Copy"),
               N_("Block Commit"),
-              N_("Active Block Commit"));
+              N_("Active Block Commit"),
+              N_("Backup"),
+);
 
 static const char *
 virshDomainBlockJobToString(int type)