10 test_rados_tool.sh: tests rados_tool
11 -c: RADOS configuration file to use [optional]
14 -p: set temporary pool to use [optional]
19 if [ "$1" == "--tee" ]; then
30 echo "RUN_EXPECT_FAIL: " "$@"
32 [ $?
-eq 0 ] && die
"expected failure, but got success! cmd: $@"
36 echo "RUN_EXPECT_SUCC: " "$@"
38 [ $?
-ne 0 ] && die
"expected success, but got failure! cmd: $@"
41 run_expect_nosignal
() {
42 echo "RUN_EXPECT_NOSIGNAL: " "$@"
44 [ $?
-ge 128 ] && die
"expected succes or fail, but got signal! cmd: $@"
52 if [ -n "$CEPH_BIN" ] ; then
54 RADOS_TOOL
="$CEPH_BIN/rados"
55 CEPH_TOOL
="$CEPH_BIN/ceph"
57 # executables should be installed by the QA env
58 RADOS_TOOL
=$
(which rados
)
59 CEPH_TOOL
=$
(which ceph
)
64 POOL_CP_TARGET
=trs_pool
.2
67 [ -x "$RADOS_TOOL" ] || die
"couldn't find $RADOS_TOOL binary to test"
68 [ -x "$CEPH_TOOL" ] || die
"couldn't find $CEPH_TOOL binary to test"
70 while getopts "c:hkp:" flag
; do
72 c
) RADOS_TOOL
="$RADOS_TOOL -c $OPTARG";;
73 k
) KEEP_TEMP_FILES
=1;;
76 *) echo; usage
; exit 1;;
80 TDIR
=`mktemp -d -t test_rados_tool.XXXXXXXXXX` || die
"mktemp failed"
81 [ $KEEP_TEMP_FILES -eq 0 ] && trap "rm -rf ${TDIR}; exit" INT TERM EXIT
83 # ensure rados doesn't segfault without --pool
84 run_expect_nosignal
"$RADOS_TOOL" --snap "asdf" ls
85 run_expect_nosignal
"$RADOS_TOOL" --snapid "0" ls
86 run_expect_nosignal
"$RADOS_TOOL" --object_locator "asdf" ls
87 run_expect_nosignal
"$RADOS_TOOL" --namespace "asdf" ls
89 run_expect_succ
"$RADOS_TOOL" mkpool
"$POOL"
90 run_expect_succ
"$CEPH_TOOL" osd erasure-code-profile
set myprofile k
=2 m
=1 stripe_unit
=2K ruleset-failure-domain
=osd
--force
91 run_expect_succ
"$CEPH_TOOL" osd pool create
"$POOL_EC" 100 100 erasure myprofile
94 # expb happens to be the empty export for legacy reasons
95 run_expect_succ
"$RADOS_TOOL" -p "$POOL" export "$TDIR/expb"
97 # expa has objects foo, foo2 and bar
98 run_expect_succ
"$RADOS_TOOL" -p "$POOL" put foo
/etc
/fstab
99 run_expect_succ
"$RADOS_TOOL" -p "$POOL" put foo2
/etc
/fstab
100 run_expect_succ
"$RADOS_TOOL" -p "$POOL" put bar
/etc
/fstab
101 run_expect_succ
"$RADOS_TOOL" -p "$POOL" export "$TDIR/expa"
103 # expc has foo and foo2 with some attributes and omaps set
104 run_expect_succ
"$RADOS_TOOL" -p "$POOL" rm bar
105 run_expect_succ
"$RADOS_TOOL" -p "$POOL" setxattr foo
"rados.toothbrush" "toothbrush"
106 run_expect_succ
"$RADOS_TOOL" -p "$POOL" setxattr foo
"rados.toothpaste" "crest"
107 run_expect_succ
"$RADOS_TOOL" -p "$POOL" setomapval foo
"rados.floss" "myfloss"
108 run_expect_succ
"$RADOS_TOOL" -p "$POOL" setxattr foo2
"rados.toothbrush" "green"
109 run_expect_succ
"$RADOS_TOOL" -p "$POOL" setomapheader foo2
"foo2.header"
110 run_expect_succ
"$RADOS_TOOL" -p "$POOL" export "$TDIR/expc"
112 # make sure that --create works
113 run
"$RADOS_TOOL" rmpool
"$POOL" "$POOL" --yes-i-really-really-mean-it
114 run_expect_succ
"$RADOS_TOOL" -p "$POOL" --create import
"$TDIR/expa"
116 # make sure that lack of --create fails
117 run_expect_succ
"$RADOS_TOOL" rmpool
"$POOL" "$POOL" --yes-i-really-really-mean-it
118 run_expect_fail
"$RADOS_TOOL" -p "$POOL" import
"$TDIR/expa"
120 run_expect_succ
"$RADOS_TOOL" -p "$POOL" --create import
"$TDIR/expa"
122 # inaccessible import src should fail
123 run_expect_fail
"$RADOS_TOOL" -p "$POOL" import
"$TDIR/dir_nonexistent"
125 # export an empty pool to test purge
126 run_expect_succ
"$RADOS_TOOL" purge
"$POOL" --yes-i-really-really-mean-it
127 run_expect_succ
"$RADOS_TOOL" -p "$POOL" export "$TDIR/empty"
128 cmp -s "$TDIR/expb" "$TDIR/empty" \
129 || die
"failed to export the same stuff we imported!"
132 # import some stuff with extended attributes on it
133 run_expect_succ
"$RADOS_TOOL" -p "$POOL" import
"$TDIR/expc"
134 VAL
=`"$RADOS_TOOL" -p "$POOL" getxattr foo "rados.toothbrush"`
135 [ ${VAL} = "toothbrush" ] || die
"Invalid attribute after import"
137 # the second time, the xattrs should match, so there should be nothing to do.
138 run_expect_succ
"$RADOS_TOOL" -p "$POOL" import
"$TDIR/expc"
139 VAL
=`"$RADOS_TOOL" -p "$POOL" getxattr foo "rados.toothbrush"`
140 [ "${VAL}" = "toothbrush" ] || die
"Invalid attribute after second import"
142 # Now try with --no-overwrite option after changing an attribute
143 run_expect_succ
"$RADOS_TOOL" -p "$POOL" setxattr foo
"rados.toothbrush" "dentist"
144 run_expect_succ
"$RADOS_TOOL" -p "$POOL" import
--no-overwrite "$TDIR/expc"
145 VAL
=`"$RADOS_TOOL" -p "$POOL" getxattr foo "rados.toothbrush"`
146 [ "${VAL}" = "dentist" ] || die
"Invalid attribute after second import"
148 # now force it to copy everything
149 run_expect_succ
"$RADOS_TOOL" -p "$POOL" import
"$TDIR/expc"
150 VAL
=`"$RADOS_TOOL" -p "$POOL" getxattr foo "rados.toothbrush"`
151 [ "${VAL}" = "toothbrush" ] || die
"Invalid attribute after second import"
154 run
"$RADOS_TOOL" rmpool
"$POOL" "$POOL" --yes-i-really-really-mean-it
155 run
"$RADOS_TOOL" rmpool
"$POOL_CP_TARGET" "$POOL_CP_TARGET" --yes-i-really-really-mean-it
156 run_expect_succ
"$RADOS_TOOL" mkpool
"$POOL"
157 run_expect_succ
"$RADOS_TOOL" mkpool
"$POOL_CP_TARGET"
160 mkdir
-p "$TDIR/dir_cp_src"
161 for i
in `seq 1 5`; do
162 fname
="$TDIR/dir_cp_src/f.$i"
164 dd if=/dev
/urandom of
="$fname" bs
=$
((1024*1024)) count
=$i
165 run_expect_succ
"$RADOS_TOOL" -p "$POOL" put
$objname "$fname"
168 for j
in `seq 1 4`; do
169 rand_str
=`dd if=/dev/urandom bs=4 count=1 | hexdump -x`
170 run_expect_succ
"$RADOS_TOOL" -p "$POOL" setxattr
$objname attr.
$j "$rand_str"
171 run_expect_succ
--tee "$fname.attr.$j" "$RADOS_TOOL" -p "$POOL" getxattr
$objname attr.
$j
174 rand_str
=`dd if=/dev/urandom bs=4 count=1 | hexdump -x`
175 run_expect_succ
"$RADOS_TOOL" -p "$POOL" setomapheader
$objname "$rand_str"
176 run_expect_succ
--tee "$fname.omap.header" "$RADOS_TOOL" -p "$POOL" getomapheader
$objname
178 # a few random omap keys
179 for j
in `seq 1 4`; do
180 rand_str
=`dd if=/dev/urandom bs=4 count=1 | hexdump -x`
181 run_expect_succ
"$RADOS_TOOL" -p "$POOL" setomapval
$objname key.
$j "$rand_str"
183 run_expect_succ
--tee "$fname.omap.vals" "$RADOS_TOOL" -p "$POOL" listomapvals
$objname
186 run_expect_succ
"$RADOS_TOOL" cppool
"$POOL" "$POOL_CP_TARGET"
188 mkdir
-p "$TDIR/dir_cp_dst"
189 for i
in `seq 1 5`; do
190 fname
="$TDIR/dir_cp_dst/f.$i"
192 run_expect_succ
"$RADOS_TOOL" -p "$POOL_CP_TARGET" get
$objname "$fname"
195 for j
in `seq 1 4`; do
196 run_expect_succ
--tee "$fname.attr.$j" "$RADOS_TOOL" -p "$POOL_CP_TARGET" getxattr
$objname attr.
$j
199 run_expect_succ
--tee "$fname.omap.header" "$RADOS_TOOL" -p "$POOL_CP_TARGET" getomapheader
$objname
200 run_expect_succ
--tee "$fname.omap.vals" "$RADOS_TOOL" -p "$POOL_CP_TARGET" listomapvals
$objname
203 diff -q -r "$TDIR/dir_cp_src" "$TDIR/dir_cp_dst" \
204 || die
"copy pool validation failed!"
220 run_expect_succ
"$RADOS_TOOL" --$opt 4 df
221 run_expect_fail
"$RADOS_TOOL" --$opt 4k df
224 run_expect_succ
"$RADOS_TOOL" lock list f
.1 --lock-duration 4 --pool "$POOL"
225 echo # previous command doesn't output an end of line: issue #9735
226 run_expect_fail
"$RADOS_TOOL" lock list f
.1 --lock-duration 4k
--pool "$POOL"
228 run_expect_succ
"$RADOS_TOOL" mksnap snap1
--pool "$POOL"
229 snapid
=$
("$RADOS_TOOL" lssnap
--pool "$POOL" |
grep snap1 | cut
-f1)
230 [ $?
-ne 0 ] && die
"expected success, but got failure! cmd: \"$RADOS_TOOL\" lssnap --pool \"$POOL\" | grep snap1 | cut -f1"
231 run_expect_succ
"$RADOS_TOOL" ls --pool "$POOL" --snapid="$snapid"
232 run_expect_fail
"$RADOS_TOOL" ls --pool "$POOL" --snapid="$snapid"k
234 run_expect_succ
"$RADOS_TOOL" chown
1 --pool "$POOL"
235 run_expect_fail
"$RADOS_TOOL" chown
1k
--pool "$POOL"
237 run_expect_succ
"$RADOS_TOOL" truncate f
.1 0 --pool "$POOL"
238 run_expect_fail
"$RADOS_TOOL" truncate f
.1 0k
--pool "$POOL"
240 run
"$RADOS_TOOL" rmpool delete_me_mkpool_test delete_me_mkpool_test
--yes-i-really-really-mean-it
241 run_expect_succ
"$RADOS_TOOL" mkpool delete_me_mkpool_test
0 0
242 run_expect_fail
"$RADOS_TOOL" mkpool delete_me_mkpool_test2
0k
0
243 run_expect_fail
"$RADOS_TOOL" mkpool delete_me_mkpool_test3
0 0k
245 run_expect_succ
"$RADOS_TOOL" --pool "$POOL" bench
1 write
246 run_expect_fail
"$RADOS_TOOL" --pool "$POOL" bench
1k
write
247 run_expect_succ
"$RADOS_TOOL" --pool "$POOL" bench
1 write --format json
--output "$TDIR/bench.json"
248 run_expect_fail
"$RADOS_TOOL" --pool "$POOL" bench
1 write --output "$TDIR/bench.json"
249 run_expect_succ
"$RADOS_TOOL" --pool "$POOL" bench
5 write --format json
--no-cleanup
250 run_expect_succ
"$RADOS_TOOL" --pool "$POOL" bench
1 rand
--format json
251 run_expect_succ
"$RADOS_TOOL" --pool "$POOL" bench
1 seq --format json
252 run_expect_succ
"$RADOS_TOOL" --pool "$POOL" bench
5 write --write-omap
253 run_expect_succ
"$RADOS_TOOL" --pool "$POOL" bench
5 write --write-object
254 run_expect_succ
"$RADOS_TOOL" --pool "$POOL" bench
5 write --write-xattr
255 run_expect_succ
"$RADOS_TOOL" --pool "$POOL" bench
5 write --write-xattr --write-object
256 run_expect_succ
"$RADOS_TOOL" --pool "$POOL" bench
5 write --write-xattr --write-omap
257 run_expect_succ
"$RADOS_TOOL" --pool "$POOL" bench
5 write --write-omap --write-object
258 run_expect_succ
"$RADOS_TOOL" --pool "$POOL" bench
5 write --write-xattr --write-omap --write-object
259 run_expect_fail
"$RADOS_TOOL" --pool "$POOL" bench
5 read --write-omap
260 run_expect_fail
"$RADOS_TOOL" --pool "$POOL" bench
5 read --write-object
261 run_expect_fail
"$RADOS_TOOL" --pool "$POOL" bench
5 read --write-xattr
262 run_expect_fail
"$RADOS_TOOL" --pool "$POOL" bench
5 read --write-xattr --write-object
263 run_expect_fail
"$RADOS_TOOL" --pool "$POOL" bench
5 read --write-xattr --write-omap
264 run_expect_fail
"$RADOS_TOOL" --pool "$POOL" bench
5 read --write-omap --write-object
265 run_expect_fail
"$RADOS_TOOL" --pool "$POOL" bench
5 read --write-xattr --write-omap --write-object
267 for i
in $
("$RADOS_TOOL" --pool "$POOL" ls |
grep "benchmark_data"); do
268 "$RADOS_TOOL" --pool "$POOL" truncate
$i 0
271 run_expect_nosignal
"$RADOS_TOOL" --pool "$POOL" bench
1 rand
272 run_expect_nosignal
"$RADOS_TOOL" --pool "$POOL" bench
1 seq
280 if "$@"; then return 1; else return 0; fi
284 $RADOS_TOOL -p $POOL rm $OBJ > /dev
/null
2>&1 || true
285 $RADOS_TOOL -p $POOL_EC rm $OBJ > /dev
/null
2>&1 || true
290 for i
in $
(seq 1 1 10)
292 if [ $
(($i % 2)) -eq 0 ]; then
293 $RADOS_TOOL -p $POOL setomapval
$OBJ $i $i
295 echo -n "$i" |
$RADOS_TOOL -p $POOL setomapval
$OBJ $i
297 $RADOS_TOOL -p $POOL getomapval
$OBJ $i |
grep -q "|$i|\$"
299 $RADOS_TOOL -p $POOL listomapvals
$OBJ |
grep -c value |
grep 10
300 for i
in $
(seq 1 1 5)
302 $RADOS_TOOL -p $POOL rmomapkey
$OBJ $i
304 $RADOS_TOOL -p $POOL listomapvals
$OBJ |
grep -c value |
grep 5
307 for i
in $
(seq 1 1 10)
309 dd if=/dev
/urandom bs
=128 count
=1 > $TDIR/omap_key
310 if [ $
(($i % 2)) -eq 0 ]; then
311 $RADOS_TOOL -p $POOL --omap-key-file $TDIR/omap_key setomapval
$OBJ $i
313 echo -n "$i" |
$RADOS_TOOL -p $POOL --omap-key-file $TDIR/omap_key setomapval
$OBJ
315 $RADOS_TOOL -p $POOL --omap-key-file $TDIR/omap_key getomapval
$OBJ |
grep -q "|$i|\$"
316 $RADOS_TOOL -p $POOL --omap-key-file $TDIR/omap_key rmomapkey
$OBJ
317 $RADOS_TOOL -p $POOL listomapvals
$OBJ |
grep -c value |
grep 0
324 $RADOS_TOOL -p $POOL put
$OBJ /etc
/passwd
325 V1
=`mktemp fooattrXXXXXXX`
326 V2
=`mktemp fooattrXXXXXXX`
328 expect_false
$RADOS_TOOL -p $POOL setxattr
$OBJ 2>/dev
/null
329 expect_false
$RADOS_TOOL -p $POOL setxattr
$OBJ foo fooval extraarg
2>/dev
/null
330 $RADOS_TOOL -p $POOL setxattr
$OBJ foo fooval
331 $RADOS_TOOL -p $POOL getxattr
$OBJ foo
> $V2
333 cat $V1 |
$RADOS_TOOL -p $POOL setxattr
$OBJ bar
334 $RADOS_TOOL -p $POOL getxattr
$OBJ bar
> $V2
336 $RADOS_TOOL -p $POOL listxattr
$OBJ > $V1
339 [ `cat $V1 | wc -l` -eq 2 ]
345 $CEPH_TOOL osd pool create
$p 1
346 $CEPH_TOOL osd pool set-quota
$p max_objects
1
347 V1
=`mktemp fooattrXXXXXXX`
348 $RADOS_TOOL put
$OBJ $V1 -p $p
349 while ! $CEPH_TOOL osd dump |
grep 'full max_objects'
353 $RADOS_TOOL -p $p rm $OBJ --force-full
354 $RADOS_TOOL rmpool
$p $p --yes-i-really-really-mean-it
359 echo "Testing rados ls command"
361 $CEPH_TOOL osd pool create
$p 1
364 # Include default namespace (0) in the total
365 TOTAL
=$
(expr $OBJS \
* $
(expr $NS + 1))
367 for nsnum
in `seq 0 $NS`
369 for onum
in `seq 1 $OBJS`
371 if [ "$nsnum" = "0" ];
373 "$RADOS_TOOL" -p $p put obj
${onum} /etc
/fstab
2> /dev
/null
375 "$RADOS_TOOL" -p $p -N "NS${nsnum}" put obj
${onum} /etc
/fstab
2> /dev
/null
379 CHECK
=$
("$RADOS_TOOL" -p $p ls 2> /dev
/null |
wc -l)
380 if [ "$OBJS" -ne "$CHECK" ];
382 die
"Created $OBJS objects in default namespace but saw $CHECK"
385 CHECK
=$
("$RADOS_TOOL" -p $p -N $TESTNS ls 2> /dev
/null |
wc -l)
386 if [ "$OBJS" -ne "$CHECK" ];
388 die
"Created $OBJS objects in $TESTNS namespace but saw $CHECK"
390 CHECK
=$
("$RADOS_TOOL" -p $p --all ls 2> /dev
/null |
wc -l)
391 if [ "$TOTAL" -ne "$CHECK" ];
393 die
"Created $TOTAL objects but saw $CHECK"
396 $RADOS_TOOL rmpool
$p $p --yes-i-really-really-mean-it
400 echo "Testing rados cleanup command"
402 $CEPH_TOOL osd pool create
$p 1
405 # Include default namespace (0) in the total
406 TOTAL
=$
(expr $OBJS \
* $
(expr $NS + 1))
408 for nsnum
in `seq 0 $NS`
410 for onum
in `seq 1 $OBJS`
412 if [ "$nsnum" = "0" ];
414 "$RADOS_TOOL" -p $p put obj
${onum} /etc
/fstab
2> /dev
/null
416 "$RADOS_TOOL" -p $p -N "NS${nsnum}" put obj
${onum} /etc
/fstab
2> /dev
/null
421 $RADOS_TOOL -p $p --all ls > $TDIR/before.
ls.out
2> /dev
/null
423 $RADOS_TOOL -p $p bench
3 write --no-cleanup 2> /dev
/null
424 $RADOS_TOOL -p $p -N NS1 bench
3 write --no-cleanup 2> /dev
/null
425 $RADOS_TOOL -p $p -N NS2 bench
3 write --no-cleanup 2> /dev
/null
426 $RADOS_TOOL -p $p -N NS3 bench
3 write --no-cleanup 2> /dev
/null
427 # Leave dangling objects without a benchmark_last_metadata in NS4
428 expect_false timeout
3 $RADOS_TOOL -p $p -N NS4 bench
30 write --no-cleanup 2> /dev
/null
429 $RADOS_TOOL -p $p -N NS5 bench
3 write --no-cleanup 2> /dev
/null
431 $RADOS_TOOL -p $p -N NS3 cleanup
2> /dev
/null
432 #echo "Check NS3 after specific cleanup"
433 CHECK
=$
($RADOS_TOOL -p $p -N NS3
ls |
wc -l)
434 if [ "$OBJS" -ne "$CHECK" ] ;
436 die
"Expected $OBJS objects in NS3 but saw $CHECK"
439 #echo "Try to cleanup all"
440 $RADOS_TOOL -p $p --all cleanup
441 #echo "Check all namespaces"
442 $RADOS_TOOL -p $p --all ls > $TDIR/after.
ls.out
2> /dev
/null
443 CHECK
=$
(cat $TDIR/after.
ls.out |
wc -l)
444 if [ "$TOTAL" -ne "$CHECK" ];
446 die
"Expected $TOTAL objects but saw $CHECK"
448 if ! diff $TDIR/before.
ls.out
$TDIR/after.
ls.out
450 die
"Different objects found after cleanup"
454 run_expect_fail
$RADOS_TOOL -p $p cleanup
--prefix illegal_prefix
455 run_expect_succ
$RADOS_TOOL -p $p cleanup
--prefix benchmark_data_otherhost
458 $RADOS_TOOL rmpool
$p $p --yes-i-really-really-mean-it
461 function test_append
()
466 touch .
/rados_append_null
467 $RADOS_TOOL -p $POOL append
$OBJ .
/rados_append_null
468 $RADOS_TOOL -p $POOL get
$OBJ .
/rados_append_0_out
469 cmp .
/rados_append_null .
/rados_append_0_out
471 # append 4k, total size 4k
472 dd if=/dev
/zero of
=.
/rados_append_4k bs
=4k count
=1
473 $RADOS_TOOL -p $POOL append
$OBJ .
/rados_append_4k
474 $RADOS_TOOL -p $POOL get
$OBJ .
/rados_append_4k_out
475 cmp .
/rados_append_4k .
/rados_append_4k_out
477 # append 4k, total size 8k
478 $RADOS_TOOL -p $POOL append
$OBJ .
/rados_append_4k
479 $RADOS_TOOL -p $POOL get
$OBJ .
/rados_append_4k_out
480 read_size
=`ls -l ./rados_append_4k_out | awk -F ' ' '{print $5}'`
481 if [ 8192 -ne $read_size ];
483 die
"Append failed expecting 8192 read $read_size"
486 # append 10M, total size 10493952
487 dd if=/dev
/zero of
=.
/rados_append_10m bs
=10M count
=1
488 $RADOS_TOOL -p $POOL append
$OBJ .
/rados_append_10m
489 $RADOS_TOOL -p $POOL get
$OBJ .
/rados_append_10m_out
490 read_size
=`ls -l ./rados_append_10m_out | awk -F ' ' '{print $5}'`
491 if [ 10493952 -ne $read_size ];
493 die
"Append failed expecting 10493952 read $read_size"
500 $RADOS_TOOL -p $POOL_EC append
$OBJ .
/rados_append_null
501 $RADOS_TOOL -p $POOL_EC get
$OBJ .
/rados_append_0_out
502 cmp rados_append_null rados_append_0_out
504 # append 4k, total size 4k
505 $RADOS_TOOL -p $POOL_EC append
$OBJ .
/rados_append_4k
506 $RADOS_TOOL -p $POOL_EC get
$OBJ .
/rados_append_4k_out
507 cmp rados_append_4k rados_append_4k_out
509 # append 4k, total size 8k
510 $RADOS_TOOL -p $POOL_EC append
$OBJ .
/rados_append_4k
511 $RADOS_TOOL -p $POOL_EC get
$OBJ .
/rados_append_4k_out
512 read_size
=`ls -l ./rados_append_4k_out | awk -F ' ' '{print $5}'`
513 if [ 8192 -ne $read_size ];
515 die
"Append failed expecting 8192 read $read_size"
518 # append 10M, total size 10493952
519 $RADOS_TOOL -p $POOL_EC append
$OBJ .
/rados_append_10m
520 $RADOS_TOOL -p $POOL_EC get
$OBJ .
/rados_append_10m_out
521 read_size
=`ls -l ./rados_append_10m_out | awk -F ' ' '{print $5}'`
522 if [ 10493952 -ne $read_size ];
524 die
"Append failed expecting 10493952 read $read_size"
528 rm -rf .
/rados_append_null .
/rados_append_0_out
529 rm -rf .
/rados_append_4k .
/rados_append_4k_out .
/rados_append_10m .
/rados_append_10m_out
537 # create file in local fs
538 dd if=/dev
/urandom of
=rados_object_10k bs
=1K count
=10
541 $RADOS_TOOL -p $POOL put
$OBJ .
/rados_object_10k
542 $RADOS_TOOL -p $POOL get
$OBJ .
/rados_object_10k_out
543 cmp .
/rados_object_10k .
/rados_object_10k_out
546 # test put command with offset 0
547 $RADOS_TOOL -p $POOL put
$OBJ .
/rados_object_10k
--offset 0
548 $RADOS_TOOL -p $POOL get
$OBJ .
/rados_object_offset_0_out
549 cmp .
/rados_object_10k .
/rados_object_offset_0_out
552 # test put command with offset 1000
553 $RADOS_TOOL -p $POOL put
$OBJ .
/rados_object_10k
--offset 1000
554 $RADOS_TOOL -p $POOL get
$OBJ .
/rados_object_offset_1000_out
555 cmp .
/rados_object_10k .
/rados_object_offset_1000_out
0 1000
558 rm -rf .
/rados_object_10k .
/rados_object_10k_out .
/rados_object_offset_0_out .
/rados_object_offset_1000_out
569 # clean up environment, delete pool
570 $CEPH_TOOL osd pool delete
$POOL $POOL --yes-i-really-really-mean-it
571 $CEPH_TOOL osd pool delete
$POOL_EC $POOL_EC --yes-i-really-really-mean-it
572 $CEPH_TOOL osd pool delete
$POOL_CP_TARGET $POOL_CP_TARGET --yes-i-really-really-mean-it