]> git.proxmox.com Git - pve-qemu-kvm.git/commitdiff
use BackupFormat enum
authorDietmar Maurer <dietmar@proxmox.com>
Wed, 2 Jan 2013 08:27:14 +0000 (09:27 +0100)
committerDietmar Maurer <dietmar@proxmox.com>
Wed, 2 Jan 2013 08:27:14 +0000 (09:27 +0100)
debian/patches/0001-RFC-Efficient-VM-backup-for-qemu.patch
debian/patches/0002-add-basic-backup-support-to-block-driver.patch
debian/patches/0003-add-backup-related-monitor-commands.patch
debian/patches/0004-introduce-new-vma-archive-format.patch
debian/patches/0005-add-regression-tests-for-backup.patch
debian/patches/0006-add-vm-state-to-backups.patch

index 69439e6f53cbbf5961e0ec741f61e963e2d9d48c..e56c700a6af95ca9d7c5762e5302834e19745633 100644 (file)
@@ -1,4 +1,4 @@
-From 95b9266b030a4962284a0b9eebf9849291809fee Mon Sep 17 00:00:00 2001
+From 793525f2a3b92fdc0ce27e48c3421171b87c367c Mon Sep 17 00:00:00 2001
 From: Dietmar Maurer <dietmar@proxmox.com>
 Date: Tue, 13 Nov 2012 09:24:50 +0100
 Subject: [PATCH v3 1/6] RFC: Efficient VM backup for qemu
@@ -24,6 +24,8 @@ Changes since v1:
 Changes since v2:
 
 * BackupDriver: remove cancel_cb
+* use enum for BackupFormat
+* vma: use bdrv_open instead of bdrv_file_open
 
 Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
 ---
index a08a834de0519f88b6859e09dfc9342ab9b076b0..f3a2bf973c74a4f7bf8d5858843d2ead8d619b50 100644 (file)
@@ -1,4 +1,4 @@
-From 290368c30f966c3e74d6cd926c0d044f7ba2a3ea Mon Sep 17 00:00:00 2001
+From 11bf5a3156abfd98d13cc5f03cd5f57e6dac06f3 Mon Sep 17 00:00:00 2001
 From: Dietmar Maurer <dietmar@proxmox.com>
 Date: Tue, 13 Nov 2012 10:03:52 +0100
 Subject: [PATCH v3 2/6] add basic backup support to block driver
index 84f053d4e55123074bafcd13e684e9f90bb1ea16..79f5e3206f4043bf8d873089c7f859cdfe0e3708 100644 (file)
@@ -1,4 +1,4 @@
-From 262dc0d9c9f729dd5f74fc8772738207a4c1359d Mon Sep 17 00:00:00 2001
+From d97630338d62186229192d0724fae489fc500acc Mon Sep 17 00:00:00 2001
 From: Dietmar Maurer <dietmar@proxmox.com>
 Date: Tue, 13 Nov 2012 11:27:56 +0100
 Subject: [PATCH v3 3/6] add backup related monitor commands
@@ -13,14 +13,14 @@ could move the whole archive format related code out of qemu.
 Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
 ---
  backup.h         |   13 ++
- blockdev.c       |  376 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ blockdev.c       |  375 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
  hmp-commands.hx  |   31 +++++
  hmp.c            |   63 +++++++++
  hmp.h            |    3 +
  monitor.c        |    7 +
- qapi-schema.json |   81 ++++++++++++
+ qapi-schema.json |   91 +++++++++++++
  qmp-commands.hx  |   27 ++++
- 8 files changed, 601 insertions(+), 0 deletions(-)
+ 8 files changed, 610 insertions(+), 0 deletions(-)
 
 diff --git a/backup.h b/backup.h
 index e1f0290..ae4aa8c 100644
@@ -45,7 +45,7 @@ index e1f0290..ae4aa8c 100644
 +
  #endif /* QEMU_BACKUP_H */
 diff --git a/blockdev.c b/blockdev.c
-index e73fd6e..e89aa14 100644
+index e73fd6e..08ac7ad 100644
 --- a/blockdev.c
 +++ b/blockdev.c
 @@ -20,6 +20,7 @@
@@ -56,7 +56,7 @@ index e73fd6e..e89aa14 100644
  
  static QTAILQ_HEAD(drivelist, DriveInfo) drives = QTAILQ_HEAD_INITIALIZER(drives);
  
-@@ -1321,6 +1322,381 @@ void qmp_drive_mirror(const char *device, const char *target,
+@@ -1321,6 +1322,380 @@ void qmp_drive_mirror(const char *device, const char *target,
      drive_get_ref(drive_get_by_blockdev(bs));
  }
  
@@ -206,7 +206,7 @@ index e73fd6e..e89aa14 100644
 +    }
 +}
 +
-+char *qmp_backup(const char *backupfile, bool has_format, const char *format,
++char *qmp_backup(const char *backupfile, bool has_format, BackupFormat format,
 +                 bool has_config_filename, const char *config_filename,
 +                 bool has_devlist, const char *devlist,
 +                 bool has_speed, int64_t speed, Error **errp)
@@ -219,14 +219,13 @@ index e73fd6e..e89aa14 100644
 +    GList *bcblist = NULL;
 +
 +    /* Todo: try to auto-detect format based on file name */
-+    format = has_format ? format : "vma";
++    format = has_format ? format : BACKUP_FORMAT_VMA;
 +
 +    /* fixme: find driver for specifued format */
 +    const BackupDriver *driver = NULL;
 +
 +    if (!driver) {
-+        error_set(errp, ERROR_CLASS_GENERIC_ERROR,
-+                  "no backup driver for format '%s'", format);
++        error_set(errp, ERROR_CLASS_GENERIC_ERROR, "unknown backup format");
 +        return NULL;
 +    }
 +
@@ -488,7 +487,7 @@ index 010b8c9..57be357 100644
  show current migration capabilities
  @item info migrate_cache_size
 diff --git a/hmp.c b/hmp.c
-index 180ba2b..600792f 100644
+index 180ba2b..77076fa 100644
 --- a/hmp.c
 +++ b/hmp.c
 @@ -130,6 +130,38 @@ void hmp_info_mice(Monitor *mon)
@@ -555,8 +554,8 @@ index 180ba2b..600792f 100644
 +
 +    Error *errp = NULL;
 +
-+    qmp_backup(backupfile, false, NULL, false, NULL, !!devlist, devlist,
-+               qdict_haskey(qdict, "speed"), speed, &errp);
++    qmp_backup(backupfile, true, BACKUP_FORMAT_VMA, false, NULL, !!devlist, 
++             devlist, qdict_haskey(qdict, "speed"), speed, &errp);
 +
 +    if (error_is_set(&errp)) {
 +        monitor_printf(mon, "%s\n", error_get_pretty(errp));
@@ -608,7 +607,7 @@ index c0e32d6..85cf47e 100644
          .args_type  = "",
          .params     = "",
 diff --git a/qapi-schema.json b/qapi-schema.json
-index 5dfa052..bcc70b1 100644
+index 5dfa052..2d3699b 100644
 --- a/qapi-schema.json
 +++ b/qapi-schema.json
 @@ -358,6 +358,39 @@
@@ -651,10 +650,20 @@ index 5dfa052..bcc70b1 100644
  # @query-events:
  #
  # Return a list of supported QMP events by this server
-@@ -1764,6 +1797,54 @@
+@@ -1764,6 +1797,64 @@
    'data': { 'path': 'str' },
    'returns': [ 'ObjectPropertyInfo' ] }
  
++
++##
++# @BackupFormat
++#
++# An enumeration of supported backup formats.
++#
++# @vma: Proxmox vma backup format
++##
++{ 'enum': 'BackupFormat',
++  'data': [ 'vma' ] }
 +
 +##
 +# @backup:
@@ -674,7 +683,7 @@ index 5dfa052..bcc70b1 100644
 +#
 +# Since: 1.4.0
 +##
-+{ 'command': 'backup', 'data': { 'backupfile': 'str', '*format': 'str',
++{ 'command': 'backup', 'data': { 'backupfile': 'str', '*format': 'BackupFormat',
 +                                 '*config-filename': 'str',
 +                                 '*devlist': 'str', '*speed': 'int' },
 +  'returns': 'str' }
index 4133ce0d60c9330f1527df90d5450c0a4a59ac7e..2c24f269435e56966b0365bae9d1df1403987e93 100644 (file)
@@ -1,4 +1,4 @@
-From 9fb6fd584178db5b5a9f0b59f78c30b3c3066f73 Mon Sep 17 00:00:00 2001
+From 5fbe9dc9bb921a1ee4814028d42c4fc46b04e172 Mon Sep 17 00:00:00 2001
 From: Dietmar Maurer <dietmar@proxmox.com>
 Date: Tue, 13 Nov 2012 11:11:38 +0100
 Subject: [PATCH v3 4/6] introduce new vma archive format
@@ -57,7 +57,7 @@ index cb46be5..b5732e2 100644
  block-obj-$(CONFIG_POSIX) += event_notifier-posix.o aio-posix.o
  block-obj-$(CONFIG_WIN32) += event_notifier-win32.o aio-win32.o
 diff --git a/blockdev.c b/blockdev.c
-index e89aa14..6764e73 100644
+index 08ac7ad..e16091f 100644
 --- a/blockdev.c
 +++ b/blockdev.c
 @@ -21,6 +21,7 @@
@@ -68,20 +68,20 @@ index e89aa14..6764e73 100644
  
  static QTAILQ_HEAD(drivelist, DriveInfo) drives = QTAILQ_HEAD_INITIALIZER(drives);
  
-@@ -1483,10 +1484,11 @@ char *qmp_backup(const char *backupfile, bool has_format, const char *format,
+@@ -1483,10 +1484,11 @@ char *qmp_backup(const char *backupfile, bool has_format, BackupFormat format,
      /* Todo: try to auto-detect format based on file name */
-     format = has_format ? format : "vma";
+     format = has_format ? format : BACKUP_FORMAT_VMA;
  
 -    /* fixme: find driver for specifued format */
      const BackupDriver *driver = NULL;
  
 -    if (!driver) {
-+    if (strcmp(format, "vma") == 0) {
++    if (format == BACKUP_FORMAT_VMA) {
 +        driver = &backup_vma_driver;
 +    } else {
-         error_set(errp, ERROR_CLASS_GENERIC_ERROR,
-                   "no backup driver for format '%s'", format);
+         error_set(errp, ERROR_CLASS_GENERIC_ERROR, "unknown backup format");
          return NULL;
+     }
 diff --git a/docs/specs/vma_spec.txt b/docs/specs/vma_spec.txt
 new file mode 100644
 index 0000000..052c629
index e79e2472a0ae692a00f4fabd237f1f9d0fd0c004..0e52839ccce26157dbbfd2bf9639e32cf6663eb6 100644 (file)
@@ -1,4 +1,4 @@
-From da1ef0e71e40f35bc2274201fb28a58b09d53456 Mon Sep 17 00:00:00 2001
+From 6a409b2401390d672b7f2a105d8446475fa5bee2 Mon Sep 17 00:00:00 2001
 From: Dietmar Maurer <dietmar@proxmox.com>
 Date: Wed, 14 Nov 2012 09:57:04 +0100
 Subject: [PATCH v3 5/6] add regression tests for backup
index 89a17a980a5d1f4c01609142c732b0342cb9cf96..9bf11a411d36a6f5a3c00d11d574768fffb066d2 100644 (file)
@@ -1,4 +1,4 @@
-From ca0d410ca44dcb666c6eecf8d8f2f4a18355950f Mon Sep 17 00:00:00 2001
+From ea2827e070e10b515be9b05628e372d281fcf868 Mon Sep 17 00:00:00 2001
 From: Dietmar Maurer <dietmar@proxmox.com>
 Date: Thu, 29 Nov 2012 10:46:49 +0100
 Subject: [PATCH v3 6/6] add vm state to backups
@@ -7,12 +7,12 @@ Subject: [PATCH v3 6/6] add vm state to backups
 Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
 ---
  blockdev.c       |  196 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
- hmp.c            |    2 +-
+ hmp.c            |    5 +-
  qapi-schema.json |    6 +-
- 3 files changed, 199 insertions(+), 5 deletions(-)
+ 3 files changed, 201 insertions(+), 6 deletions(-)
 
 diff --git a/blockdev.c b/blockdev.c
-index 6764e73..4f7e38b 100644
+index e16091f..a5e2058 100644
 --- a/blockdev.c
 +++ b/blockdev.c
 @@ -22,6 +22,8 @@
@@ -198,7 +198,7 @@ index 6764e73..4f7e38b 100644
 +    goto out;
 +}
 +
- char *qmp_backup(const char *backupfile, bool has_format, const char *format,
+ char *qmp_backup(const char *backupfile, bool has_format, BackupFormat format,
                   bool has_config_filename, const char *config_filename,
                   bool has_devlist, const char *devlist,
 -                 bool has_speed, int64_t speed, Error **errp)
@@ -207,16 +207,16 @@ index 6764e73..4f7e38b 100644
  {
      BlockDriverState *bs;
      Error *local_err = NULL;
-@@ -1481,6 +1647,8 @@ char *qmp_backup(const char *backupfile, bool has_format, const char *format,
+@@ -1481,6 +1647,8 @@ char *qmp_backup(const char *backupfile, bool has_format, BackupFormat format,
      gchar **devs = NULL;
      GList *bcblist = NULL;
  
 +    bool save_state = has_state ? state : false;
 +
      /* Todo: try to auto-detect format based on file name */
-     format = has_format ? format : "vma";
+     format = has_format ? format : BACKUP_FORMAT_VMA;
  
-@@ -1562,6 +1730,22 @@ char *qmp_backup(const char *backupfile, bool has_format, const char *format,
+@@ -1561,6 +1729,22 @@ char *qmp_backup(const char *backupfile, bool has_format, BackupFormat format,
      size_t total = 0;
  
      /* register all devices for vma writer */
@@ -239,7 +239,7 @@ index 6764e73..4f7e38b 100644
      l = bcblist;
      while (l) {
          BackupCB *bcb = l->data;
-@@ -1625,8 +1809,16 @@ char *qmp_backup(const char *backupfile, bool has_format, const char *format,
+@@ -1624,8 +1808,16 @@ char *qmp_backup(const char *backupfile, bool has_format, BackupFormat format,
      backup_state.total = total;
      backup_state.transferred = 0;
      backup_state.zero_bytes = 0;
@@ -258,23 +258,26 @@ index 6764e73..4f7e38b 100644
      return g_strdup(backup_state.uuid_str);
  
 diff --git a/hmp.c b/hmp.c
-index 600792f..e92bba9 100644
+index 77076fa..61ba5c3 100644
 --- a/hmp.c
 +++ b/hmp.c
-@@ -1031,7 +1031,7 @@ void hmp_backup(Monitor *mon, const QDict *qdict)
+@@ -1031,8 +1031,9 @@ void hmp_backup(Monitor *mon, const QDict *qdict)
      Error *errp = NULL;
  
-     qmp_backup(backupfile, false, NULL, false, NULL, !!devlist, devlist,
--               qdict_haskey(qdict, "speed"), speed, &errp);
-+               qdict_haskey(qdict, "speed"), speed, false, false, &errp);
+     qmp_backup(backupfile, true, BACKUP_FORMAT_VMA, false, NULL, !!devlist, 
+-             devlist, qdict_haskey(qdict, "speed"), speed, &errp);
+-
++               devlist, qdict_haskey(qdict, "speed"), speed, false, false, 
++               &errp);
++    
      if (error_is_set(&errp)) {
          monitor_printf(mon, "%s\n", error_get_pretty(errp));
+         error_free(errp);
 diff --git a/qapi-schema.json b/qapi-schema.json
-index bcc70b1..2af4359 100644
+index 2d3699b..3f4889e 100644
 --- a/qapi-schema.json
 +++ b/qapi-schema.json
-@@ -1812,13 +1812,15 @@
+@@ -1822,13 +1822,15 @@
  #
  # @speed: #optional the maximum speed, in bytes per second
  #
@@ -284,7 +287,7 @@ index bcc70b1..2af4359 100644
  #
  # Since: 1.4.0
  ##
- { 'command': 'backup', 'data': { 'backupfile': 'str', '*format': 'str',
+ { 'command': 'backup', 'data': { 'backupfile': 'str', '*format': 'BackupFormat',
 -                                 '*config-filename': 'str',
 -                                 '*devlist': 'str', '*speed': 'int' },
 +                                 '*config-filename': 'str', '*devlist': 'str',