Commit Graph

282 Commits

Author SHA1 Message Date
Sage Weil
d26a9dce5e Merge remote-tracking branch 'gh/hammer'
Conflicts:
	PendingReleaseNotes
	src/Makefile.am
	src/gmock
	src/test/Makefile.am
2015-03-19 12:41:04 -07:00
Sage Weil
faa1f2741c Merge remote-tracking branch 'gh/hammer'
Conflicts:
	src/gmock
2015-03-10 06:24:59 -07:00
Josh Durgin
918afc0a58 qa: make rbd-fuse exit cleanly with lttng
lttng requires daemons (things that call fork, clone, or daemon
without exec, like fuse) to use a LD_PRELOAD library. Without this,
the lttng atexit() handler crashes.

Signed-off-by: Josh Durgin <jdurgin@redhat.com>
2015-03-06 18:57:32 -08:00
Josh Durgin
fa13a5dc5b qa: fix up rbd permissions test
! doesn't do what we want in bash -e. Use a more explicit helper
instead, and specify expected error codes.

Signed-off-by: Josh Durgin <jdurgin@redhat.com>
2015-03-04 18:38:29 -08:00
Josh Durgin
0d468ae352 Merge pull request #3831 from dachary/wip-qemu-iotests
Maipo should also use the local qemu clone

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2015-03-02 15:34:39 -08:00
Jason Dillaman
6cff494e18 qa/workunits/rbd/copy.sh: remove all image locks
If the exclusive lock feature is enabled, all locks need
to be removed prior removing the image.

Fixes: #10990
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-03-02 16:24:17 -05:00
Loic Dachary
a23b348979 Maipo should also use the local qemu clone
http://tracker.ceph.com/issues/10975 Fixes: #10975

Signed-off-by: Loic Dachary <loic@dachary.org>
2015-02-28 01:20:05 +01:00
Jason Dillaman
3ec52dae63 qa/workunits/rbd/copy.sh: explicitly choose the image format
The rbd CLI now utilizes the rbd_default_format configuration
setting, therefore the copy test now needs to tell rbd which image
format it is expecting to create.

Fixes: #10961
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2015-02-26 12:06:53 -05:00
Sage Weil
c58307bbcf Merge pull request #3583 from jdurgin/wip-qemu-iotests
qa: use correct binary path on rpm-based systems

Reviewed-by: Sage Weil <sage@redhat.com>
2015-02-02 07:54:53 -08:00
Josh Durgin
05ce2aa1bf qa: use correct binary path on rpm-based systems
Fixes: #10715
Signed-off-by: Josh Durgin <jdurgin@redhat.com>
2015-02-02 16:45:14 +01:00
Josh Durgin
f6406c99d8 qa: small improvements to merge-diff test
* Use set -e to detect errors
* no need to retry cleanup in a loop now that rbd-fuse closes images
* use --no-progress for long-running operations
* add output at the start of each test

Signed-off-by: Josh Durgin <jdurgin@redhat.com>
2015-01-24 23:10:16 -08:00
Josh Durgin
448a3c3335 Merge remote-tracking branch 'origin/next' 2015-01-22 13:05:12 -08:00
Jason Dillaman
a6eadaefb7 rbd image_read.sh: disable exclusive locking
Until the kernel supports RBD exclusive locking, this test
has been updated to create shared images (exclusive locking
disabled).

Fixes: #10613
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2015-01-22 13:03:40 -08:00
Josh Durgin
07038a79f3 Merge branch 'next' 2015-01-21 16:11:43 -08:00
Josh Durgin
946958c13c qa: disable automatic locking for manual locking test
Automatic locking hides the ESHUTDOWN from the caller, which is how
this test detects that blacklisting works.

Fixes: #10592
Signed-off-by: Josh Durgin <jdurgin@redhat.com>
2015-01-20 15:56:12 -08:00
Josh Durgin
a845139d1f Merge pull request #3292 from kylinstorage/rbd-merge-diff-v2
rbd: merge diff files

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
Reviewed-by: Sage Weil <sage@redhat.com>
2015-01-16 12:08:02 -08:00
Josh Durgin
e7cc6117ad qa: ignore duplicates in rados ls
These can happen with split or with state changes due to reordering
results within the hash range requested. It's easy enough to filter
them out at this stage.

Backport: giant, firefly
Signed-off-by: Josh Durgin <jdurgin@redhat.com>
2015-01-14 15:02:38 -08:00
Yunchuan Wen
d300220aaf rbd: test case for rbd merge-diff
Signed-off-by: Yunchuan Wen <yunchuanwen@ubuntukylin.com>
Signed-off-by: MingXin Liu <mingxinliu@ubuntukylin.com>
2015-01-12 01:05:19 +00:00
Warren Usui
46a1a4cb67 If trusty, use older version of qemu
Fixes #10319
Signed-off-by: Warren Usui <warren.usui@inktank.com>
2014-12-19 18:57:06 -08:00
Ilya Dryomov
35f084d078 qa: add script to test how libceph handles huge auth tickets
Signed-off-by: Ilya Dryomov <idryomov@redhat.com>
2014-12-13 20:49:04 +03:00
Josh Durgin
e94d3c11ed qa: allow small allocation diffs for exported rbds
The local filesytem may behave slightly differently. This isn't
foolproof, but seems to be reliable enough on rhel7 rootfs, where
exact comparison was failing.

Fixes: #10002
Signed-off-by: Josh Durgin <jdurgin@redhat.com>
2014-11-11 18:16:04 -08:00
Sage Weil
5558afa03d qa/workunits/rbd/import_export.sh: be case insensitive
Stop tripping over this change (from dumpling).

Signed-off-by: Sage Weil <sage@redhat.com>
2014-10-15 12:26:00 -07:00
Sage Weil
055be68cf8 qa/workunits/rbd/qemu-iotests: touch common.env
This seems to be necessary on trusty.

Backport: firefly, dumpling
Signed-off-by: Sage Weil <sage@redhat.com>
2014-08-17 20:54:28 -07:00
Ilya Dryomov
9bcc19de58 map-unmap.sh: fail if 'rbd rm' fails
Fail if 'rbd rm' fails - most probably it'd fail with "image still has
watchers" and in that case it's a bug in the kernel client which we do
want to notice.  Also nuke the trap-based error handling - cleanup() is
half-baked and not really necessary here.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
2014-06-29 21:58:15 +04:00
Ilya Dryomov
16b14ea123 map-unmap.sh: drop the get_id() logic
Take advantage of the fact that 'rbd map' will now talk to udev and
output the device that got assigned by the kernel to the newly created
mapping.  Drop the get_id() cruft, udevadm settle and chown calls.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
2014-06-29 21:58:15 +04:00
Josh Durgin
40c48bcae0 qa: add script to test krbd setting ro/rw ioctl
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2014-06-11 17:31:01 -07:00
Warren Usui
ddf37d903f Use new git mirror for qemu-iotests
Fixes: 8191
Signed-off-by: Warren Usui <warren.usui@inktank.com>
2014-04-24 12:55:26 -07:00
Warren Usui
606e725eb5 Support latest qemu iotest code
Modified qemu-iotests workunit script to check for versions
that use the latest qemu (currently only Trusty).  Limit the
tests to those that are applicable to rbd.

Fixes: 7882
Signed-off-by: Warren Usui <warren.usui@inktank.com>
2014-04-23 13:20:14 -07:00
Sage Weil
009e874686 qa/workunits/rbd/copy.sh: skip some tests when tiering is enabled
The rados ls bit doesn't work.

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2014-04-22 11:59:26 -07:00
Sage Weil
c0bff439f5 qa/workunits/rbd/copy.sh: fix test
I broke this in commit 9d64ac6608.

Signed-off-by: Sage Weil <sage@inktank.com>
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2014-04-22 11:59:23 -07:00
Sage Weil
a80e66f932 qa/workunit/rbd/import_export.sh: skip list-objects tests with tiering
Listing objects isn't reliable with cache pools; skip that part of the
test if we see that rbd has tiering enabled.

Signed-off-by: Sage Weil <sage@inktank.com>
2014-04-21 16:47:10 -07:00
Sage Weil
9d64ac6608 qa/workunit/rbd/copy.sh: do not delete/recreate rbd pool
Among other things, it breaks when tiering is enabled.

Signed-off-by: Sage Weil <sage@inktank.com>
2014-04-21 16:26:23 -07:00
Josh Durgin
10335883a9 qa: fix rbd cli tests checking size
b43bc1a0b0 changed the kilo prefix
from K to k in a few places.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2013-10-03 15:16:59 -07:00
Sage Weil
8d9165a013 qa/workunits/rbd/simple_big: fix unmap
Signed-off-by: Sage Weil <sage@inktank.com>
2013-07-13 13:26:21 -07:00
Sage Weil
956fafc7f2 qa/workunits/rbd/simple_big.sh: don't ENOSPC every time
Set the count on the initial dd so we don't always ENOSPC.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-07-08 10:14:08 -07:00
Sage Weil
d423cf8c4f qa/workunits/rbd/kernel.sh: move modprobe up
Needs to happen before cleanup.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-07-08 09:58:16 -07:00
Sage Weil
3f5a96236b qa: write a somewhat <1tb image
1TB is enough to fill up 6 plana osds.  And it takes forever.  Write less.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-07-05 11:24:06 -07:00
Sage Weil
54aa797acd qa/workunits/rbd/kernel.sh: modprobe rbd
Signed-off-by: Sage Weil <sage@inktank.com>
2013-07-05 11:20:43 -07:00
Sage Weil
867ead91e4 qa/workunits/rbd/simple_1tb: add simple rbd read/write test on large image
Motivated by #5454.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-06-26 20:41:58 -07:00
Josh Durgin
b0b5b1b3ad rbd image_read.sh: wait for rbd sysfs files to appear
Poll until they are available for chmoding.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
2013-06-12 21:21:39 -07:00
Alex Elder
6bac8ac06c rbd/kernel.sh: quit looking for snapshot sysfs entries
The sysfs entries for snapshots went away a while ago, and this
script used them to verify sizes matched what was expected.

Instead, look at the mapped size of the snapshot in the places
that used to look for the image's snapshot sysfs files.

Also, switch over to using "udevadm settle" rather than a delay to
wait for udev to do its thing.  Insert them at more appropriate
places--right after "rmd map" commands and before and after the
"rbd unmap" calls.

Stop doing the manual refresh calls as well.  The osd will trigger
refreshes whenever the image size or shapshot context changes.

Finally, the cleanup routine is called initially, when there really
isn't expected to be anything to clean up.  Change the rbd commands
to run there conditionally, only if the target of the command
already exists.

Signed-off-by: Alex Elder <elder@inktank.com>
2013-05-30 18:38:53 -05:00
Alex Elder
f40256878d rbd/concurrent.sh: probe rbd module at start
There's no guarantee the rbd module is loaded when this script is
run, so add a line that loads it if necessary.

Signed-off-by: Alex Elder <elder@inktank.com>
2013-05-30 10:10:16 -05:00
Alex Elder
4a8d9962be rbd image_read.sh: ensure rbd is loaded
Make sure rbd is loaded before proceeding with the script.

Signed-off-by: Alex Elder <elder@inktank.com>
2013-05-22 16:50:19 -05:00
Alex Elder
bfb08ee4b2 rbd image_read.sh: test different clone object orders
An rbd clone image can be created with an object order that differs
from that of its parent.  This patch adds testing for that in
qa/workunits/rbd/image_read.sh.  By default, clone images will be
created with an object size twice as big as that of its parent.

For simplicity, when a clone's object order differs from its parent
the order will be either one more than or one less than that of its
parent image, meaning its object size is either double or half of
the size of objects used in the parent.

Signed-off-by: Alex Elder <elder@inktank.com>
2013-05-21 14:44:40 -05:00
Alex Elder
7ad5cebae1 rbd image_read.sh: add clone-of-clone testing
Add testing to verify that a snapshot of a clone and a clone of
that snapshot both produce the correct results when read.

Signed-off-by: Alex Elder <elder@inktank.com>
2013-05-21 14:44:38 -05:00
Alex Elder
a6b4847ef2 rbd image_read.sh: allocate local file at create time
Move the dd command that touches the last byte in a local file
into create_image() where it belongs (out of fill_original()).

Signed-off-by: Alex Elder <elder@inktank.com>
2013-05-21 14:44:35 -05:00
Alex Elder
512e907726 rbd image_read.sh: a few cleanups
The function boolean_toggle() in qa/workunits/rbd/image_read.sh is
defined but never used.  My intentions were good though.  Fix it and
use it for argument parsing.

Change the minimum supported object order so it matches what the
command line interface enforces.

Assign the initial value of TEST_CLONES from the environment if it's
available.

Change defaults to use format 2 and test clones.

Output details about the parameters of the run even if not being
verbose.

Make the order of assignment of argument variables consistent.

And fix a typo unmap_image().

Signed-off-by: Alex Elder <elder@inktank.com>
2013-05-21 14:44:30 -05:00
Sage Weil
cbff720ff5 rbd: prevent import of a dir
Fixes: #2865
Signed-off-by: Sage Weil <sage@inktank.com>
2013-05-21 12:16:24 -07:00
Josh Durgin
13ae13a906 librbd: add options to enable balanced or localized reads for snapshots
Since snapshots never change, it's safe to read from replicas for them.
A common use for this would be reading from a parent snapshot shared by
many clones.

Convert LibrbdWriteback and AioRead to use the ObjectOperation api
so we can set flags. Fortunately the external wrapper holds no data,
so its lifecycle doesn't need to be managed.

Include a simple workunit that sets the flags in various combinations
and looks for their presence in the logs from 'rbd export'.

Fixes: #3064
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2013-05-12 19:31:22 -07:00
Sage Weil
fe9d326099 rbd: fix qa tests to use --allow-shrink
Fixes: #4763
Signed-off-by: Sage Weil <sage@inktank.com>
2013-04-19 14:37:21 -07:00
Sage Weil
544eb9bda2 qa: pull qemu-iotests from ceph.com mirror
Signed-off-by: Sage Weil <sage@inktank.com>
2013-04-16 16:40:14 -07:00
Josh Durgin
98de67d424 qa: add workunit for running qemu-iotests
This uses the old stand-alone qemu-iotests repo so it works with the
version of qemu in Ubuntu 12.04. The tests depend tightly on qemu
version, so to use later tests we'd need to install corresponding
versions of qemu.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2013-04-12 17:59:35 -07:00
Alex Elder
351d9b270f rbd qa/workunits: add rbd read data test
This adds a new test script for validating data reads from a mapped
rbd image is what it's expected to be.

See the content of the file for a bit more explanation.

Signed-off-by: Alex Elder <elder@inktank.com>
2013-04-10 15:54:13 -05:00
Sage Weil
f67f62abab rbd: prevent import-diff if start snapshot is not already present
Signed-off-by: Sage Weil <sage@inktank.com>
2013-03-31 23:32:41 -07:00
Sage Weil
9946c69cd1 rbd: fail import-diff if end snap already exists
This will prevent a user from inadvertantly reapplying a diff twice.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-03-31 23:32:41 -07:00
Sage Weil
f0c9a200ec librbd: diff_iterate fromsnapname after the end snap is also invalid
Signed-off-by: Sage Weil <sage@inktank.com>
2013-03-31 23:32:41 -07:00
Sage Weil
44e295a3cc qa: rbd/diff_continuous.sh: use non-standard striping
Exercise the striping arithmetic by using non-standard striping that
varies between the parent and child.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-03-31 23:32:41 -07:00
Sage Weil
f2b0880a89 qa: rbd/diff_continuous.sh: base test off a clone
Get a bit of coverage on clones by starting with a clone.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-03-31 23:32:41 -07:00
Sage Weil
58c2dedded qa: add rbd/diff_continuous.sh stress test
Stress test that does io on an image while we are mirroring a diff from
earlier snaps to a second copy.  At the end, verify that all snaps have
matching content.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-03-31 23:32:40 -07:00
Sage Weil
e7167433ae rbd: implement 'export-diff' and 'import-diff' commands
Export a diff of an image from a previous snapshot to a file (or stdout).

Import a diff and apply it to an image, and then create the ending
snapshot.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-03-31 23:32:40 -07:00
Dan Mick
ccdafa067a test_lock_fence.sh, rbdrw.py: rbd lock/fence test
qa/workunits/rbd/test_lock_fence.sh runs using test/rbdrw.py

rbdrw.py creates an image, locks it, and runs an I/O loop;
test_lock_fence.sh runs it, waits, and then blacklists that client,
which causes rbdrw.py to get ESHUTDOWN on operations thereafter.
Currently doesn't work with rbd caching enabled.

rbd.py gets new exception type for ESHUTDOWN

Fixes: #3190
Signed-off-by: Dan Mick <dan.mick@inktank.com>
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2013-02-25 18:17:40 -08:00
Josh Durgin
55bd7687bf qa: enable watch-notify dependent test
This works now that watch-notify has been reworked a bit.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2013-02-25 15:59:48 -08:00
Gary Lowell
bcb210c677 Merge branch 'next' 2013-02-19 14:53:54 -08:00
Sage Weil
45a4fe0915 qa: rbd map-snapshot-io: udevadm settle
Udev runs blkid on device close, thwarting any rbd unmap that
immediately follows use of the device.  Explicitly settle for now.

See #4183.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-02-18 20:32:41 -08:00
Sage Weil
231dc1bee6 qa: rbd/map-snapshot-io: remove image when done
Signed-off-by: Sage Weil <sage@inktank.com>
2013-02-18 11:24:46 -08:00
Sage Weil
1a7a57ac8f qa: fix quoting of wget URLs
Broke this in ae0c2bbb50.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-02-18 10:58:10 -08:00
Sage Weil
f45e9be2f3 Merge branch 'next' 2013-02-15 17:21:42 -08:00
Sage Weil
3f5c252796 qa: rbd/map-snapshat-io: unmap image when done
Signed-off-by: Sage Weil <sage@inktank.com>
2013-02-15 16:26:16 -08:00
Sage Weil
bc74429c8b qa: rbd/map-snapshot-io.sh: chown rbd device stuff
This is fugly, but sudo -E doesn't work.  Fix this after we are installing
debs and the path doesn't matter anymore!

Signed-off-by: Sage Weil <sage@inktank.com>
2013-02-15 13:57:47 -08:00
Sage Weil
ae0c2bbb50 qa: pull qa stuff from ceph.com ceph.git mirror
Signed-off-by: Sage Weil <sage@inktank.com>
2013-02-15 09:20:24 -08:00
tamil
e2b8e0f13c modified the perl file name
Signed-off-by: tamil <tamil.muthamizhan@inktank.com>
2013-02-12 10:55:39 -08:00
tamil
2783fce24e work unit for rbd cli tests
Signed-off-by: tamil <tamil.muthamizhan@inktank.com>
2013-02-11 18:11:26 -08:00
Sage Weil
3f4d8532ea Merge remote-tracking branch 'gh/next' 2013-02-11 17:12:22 -08:00
Sage Weil
3d5969d680 qa/rbd: +x on map-snapshot-io.sh
Signed-off-by: Sage Weil <sage@inktank.com>
2013-02-11 08:48:44 -08:00
Danny Al-Gaaf
7b89ee666b ceph-test: give binaries from ceph-test package useful names
The files from the ceph-test subpackage are installed to /usr/bin,
give them more useful names to make sure that the user know they
belong to ceph. add a 'ceph_' prefix and change some test* binaries
to ceph_test_*.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2013-02-10 18:33:56 +01:00
Sage Weil
b970d054ce qa: smalliobenchrbd workunit
Run a bunch of parallel smalliobenchrbd processes.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-02-03 09:28:22 -08:00
Alex Elder
97c6619d3f qa: update the rbd/concurrent.sh workunit
A few changes, now that a few rbd problems have been fixed.
First, the more substantive changes:
    - Generate a source file, and compare what's read back from rbd
      devices with the content of that file.
    - Write to the rbd device such that the written data spans
      an (assumed 4 MB) rbd object boundary, as well as starting
      and ending on non-page-aligned offsets.
    - Perform multiple reads on rbd devices: entirely within a range
      before any written data; beginning before but ending within
      written data; the exact written data (and validating what's
      read); beginning within written data but ending after it;
      reading after written data but within a written rbd object;
      and reading from an unwritten rbd object.
    - Have the sleep between iterations provide a non-integer value
      to avoid zero (or quantized) delays.

Also, some a little less substantive (but possibly informative):
    - Don't run with "set -x".  It produces a ton of noise that is
      not useful for this test.  This is an exerciser, looking
      really for system crashes during concurrent activity, and
      knowing which commands were (concurrently) active isn't going
      to help much in diagnosis.
    - Create two more directories, used to track the degree of
      concurrency (more or less) and the highest rbd id consumed.
      Files whose names are numbers are touched in each, and the
      highest at the end is the highest during the run.  This gets
      around issues passing environment info from sub-shells to the
      top-level shell.  As a bonus, it offers a better chance of
      avoiding problems due to concurrent update.
    - NAMESDIR is renamed NAMES_DIR, and it (and the others) is
      set up in the setup() function.
    - Increase the concurrency and iteration counts.
    - Move the default definitions before the ceph secrets stuff

Signed-off-by: Alex Elder <elder@inktank.com>
2013-01-31 11:55:59 -06:00
Sage Weil
c782d2ac53 qa: add test for rbd map and snapshots
This tests for the behavior reported in #3964.  It passes on the current
code, but fails on 3.2 in squeeze (and 32-bit?).

Signed-off-by: Sage Weil <sage@inktank.com>
2013-01-30 01:06:03 -08:00
Alex Elder
59ac4d3534 qa: add rbd/concurrent workunit
This defines a new workunit shell script that performs a bunch of
rbd operations concurrently in order to exercise code paths and
catch reference count and bad pointer problems.

Signed-off-by: Alex Elder <elder@inktank.com>
2013-01-29 16:42:44 -06:00
Sage Weil
1ba4c80bcf qa/workunits/rbd/copy.sh: use non-deprecated --image-format option
--format is deprecated.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-01-26 13:46:12 -08:00
Sage Weil
bbb86ec794 mon: safety interlock for pool deletion
Require that the pool name be passed twice along with an force option
before we irreversibly delete an entire pool of objects.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-01-26 13:45:12 -08:00
Dan Mick
00898c1860 rbd: allow copy of zero-length images. Includes simple test.
Fixes: #3765
Signed-off-by: Dan Mick <dan.mick@inktank.com>
2013-01-09 16:11:51 -08:00
Josh Durgin
e0858fa899 Revert "librbd: ensure header is up to date after initial read"
Using assert version for linger ops doesn't work with retries,
since the version will change after the first send.
This reverts commit e177680903.

Conflicts:

	qa/workunits/rbd/watch_correct_version.sh
2013-01-02 12:32:33 -08:00
Josh Durgin
958addc0c9 rbd: open (source) image as read-only
This allows users without write access to copy, export and list
information about an image.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2012-12-30 00:06:11 -08:00
Dan Mick
6325a4800d import_export.sh: sparse import export
Add tests for:
   - sparse import makes expected sparse images
   - sparse export makes expected sparse files
   - sparse import from stdin also creates sparse images
   - import from partially-sparse file leads to partially-sparse image
   - import from stdin with zeros leads to sparse
   - export from zeros-image to file leads to sparse file

Signed-off-by: Dan Mick <dan.mick@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2012-12-21 17:03:38 -08:00
Alex Elder
bf01b7b2e2 map-unmap.sh: use udevadm settle for synchronization
This script was heuristically using short sleep commands in order to
give udev activity time to complete.

There's a command "udevadm settle" which actually looks at the udev
queue and waits until its processing is done.  Much, much better.

This rearranges the get_id function a bit too, breaking it into one
function that gets the id and another that loops back and tries
again after a short delay in the event the get_id fails.

Signed-off-by: Alex Elder <elder@inktank.com>
2012-12-14 15:58:39 -06:00
Josh Durgin
e6dd0681d1 qa: echo commands run by rbd map-unmap workunit
It's hard to figure out what failed without this.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2012-12-13 08:29:10 -08:00
Alex Elder
dd3a24a647 create qa/workunits/rbd/map-unmap.sh
This adds a bash script that creates an rbd image, then repeatedly
maps and unmaps it for a specified duration (5 minutes by default).

Signed-off-by: Alex Elder <elder@inktank.com>
2012-11-28 17:22:49 -06:00
Dan Mick
80c506d4b9 rbd: fix import from stdin, add test
Make import work; do I/O in image native block size.
Note: creating sparse images is not currently attempted; could
scan for runs of zeros and write discontiguous chunks to image.

Fixes: #3503
Signed-off-by: Dan Mick <dan.mick@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
(cherry picked from commit c99d9c3ae7)
2012-11-28 11:45:31 -08:00
Dan Mick
fcebe04801 rbd: allow export to stdout, add tests
Fixes: #3502
Signed-off-by: Dan Mick <dan.mick@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
(cherry picked from commit a738f44bc4)
2012-11-28 11:45:27 -08:00
Dan Mick
919db19426 rbd workunit: Add tests for clones across pools
Signed-off-by: Dan Mick <dan.mick@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
(cherry picked from commit ece11b0ed9)
2012-11-27 14:06:33 -08:00
Dan Mick
5164075040 rbd workunit: Make "remove_images" silent
Signed-off-by: Dan Mick <dan.mick@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
(cherry picked from commit 0be9b15b79)
2012-11-27 14:06:30 -08:00
Dan Mick
ca5549e8c9 rbd workunit: Add tests for cross-pool rename
Signed-off-by: Dan Mick <dan.mick@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
(cherry picked from commit a96ede944f)
2012-11-27 14:06:27 -08:00
Dan Mick
bbd343a1d1 rbd: tests for copy with explicit/implicit pool names
Validate change to not assume dest pool == src pool

Signed-off-by: Dan Mick <dan.mick@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
(cherry picked from commit 39180430b9)
2012-11-27 14:06:23 -08:00
Dan Mick
0baa9275ea cls_rbd: send proper format of key to "last_read" for dir_list
rbd ls of format-2 images was looping on the first 64 (when more than 64
were present).  The key name passed to the omap layer needs to always
contain the prefix, and the "inside-the-loop next-chunk" statement
was missing the "add the prefix" call.

Also, add a test for listing 100 images, format 1 and 2.

Signed-off-by: Dan Mick <dan.mick@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2012-11-06 15:51:44 -08:00
Dan Mick
241569c595 rbd: allow removal of image even if rbd_children deletion fails
Users have been seeing failures where rbd rm is half-done; could be
because of outstanding watches on the rbd_header object.  The state
is that rbd_children no longer contains the child, but other pieces
remain; remove considers this a failure.

Fix: test for ENOENT from remove_child, and treat that as an ignorable
error and drive on.  Simulate this in copy.sh by removing the
rbd_children object altogether, which also results in ENOENT return
from remove_child.

Signed-off-by: Dan Mick <dan.mick@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2012-11-05 21:41:34 -08:00
Dan Mick
8518115e25 rbd cli tests: copy.sh was looking for old version of rbd ls -l output
Signed-off-by: Dan Mick <dan.mick@inktank.com>
2012-10-09 17:13:49 -07:00
Josh Durgin
f1ad419282 qa: report success if race is not detected
This test still verifies that the race is handled correctly if it
occurs, but will no longer clutter test results with spurious failures
when the race is not reproduced.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2012-10-04 16:50:46 -07:00
Dan Mick
37ffb278c8 qa scripts: Replace cut -f 1 with awk '{print $1;}'
This is to handle TextTable output, which doesn't use tabs

Signed-off-by: Dan Mick <dan.mick@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2012-10-04 17:04:09 -07:00
Dan Mick
61b2e4d6ac rbd: use TextTable to implement ls -l
Signed-off-by: Dan Mick <dan.mick@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2012-10-04 15:20:29 -07:00
Josh Durgin
9e8f69a0da qa: try to reproduce a race more times
This was failing occassionally in the nightly runs.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2012-10-02 12:33:07 -07:00
Sage Weil
18921ed2ef Merge remote-tracking branch 'gh/wip-watch-header-race' 2012-09-27 13:37:52 -07:00
Josh Durgin
e177680903 librbd: ensure header is up to date after initial read
Use an assert version op in combination with our watch, and re-read
the header until it's not stale. Header updates are infrequent, so
this should not cause any delay with normal use.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2012-09-24 12:09:46 -07:00
Sage Weil
0c07607fb8 qa: move all rados class unit tests into qa/workunits/cls
This includes the existing rbd one; teh suite is getting fixed to match.

See #3097.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-09-20 15:12:39 -07:00
Alex Elder
ed43d4de12 rbd/copy.sh: fix typo
Or maybe it was a spello, or a thinko, or something.  In any case
I'm pretty sure Josh intended to call the function he added in
commit 78d6a60ca, and not the non-existent "test_import_args".

Signed-off-by: Alex Elder <elder@inktank.com>
2012-09-18 22:51:10 -05:00
Josh Durgin
f530659786 Merge remote branch 'origin/wip-librbd-locking'
Conflicts:
	qa/workunits/rbd/copy.sh

Reviewed-by: Sage Weil <sage.weil@inktank.com>
2012-09-18 16:06:25 -07:00
Josh Durgin
78d6a60c59 qa: test args for rbd import
Make sure that --pool/--dest-pool and --image/--dest all work
interchangeably.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2012-09-14 17:17:29 -07:00
Josh Durgin
eeaa92c471 rbd: add locking commands
The locker (entity_name_t) will be different each time the rbd
command line tool is run, so 'lock remove' is always breaking a lock.

Fixes: #2556
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2012-09-07 18:38:27 -07:00
Josh Durgin
fd1c634b13 qa: update rbd tests and runner
* no longer need to wait for watch timeout since #2948 was fixed
* use --format 2 instead of --new-format
* add test_cls_rbd to run-rbd-tests script

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2012-09-07 18:38:27 -07:00
Josh Durgin
9071764a6b qa: remove rbd image when done
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2012-07-30 11:19:53 -07:00
Josh Durgin
3dd65a897b qa: download tests from specified branch
These python tests aren't installed, so they need to be downloaded

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2012-07-13 09:42:27 -07:00
Josh Durgin
d82a502680 qa: add rbd remove tests
These check that removing an image still works if an rbd rm
command was interrupted partway through.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2012-07-02 14:18:21 -07:00
Josh Durgin
1c096a8062 qa: run rbd tests against old and new formats
Now it's not the caller's responsibility to specify the format,
and we can eliminate a job from the qa suite.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2012-07-02 14:18:21 -07:00
Josh Durgin
aa3255b844 qa: add tests for rbd ls with old and new formats
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2012-07-02 14:18:21 -07:00
Josh Durgin
288bde3f9e qa: restructure rbd cli tests
Move tests into functions and remove all images at the end of each.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2012-07-02 14:18:21 -07:00
Josh Durgin
0ad14c95c0 qa: add rbd command rename tests
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2012-07-02 14:18:21 -07:00
Josh Durgin
5cd33cdd23 workunits/rbd: add workunit for running cls_rbd tests
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2012-06-10 22:01:19 -07:00
Josh Durgin
031d42ad1f workunits/rbd: disable remove_with_watcher test
This will fail until #2533 is fixed.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2012-06-10 21:59:07 -07:00
Josh Durgin
3d7925b1ae workunits/rbd: allow creating images in different formats
This will allow adding more arguments for testing combinations
of features in the future.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2012-06-09 17:24:50 -07:00
Sage Weil
70360f840e github.com/NewDreamNetwork -> github.com/ceph 2012-03-02 11:00:08 -08:00
Josh Durgin
b6c43d2aff rbd: add a command to delete all snapshots of an image
This makes deleting images with many snapshots easier.

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
2012-01-05 10:19:17 -08:00
Josh Durgin
6687ccf5dc workunits: update rbd test for new error format
Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
2011-12-30 10:32:05 -08:00
Josh Durgin
8afa5a5d9e workunits: fix secret file and temp file removal for kernel rbd
Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
2011-12-06 14:20:31 -08:00
Josh Durgin
bcd26fca71 workunits: make rbd kernel workunit executable
Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
2011-12-06 13:36:51 -08:00
Josh Durgin
66b6b1bff8 workunits: add some tests for kernel rbd
This covers some snapshot and resize functions that aren't tested by fs benchmarks.

Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
2011-12-06 10:31:17 -08:00
Josh Durgin
e161ce1593 workunits: test rbd python bindings
Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
2011-10-24 15:32:47 -07:00
Josh Durgin
bfb5ceb2bd workunits: add rbd rollback and snapshot removal tests
Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
2011-10-24 15:32:47 -07:00
Josh Durgin
f4aa69a872 workunit: check that rbd info returns the right size for snapshots
Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
2011-10-24 15:32:47 -07:00
Josh Durgin
b968ff3a0e workunit: clean up temporary files
Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
2011-10-03 12:20:25 -07:00
Sage Weil
6228389df8 qa: add test_librbd workunit
Signed-off-by: Sage Weil <sage@newdream.net>
2011-09-12 14:01:46 -07:00
Sage Weil
39b6a9c495 qa: add rbd copy workunit
Test copying an image and snapshot.

Signed-off-by: Sage Weil <sage@newdream.net>
2011-08-22 16:53:55 -07:00
Sage Weil
6725e748e9 qa: simple rbd import/export test
Fixes: #1211
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
2011-06-21 20:31:00 -07:00