]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
qa/workunites/ceph-helpers.sh: move flush_pg_stats() here
authorKefu Chai <kchai@redhat.com>
Fri, 19 May 2017 10:30:49 +0000 (18:30 +0800)
committerSage Weil <sage@redhat.com>
Fri, 2 Jun 2017 17:02:47 +0000 (13:02 -0400)
Signed-off-by: Kefu Chai <kchai@redhat.com>
qa/workunits/ceph-helpers.sh

index b4ba8b93951ad8e2f7a5d580ee38f7f66f66f829..11d48290014a88030d6ce1136ae84a7543922c86 100755 (executable)
@@ -1649,6 +1649,41 @@ function test_wait_background() {
     if [ ! -z "$pids" ]; then return 1; fi
 }
 
+function flush_pg_stats()
+{
+    ids=`ceph osd ls`
+    seqs=''
+    for osd in $ids; do
+           seq=`ceph tell osd.$osd flush_pg_stats`
+           seqs="$seqs $osd-$seq"
+    done
+    for s in $seqs; do
+           osd=`echo $s | cut -d - -f 1`
+           seq=`echo $s | cut -d - -f 2`
+           echo "waiting osd.$osd seq $seq"
+           while test $(ceph osd last-stat-seq $osd) -lt $seq; do
+            sleep 1
+        done
+    done
+}
+
+function test_flush_pg_stats()
+{
+    local dir=$1
+
+    setup $dir || return 1
+    run_mon $dir a --osd_pool_default_size=1 || return 1
+    run_mgr $dir x || return 1
+    run_osd $dir 0 || return 1
+    rados -p rbd put obj /etc/group
+    flush_pg_stats
+    local jq_filter='.pools | .[] | select(.name == "rbd") | .stats'
+    raw_bytes_used=`ceph df detail --format=json | jq "$jq_filter.raw_bytes_used"`
+    bytes_used=`ceph df detail --format=json | jq "$jq_filter.bytes_used"`
+    test $raw_bytes_used > 0 || return 1
+    test $raw_bytes_used == $bytes_used || return 1
+}
+
 #######################################################################
 
 ##