qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/2] qemu-img: Fix qemu-img convert -n
@ 2015-02-11 14:58 Max Reitz
  2015-02-11 14:58 ` [Qemu-devel] [PATCH 1/2] " Max Reitz
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Max Reitz @ 2015-02-11 14:58 UTC (permalink / raw)
  To: qemu-devel; +Cc: Kevin Wolf, Stefan Hajnoczi, Max Reitz

Even when specifying -n to suppress image creation with qemu-img
convert, that function tried to verify that the target protocol and
driver are suited for image creation. This verification should be
suppressed, too (which is what the first patch in this series does, the
second one adds a test for it).


Max Reitz (2):
  qemu-img: Fix qemu-img convert -n
  iotests: Add test for qemu-img convert to NBD

 qemu-img.c                 | 50 +++++++++++++++++++------------------
 tests/qemu-iotests/123     | 62 ++++++++++++++++++++++++++++++++++++++++++++++
 tests/qemu-iotests/123.out |  9 +++++++
 tests/qemu-iotests/group   |  1 +
 4 files changed, 98 insertions(+), 24 deletions(-)
 create mode 100755 tests/qemu-iotests/123
 create mode 100644 tests/qemu-iotests/123.out

-- 
2.1.0

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Qemu-devel] [PATCH 1/2] qemu-img: Fix qemu-img convert -n
  2015-02-11 14:58 [Qemu-devel] [PATCH 0/2] qemu-img: Fix qemu-img convert -n Max Reitz
@ 2015-02-11 14:58 ` Max Reitz
  2015-02-11 14:58 ` [Qemu-devel] [PATCH 2/2] iotests: Add test for qemu-img convert to NBD Max Reitz
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Max Reitz @ 2015-02-11 14:58 UTC (permalink / raw)
  To: qemu-devel; +Cc: Kevin Wolf, Stefan Hajnoczi, Max Reitz

If -n is specified, it does not matter whether the output format and
protocol support image creation; building the creation options should
simply be skipped.

Signed-off-by: Max Reitz <mreitz@redhat.com>
---
 qemu-img.c | 50 ++++++++++++++++++++++++++------------------------
 1 file changed, 26 insertions(+), 24 deletions(-)

diff --git a/qemu-img.c b/qemu-img.c
index e148af8..26ec3c1 100644
--- a/qemu-img.c
+++ b/qemu-img.c
@@ -1531,34 +1531,36 @@ static int img_convert(int argc, char **argv)
         goto out;
     }
 
-    if (!drv->create_opts) {
-        error_report("Format driver '%s' does not support image creation",
-                     drv->format_name);
-        ret = -1;
-        goto out;
-    }
+    if (!skip_create) {
+        if (!drv->create_opts) {
+            error_report("Format driver '%s' does not support image creation",
+                         drv->format_name);
+            ret = -1;
+            goto out;
+        }
 
-    if (!proto_drv->create_opts) {
-        error_report("Protocol driver '%s' does not support image creation",
-                     proto_drv->format_name);
-        ret = -1;
-        goto out;
-    }
+        if (!proto_drv->create_opts) {
+            error_report("Protocol driver '%s' does not support image creation",
+                         proto_drv->format_name);
+            ret = -1;
+            goto out;
+        }
 
-    create_opts = qemu_opts_append(create_opts, drv->create_opts);
-    create_opts = qemu_opts_append(create_opts, proto_drv->create_opts);
+        create_opts = qemu_opts_append(create_opts, drv->create_opts);
+        create_opts = qemu_opts_append(create_opts, proto_drv->create_opts);
 
-    opts = qemu_opts_create(create_opts, NULL, 0, &error_abort);
-    if (options && qemu_opts_do_parse(opts, options, NULL)) {
-        error_report("Invalid options for file format '%s'", out_fmt);
-        ret = -1;
-        goto out;
-    }
+        opts = qemu_opts_create(create_opts, NULL, 0, &error_abort);
+        if (options && qemu_opts_do_parse(opts, options, NULL)) {
+            error_report("Invalid options for file format '%s'", out_fmt);
+            ret = -1;
+            goto out;
+        }
 
-    qemu_opt_set_number(opts, BLOCK_OPT_SIZE, total_sectors * 512);
-    ret = add_old_style_options(out_fmt, opts, out_baseimg, NULL);
-    if (ret < 0) {
-        goto out;
+        qemu_opt_set_number(opts, BLOCK_OPT_SIZE, total_sectors * 512);
+        ret = add_old_style_options(out_fmt, opts, out_baseimg, NULL);
+        if (ret < 0) {
+            goto out;
+        }
     }
 
     /* Get backing file name if -o backing_file was used */
-- 
2.1.0

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Qemu-devel] [PATCH 2/2] iotests: Add test for qemu-img convert to NBD
  2015-02-11 14:58 [Qemu-devel] [PATCH 0/2] qemu-img: Fix qemu-img convert -n Max Reitz
  2015-02-11 14:58 ` [Qemu-devel] [PATCH 1/2] " Max Reitz
@ 2015-02-11 14:58 ` Max Reitz
  2015-02-11 15:35 ` [Qemu-devel] [PATCH 0/2] qemu-img: Fix qemu-img convert -n Eric Blake
  2015-02-13 11:17 ` Stefan Hajnoczi
  3 siblings, 0 replies; 5+ messages in thread
From: Max Reitz @ 2015-02-11 14:58 UTC (permalink / raw)
  To: qemu-devel; +Cc: Kevin Wolf, Stefan Hajnoczi, Max Reitz

Signed-off-by: Max Reitz <mreitz@redhat.com>
---
 tests/qemu-iotests/123     | 62 ++++++++++++++++++++++++++++++++++++++++++++++
 tests/qemu-iotests/123.out |  9 +++++++
 tests/qemu-iotests/group   |  1 +
 3 files changed, 72 insertions(+)
 create mode 100755 tests/qemu-iotests/123
 create mode 100644 tests/qemu-iotests/123.out

diff --git a/tests/qemu-iotests/123 b/tests/qemu-iotests/123
new file mode 100755
index 0000000..ad60803
--- /dev/null
+++ b/tests/qemu-iotests/123
@@ -0,0 +1,62 @@
+#!/bin/bash
+#
+# Test case for qemu-img convert to NBD
+#
+# Copyright (C) 2015 Red Hat, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+
+# creator
+owner=mreitz@redhat.com
+
+seq="$(basename $0)"
+echo "QA output created by $seq"
+
+here="$PWD"
+tmp=/tmp/$$
+status=1	# failure is the default!
+
+_cleanup()
+{
+    _cleanup_test_img
+    rm -f "$SRC_IMG"
+}
+trap "_cleanup; exit \$status" 0 1 2 3 15
+
+# get standard environment, filters and checks
+. ./common.rc
+. ./common.filter
+
+_supported_fmt raw
+_supported_proto nbd
+_supported_os Linux
+
+SRC_IMG="$TEST_DIR/source.$IMGFMT"
+
+_make_test_img 1M
+$QEMU_IMG create -f $IMGFMT "$SRC_IMG" 1M | _filter_img_create
+
+$QEMU_IO -c 'write -P 42 0 1M' "$SRC_IMG" | _filter_qemu_io
+
+$QEMU_IMG convert -n -f $IMGFMT -O raw "$SRC_IMG" "$TEST_IMG"
+
+$QEMU_IO -c 'read -P 42 0 1M' "$TEST_IMG" | _filter_qemu_io
+
+
+# success, all done
+echo
+echo '*** done'
+rm -f $seq.full
+status=0
diff --git a/tests/qemu-iotests/123.out b/tests/qemu-iotests/123.out
new file mode 100644
index 0000000..0b818d3
--- /dev/null
+++ b/tests/qemu-iotests/123.out
@@ -0,0 +1,9 @@
+QA output created by 123
+Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1048576
+Formatting 'TEST_DIR/source.IMGFMT', fmt=IMGFMT size=1048576
+wrote 1048576/1048576 bytes at offset 0
+1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
+read 1048576/1048576 bytes at offset 0
+1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
+
+*** done
diff --git a/tests/qemu-iotests/group b/tests/qemu-iotests/group
index 4b2b93b..8882cda 100644
--- a/tests/qemu-iotests/group
+++ b/tests/qemu-iotests/group
@@ -117,3 +117,4 @@
 113 rw auto quick
 114 rw auto quick
 116 rw auto quick
+123 rw auto quick
-- 
2.1.0

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [PATCH 0/2] qemu-img: Fix qemu-img convert -n
  2015-02-11 14:58 [Qemu-devel] [PATCH 0/2] qemu-img: Fix qemu-img convert -n Max Reitz
  2015-02-11 14:58 ` [Qemu-devel] [PATCH 1/2] " Max Reitz
  2015-02-11 14:58 ` [Qemu-devel] [PATCH 2/2] iotests: Add test for qemu-img convert to NBD Max Reitz
@ 2015-02-11 15:35 ` Eric Blake
  2015-02-13 11:17 ` Stefan Hajnoczi
  3 siblings, 0 replies; 5+ messages in thread
From: Eric Blake @ 2015-02-11 15:35 UTC (permalink / raw)
  To: Max Reitz, qemu-devel; +Cc: Kevin Wolf, Stefan Hajnoczi

[-- Attachment #1: Type: text/plain, Size: 1034 bytes --]

On 02/11/2015 07:58 AM, Max Reitz wrote:
> Even when specifying -n to suppress image creation with qemu-img
> convert, that function tried to verify that the target protocol and
> driver are suited for image creation. This verification should be
> suppressed, too (which is what the first patch in this series does, the
> second one adds a test for it).

Reviewed-by: Eric Blake <eblake@redhat.com>

> 
> 
> Max Reitz (2):
>   qemu-img: Fix qemu-img convert -n
>   iotests: Add test for qemu-img convert to NBD
> 
>  qemu-img.c                 | 50 +++++++++++++++++++------------------
>  tests/qemu-iotests/123     | 62 ++++++++++++++++++++++++++++++++++++++++++++++
>  tests/qemu-iotests/123.out |  9 +++++++
>  tests/qemu-iotests/group   |  1 +
>  4 files changed, 98 insertions(+), 24 deletions(-)
>  create mode 100755 tests/qemu-iotests/123
>  create mode 100644 tests/qemu-iotests/123.out
> 

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [PATCH 0/2] qemu-img: Fix qemu-img convert -n
  2015-02-11 14:58 [Qemu-devel] [PATCH 0/2] qemu-img: Fix qemu-img convert -n Max Reitz
                   ` (2 preceding siblings ...)
  2015-02-11 15:35 ` [Qemu-devel] [PATCH 0/2] qemu-img: Fix qemu-img convert -n Eric Blake
@ 2015-02-13 11:17 ` Stefan Hajnoczi
  3 siblings, 0 replies; 5+ messages in thread
From: Stefan Hajnoczi @ 2015-02-13 11:17 UTC (permalink / raw)
  To: Max Reitz; +Cc: Kevin Wolf, qemu-devel, Stefan Hajnoczi

[-- Attachment #1: Type: text/plain, Size: 1011 bytes --]

On Wed, Feb 11, 2015 at 09:58:45AM -0500, Max Reitz wrote:
> Even when specifying -n to suppress image creation with qemu-img
> convert, that function tried to verify that the target protocol and
> driver are suited for image creation. This verification should be
> suppressed, too (which is what the first patch in this series does, the
> second one adds a test for it).
> 
> 
> Max Reitz (2):
>   qemu-img: Fix qemu-img convert -n
>   iotests: Add test for qemu-img convert to NBD
> 
>  qemu-img.c                 | 50 +++++++++++++++++++------------------
>  tests/qemu-iotests/123     | 62 ++++++++++++++++++++++++++++++++++++++++++++++
>  tests/qemu-iotests/123.out |  9 +++++++
>  tests/qemu-iotests/group   |  1 +
>  4 files changed, 98 insertions(+), 24 deletions(-)
>  create mode 100755 tests/qemu-iotests/123
>  create mode 100644 tests/qemu-iotests/123.out
> 
> -- 
> 2.1.0
> 
> 

Thanks, applied to my block tree:
https://github.com/stefanha/qemu/commits/block

Stefan

[-- Attachment #2: Type: application/pgp-signature, Size: 473 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-02-13 11:17 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-02-11 14:58 [Qemu-devel] [PATCH 0/2] qemu-img: Fix qemu-img convert -n Max Reitz
2015-02-11 14:58 ` [Qemu-devel] [PATCH 1/2] " Max Reitz
2015-02-11 14:58 ` [Qemu-devel] [PATCH 2/2] iotests: Add test for qemu-img convert to NBD Max Reitz
2015-02-11 15:35 ` [Qemu-devel] [PATCH 0/2] qemu-img: Fix qemu-img convert -n Eric Blake
2015-02-13 11:17 ` Stefan Hajnoczi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).