From: John Spray Date: Wed, 21 Jan 2015 14:36:58 +0000 (+0000) Subject: qa: move fs quota to its own dir X-Git-Tag: v0.93~231^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F3436%2Fhead;p=ceph.git qa: move fs quota to its own dir This is because running fs/misc on a kclient should not include quota (quota not supported on kernel client). Fixes: #10579 Signed-off-by: John Spray --- diff --git a/qa/workunits/fs/misc/quota.sh b/qa/workunits/fs/misc/quota.sh deleted file mode 100755 index ff27a613add6..000000000000 --- a/qa/workunits/fs/misc/quota.sh +++ /dev/null @@ -1,129 +0,0 @@ -#!/bin/bash - -set -e -set -x - -function expect_false() -{ - set -x - if "$@"; then return 1; else return 0; fi -} - -function write_file() -{ - set +x - for ((i=1;i<=$2;i++)) - do - dd if=/dev/zero of=$1 bs=1M count=1 conv=notrunc oflag=append 2>/dev/null >/dev/null - if [ $? != 0 ]; then - echo Try to write $(($i * 1048576)) - set -x - return 1 - fi - sleep 0.05 - done - set -x - return 0 -} - -mkdir quota-test -cd quota-test - -# bytes -setfattr . -n ceph.quota.max_bytes -v 100000000 # 100m -expect_false write_file big 1000 # 1g -expect_false write_file second 10 -setfattr . -n ceph.quota.max_bytes -v 0 -dd if=/dev/zero of=third bs=1M count=10 -dd if=/dev/zero of=big2 bs=1M count=100 - - -rm -rf * - -# files -setfattr . -n ceph.quota.max_files -v 5 -mkdir ok -touch ok/1 -touch ok/2 -touch 3 -expect_false touch shouldbefail # 5 files will include the "." -expect_false touch ok/shouldbefail # 5 files will include the "." -setfattr . -n ceph.quota.max_files -v 0 -touch shouldbecreated -touch shouldbecreated2 - - -rm -rf * - -# mix -mkdir bytes bytes/files - -setfattr bytes -n ceph.quota.max_bytes -v 10000000 #10m -setfattr bytes/files -n ceph.quota.max_files -v 5 -dd if=/dev/zero of=bytes/files/1 bs=1M count=4 -dd if=/dev/zero of=bytes/files/2 bs=1M count=4 -expect_false write_file bytes/files/3 1000 -expect_false write_file bytes/files/4 1000 -expect_false write_file bytes/files/5 1000 -stat --printf="%n %s\n" bytes/files/1 #4M -stat --printf="%n %s\n" bytes/files/2 #4M -stat --printf="%n %s\n" bytes/files/3 #bigger than 2M -stat --printf="%n %s\n" bytes/files/4 #should be zero -expect_false stat bytes/files/5 #shouldn't be exist - - - - -rm -rf * - -#mv -mkdir files limit -truncate files/file -s 10G -setfattr limit -n ceph.quota.max_bytes -v 1000000 #1m -expect_false mv files limit/ - - - -rm -rf * - -#limit by ancestor - -mkdir -p ancestor/p1/p2/parent/p3 -setfattr ancestor -n ceph.quota.max_bytes -v 1000000 -setfattr ancestor/p1/p2/parent -n ceph.quota.max_bytes -v 1000000000 #1g -expect_false write_file ancestor/p1/p2/parent/p3/file1 900 #900m -stat --printf="%n %s\n" ancestor/p1/p2/parent/p3/file1 - - -#get/set attribute - -setfattr -n ceph.quota.max_bytes -v 0 . -setfattr -n ceph.quota.max_bytes -v 1 . -setfattr -n ceph.quota.max_bytes -v 9223372036854775807 . -expect_false setfattr -n ceph.quota.max_bytes -v 9223372036854775808 . -expect_false setfattr -n ceph.quota.max_bytes -v -1 . -expect_false setfattr -n ceph.quota.max_bytes -v -9223372036854775808 . -expect_false setfattr -n ceph.quota.max_bytes -v -9223372036854775809 . - -setfattr -n ceph.quota.max_files -v 0 . -setfattr -n ceph.quota.max_files -v 1 . -setfattr -n ceph.quota.max_files -v 9223372036854775807 . -expect_false setfattr -n ceph.quota.max_files -v 9223372036854775808 . -expect_false setfattr -n ceph.quota.max_files -v -1 . -expect_false setfattr -n ceph.quota.max_files -v -9223372036854775808 . -expect_false setfattr -n ceph.quota.max_files -v -9223372036854775809 . - -setfattr -n ceph.quota -v "max_bytes=0 max_files=0" . -setfattr -n ceph.quota -v "max_bytes=1 max_files=0" . -setfattr -n ceph.quota -v "max_bytes=0 max_files=1" . -setfattr -n ceph.quota -v "max_bytes=1 max_files=1" . -expect_false setfattr -n ceph.quota -v "max_bytes=-1 max_files=0" . -expect_false setfattr -n ceph.quota -v "max_bytes=0 max_files=-1" . -expect_false setfattr -n ceph.quota -v "max_bytes=-1 max_files=-1" . - -#addme - -cd .. -rm -rf quota-test - -echo OK diff --git a/qa/workunits/fs/quota/quota.sh b/qa/workunits/fs/quota/quota.sh new file mode 100755 index 000000000000..ff27a613add6 --- /dev/null +++ b/qa/workunits/fs/quota/quota.sh @@ -0,0 +1,129 @@ +#!/bin/bash + +set -e +set -x + +function expect_false() +{ + set -x + if "$@"; then return 1; else return 0; fi +} + +function write_file() +{ + set +x + for ((i=1;i<=$2;i++)) + do + dd if=/dev/zero of=$1 bs=1M count=1 conv=notrunc oflag=append 2>/dev/null >/dev/null + if [ $? != 0 ]; then + echo Try to write $(($i * 1048576)) + set -x + return 1 + fi + sleep 0.05 + done + set -x + return 0 +} + +mkdir quota-test +cd quota-test + +# bytes +setfattr . -n ceph.quota.max_bytes -v 100000000 # 100m +expect_false write_file big 1000 # 1g +expect_false write_file second 10 +setfattr . -n ceph.quota.max_bytes -v 0 +dd if=/dev/zero of=third bs=1M count=10 +dd if=/dev/zero of=big2 bs=1M count=100 + + +rm -rf * + +# files +setfattr . -n ceph.quota.max_files -v 5 +mkdir ok +touch ok/1 +touch ok/2 +touch 3 +expect_false touch shouldbefail # 5 files will include the "." +expect_false touch ok/shouldbefail # 5 files will include the "." +setfattr . -n ceph.quota.max_files -v 0 +touch shouldbecreated +touch shouldbecreated2 + + +rm -rf * + +# mix +mkdir bytes bytes/files + +setfattr bytes -n ceph.quota.max_bytes -v 10000000 #10m +setfattr bytes/files -n ceph.quota.max_files -v 5 +dd if=/dev/zero of=bytes/files/1 bs=1M count=4 +dd if=/dev/zero of=bytes/files/2 bs=1M count=4 +expect_false write_file bytes/files/3 1000 +expect_false write_file bytes/files/4 1000 +expect_false write_file bytes/files/5 1000 +stat --printf="%n %s\n" bytes/files/1 #4M +stat --printf="%n %s\n" bytes/files/2 #4M +stat --printf="%n %s\n" bytes/files/3 #bigger than 2M +stat --printf="%n %s\n" bytes/files/4 #should be zero +expect_false stat bytes/files/5 #shouldn't be exist + + + + +rm -rf * + +#mv +mkdir files limit +truncate files/file -s 10G +setfattr limit -n ceph.quota.max_bytes -v 1000000 #1m +expect_false mv files limit/ + + + +rm -rf * + +#limit by ancestor + +mkdir -p ancestor/p1/p2/parent/p3 +setfattr ancestor -n ceph.quota.max_bytes -v 1000000 +setfattr ancestor/p1/p2/parent -n ceph.quota.max_bytes -v 1000000000 #1g +expect_false write_file ancestor/p1/p2/parent/p3/file1 900 #900m +stat --printf="%n %s\n" ancestor/p1/p2/parent/p3/file1 + + +#get/set attribute + +setfattr -n ceph.quota.max_bytes -v 0 . +setfattr -n ceph.quota.max_bytes -v 1 . +setfattr -n ceph.quota.max_bytes -v 9223372036854775807 . +expect_false setfattr -n ceph.quota.max_bytes -v 9223372036854775808 . +expect_false setfattr -n ceph.quota.max_bytes -v -1 . +expect_false setfattr -n ceph.quota.max_bytes -v -9223372036854775808 . +expect_false setfattr -n ceph.quota.max_bytes -v -9223372036854775809 . + +setfattr -n ceph.quota.max_files -v 0 . +setfattr -n ceph.quota.max_files -v 1 . +setfattr -n ceph.quota.max_files -v 9223372036854775807 . +expect_false setfattr -n ceph.quota.max_files -v 9223372036854775808 . +expect_false setfattr -n ceph.quota.max_files -v -1 . +expect_false setfattr -n ceph.quota.max_files -v -9223372036854775808 . +expect_false setfattr -n ceph.quota.max_files -v -9223372036854775809 . + +setfattr -n ceph.quota -v "max_bytes=0 max_files=0" . +setfattr -n ceph.quota -v "max_bytes=1 max_files=0" . +setfattr -n ceph.quota -v "max_bytes=0 max_files=1" . +setfattr -n ceph.quota -v "max_bytes=1 max_files=1" . +expect_false setfattr -n ceph.quota -v "max_bytes=-1 max_files=0" . +expect_false setfattr -n ceph.quota -v "max_bytes=0 max_files=-1" . +expect_false setfattr -n ceph.quota -v "max_bytes=-1 max_files=-1" . + +#addme + +cd .. +rm -rf quota-test + +echo OK