Patchwork [v5,2/2] QMP: Add qmp command for blockdev-group-snapshot-sync

login
register
mail settings
Submitter Jeff Cody
Date Feb. 28, 2012, 8:54 p.m.
Message ID <9c58cbefce49000b6716f61c2dd5ef3c7fc7fcbf.1330461199.git.jcody@redhat.com>
Download mbox | patch
Permalink /patch/143540/
State New
Headers show

Comments

Jeff Cody - Feb. 28, 2012, 8:54 p.m.
This adds the QMP command for blockdev-group-snapshot-sync. It
takes an array in as the input, for the argument devlist.  The
array consists of the following elements:

    + device:        device to snapshot. e.g. "ide-hd0", "virtio0"
    + snapshot-file: path & file for the snapshot image. e.g. "/tmp/file.img"
    + format:        snapshot format. e.g., "qcow2". Optional

There is no HMP equivalent for the command.

Signed-off-by: Jeff Cody <jcody@redhat.com>
---
 qmp-commands.hx |   39 +++++++++++++++++++++++++++++++++++++++
 1 files changed, 39 insertions(+), 0 deletions(-)
Luiz Capitulino - Feb. 29, 2012, 2:37 p.m.
On Tue, 28 Feb 2012 15:54:07 -0500
Jeff Cody <jcody@redhat.com> wrote:

> This adds the QMP command for blockdev-group-snapshot-sync. It
> takes an array in as the input, for the argument devlist.  The
> array consists of the following elements:
> 
>     + device:        device to snapshot. e.g. "ide-hd0", "virtio0"
>     + snapshot-file: path & file for the snapshot image. e.g. "/tmp/file.img"
>     + format:        snapshot format. e.g., "qcow2". Optional
> 
> There is no HMP equivalent for the command.
> 
> Signed-off-by: Jeff Cody <jcody@redhat.com>

Could have been squashed with the previous patch, but of course that you
don't have to respin because of that.

> ---
>  qmp-commands.hx |   39 +++++++++++++++++++++++++++++++++++++++
>  1 files changed, 39 insertions(+), 0 deletions(-)
> 
> diff --git a/qmp-commands.hx b/qmp-commands.hx
> index b5e2ab8..15d35c1 100644
> --- a/qmp-commands.hx
> +++ b/qmp-commands.hx
> @@ -665,6 +665,45 @@ EQMP
>          .args_type  = "device:B",
>          .mhandler.cmd_new = qmp_marshal_input_block_job_cancel,
>      },
> +    {
> +        .name       = "blockdev-group-snapshot-sync",
> +        .args_type  = "devlist:O",
> +        .params  = "device:B,snapshot-file:s,format:s?",
> +        .mhandler.cmd_new = qmp_marshal_input_blockdev_group_snapshot_sync,
> +    },
> +
> +SQMP
> +blockdev-group-snapshot-sync
> +----------------------
> +
> +Synchronous snapshot of one or more block devices.  A list array input
> +is accepted, that contains the device and snapshot file information for
> +each device in group. The default format, if not specified, is qcow2.
> +
> +If there is any failure creating or opening a new snapshot, all snapshots
> +for the group are abandoned, and the original disks pre-snapshot attempt
> +are used.
> +
> +
> +Arguments:
> +
> +devlist array:
> +    - "device": device name to snapshot (json-string)
> +    - "snapshot-file": name of new image file (json-string)
> +    - "format": format of new image (json-string, optional)
> +
> +Example:
> +
> +-> { "execute": "blockdev-group-snapshot-sync", "arguments":
> +                      { "devlist": [{ "device": "ide-hd0",
> +                                      "snapshot-file": "/some/place/my-image",
> +                                      "format": "qcow2" },
> +                                    { "device": "ide-hd1",
> +                                      "snapshot-file": "/some/place/my-image2",
> +                                      "format": "qcow2" }] } }
> +<- { "return": {} }
> +
> +EQMP
>  
>      {
>          .name       = "blockdev-snapshot-sync",

Patch

diff --git a/qmp-commands.hx b/qmp-commands.hx
index b5e2ab8..15d35c1 100644
--- a/qmp-commands.hx
+++ b/qmp-commands.hx
@@ -665,6 +665,45 @@  EQMP
         .args_type  = "device:B",
         .mhandler.cmd_new = qmp_marshal_input_block_job_cancel,
     },
+    {
+        .name       = "blockdev-group-snapshot-sync",
+        .args_type  = "devlist:O",
+        .params  = "device:B,snapshot-file:s,format:s?",
+        .mhandler.cmd_new = qmp_marshal_input_blockdev_group_snapshot_sync,
+    },
+
+SQMP
+blockdev-group-snapshot-sync
+----------------------
+
+Synchronous snapshot of one or more block devices.  A list array input
+is accepted, that contains the device and snapshot file information for
+each device in group. The default format, if not specified, is qcow2.
+
+If there is any failure creating or opening a new snapshot, all snapshots
+for the group are abandoned, and the original disks pre-snapshot attempt
+are used.
+
+
+Arguments:
+
+devlist array:
+    - "device": device name to snapshot (json-string)
+    - "snapshot-file": name of new image file (json-string)
+    - "format": format of new image (json-string, optional)
+
+Example:
+
+-> { "execute": "blockdev-group-snapshot-sync", "arguments":
+                      { "devlist": [{ "device": "ide-hd0",
+                                      "snapshot-file": "/some/place/my-image",
+                                      "format": "qcow2" },
+                                    { "device": "ide-hd1",
+                                      "snapshot-file": "/some/place/my-image2",
+                                      "format": "qcow2" }] } }
+<- { "return": {} }
+
+EQMP
 
     {
         .name       = "blockdev-snapshot-sync",