143 lines
4.9 KiB
Diff
143 lines
4.9 KiB
Diff
|
From dba144d5f04b39a0c95c74d6084ec1015f8d09e7 Mon Sep 17 00:00:00 2001
|
||
|
From: John Snow <jsnow@redhat.com>
|
||
|
Date: Wed, 10 Oct 2018 20:30:14 +0100
|
||
|
Subject: [PATCH 4/4] block/rbd: add iotest for rbd legacy keyvalue filename
|
||
|
parsing
|
||
|
|
||
|
RH-Author: John Snow <jsnow@redhat.com>
|
||
|
Message-id: <20181010203015.11719-4-jsnow@redhat.com>
|
||
|
Patchwork-id: 82628
|
||
|
O-Subject: [RHEL8/rhel qemu-kvm PATCH 3/4] block/rbd: add iotest for rbd legacy keyvalue filename parsing
|
||
|
Bugzilla: 1635585
|
||
|
RH-Acked-by: Markus Armbruster <armbru@redhat.com>
|
||
|
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||
|
RH-Acked-by: Thomas Huth <thuth@redhat.com>
|
||
|
|
||
|
From: Jeff Cody <jcody@redhat.com>
|
||
|
|
||
|
This is a small test that will check for the ability to parse
|
||
|
both legacy and modern options for rbd.
|
||
|
|
||
|
The way the test is set up is for failure to occur, but without
|
||
|
having to wait to timeout on a non-existent rbd server. The error
|
||
|
messages in the success path show that the arguments were parsed.
|
||
|
|
||
|
The failure behavior prior to the patch series that has this test, is
|
||
|
qemu-img complaining about mandatory options (e.g. 'pool') not being
|
||
|
provided.
|
||
|
|
||
|
Reviewed-by: Eric Blake <eblake@redhat.com>
|
||
|
Signed-off-by: Jeff Cody <jcody@redhat.com>
|
||
|
Message-id: f830580e339b974a83ed4870d11adcdc17f49a47.1536704901.git.jcody@redhat.com
|
||
|
Signed-off-by: Jeff Cody <jcody@redhat.com>
|
||
|
(cherry picked from commit 66e6a735e97450ac50fcaf40f78600c688534cae)
|
||
|
Signed-off-by: John Snow <jsnow@redhat.com>
|
||
|
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
|
||
|
|
||
|
Conflicts:
|
||
|
tests/qemu-iotests/group: context (missing prior tests)
|
||
|
Signed-off-by: John Snow <jsnow@redhat.com>
|
||
|
---
|
||
|
tests/qemu-iotests/231 | 62 ++++++++++++++++++++++++++++++++++++++++++++++
|
||
|
tests/qemu-iotests/231.out | 9 +++++++
|
||
|
tests/qemu-iotests/group | 1 +
|
||
|
3 files changed, 72 insertions(+)
|
||
|
create mode 100755 tests/qemu-iotests/231
|
||
|
create mode 100644 tests/qemu-iotests/231.out
|
||
|
|
||
|
diff --git a/tests/qemu-iotests/231 b/tests/qemu-iotests/231
|
||
|
new file mode 100755
|
||
|
index 0000000..3e28370
|
||
|
--- /dev/null
|
||
|
+++ b/tests/qemu-iotests/231
|
||
|
@@ -0,0 +1,62 @@
|
||
|
+#!/bin/bash
|
||
|
+#
|
||
|
+# Test legacy and modern option parsing for rbd/ceph. This will not
|
||
|
+# actually connect to a ceph server, but rather looks for the appropriate
|
||
|
+# error message that indicates we parsed the options correctly.
|
||
|
+#
|
||
|
+# Copyright (C) 2018 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=jcody@redhat.com
|
||
|
+
|
||
|
+seq=`basename $0`
|
||
|
+echo "QA output created by $seq"
|
||
|
+
|
||
|
+here=`pwd`
|
||
|
+status=1 # failure is the default!
|
||
|
+
|
||
|
+_cleanup()
|
||
|
+{
|
||
|
+ rm "${BOGUS_CONF}"
|
||
|
+}
|
||
|
+trap "_cleanup; exit \$status" 0 1 2 3 15
|
||
|
+
|
||
|
+# get standard environment, filters and checks
|
||
|
+. ./common.rc
|
||
|
+. ./common.filter
|
||
|
+
|
||
|
+_supported_fmt generic
|
||
|
+_supported_proto rbd
|
||
|
+_supported_os Linux
|
||
|
+
|
||
|
+BOGUS_CONF=${TEST_DIR}/ceph-$$.conf
|
||
|
+touch "${BOGUS_CONF}"
|
||
|
+
|
||
|
+_filter_conf()
|
||
|
+{
|
||
|
+ sed -e "s#$BOGUS_CONF#BOGUS_CONF#g"
|
||
|
+}
|
||
|
+
|
||
|
+# We expect this to fail, with no monitor ip provided and a null conf file. Just want it
|
||
|
+# to fail in the right way.
|
||
|
+$QEMU_IMG info "json:{'file.driver':'rbd','file.filename':'rbd:rbd/bogus:conf=${BOGUS_CONF}'}" 2>&1 | _filter_conf
|
||
|
+$QEMU_IMG info "json:{'file.driver':'rbd','file.pool':'rbd','file.image':'bogus','file.conf':'${BOGUS_CONF}'}" 2>&1 | _filter_conf
|
||
|
+
|
||
|
+# success, all done
|
||
|
+echo "*** done"
|
||
|
+rm -f $seq.full
|
||
|
+status=0
|
||
|
diff --git a/tests/qemu-iotests/231.out b/tests/qemu-iotests/231.out
|
||
|
new file mode 100644
|
||
|
index 0000000..579ba11
|
||
|
--- /dev/null
|
||
|
+++ b/tests/qemu-iotests/231.out
|
||
|
@@ -0,0 +1,9 @@
|
||
|
+QA output created by 231
|
||
|
+qemu-img: RBD options encoded in the filename as keyvalue pairs is deprecated. Future versions may cease to parse these options in the future.
|
||
|
+unable to get monitor info from DNS SRV with service name: ceph-mon
|
||
|
+no monitors specified to connect to.
|
||
|
+qemu-img: Could not open 'json:{'file.driver':'rbd','file.filename':'rbd:rbd/bogus:conf=BOGUS_CONF'}': error connecting: No such file or directory
|
||
|
+unable to get monitor info from DNS SRV with service name: ceph-mon
|
||
|
+no monitors specified to connect to.
|
||
|
+qemu-img: Could not open 'json:{'file.driver':'rbd','file.pool':'rbd','file.image':'bogus','file.conf':'BOGUS_CONF'}': error connecting: No such file or directory
|
||
|
+*** done
|
||
|
diff --git a/tests/qemu-iotests/group b/tests/qemu-iotests/group
|
||
|
index 1cb2ccb..303daa5 100644
|
||
|
--- a/tests/qemu-iotests/group
|
||
|
+++ b/tests/qemu-iotests/group
|
||
|
@@ -223,3 +223,4 @@
|
||
|
223 rw auto quick
|
||
|
226 auto quick
|
||
|
229 auto quick
|
||
|
+231 auto quick
|
||
|
--
|
||
|
1.8.3.1
|
||
|
|