]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
qa/workunits/fs/damage: update first-damage test for python
authorPatrick Donnelly <pdonnell@redhat.com>
Mon, 3 Oct 2022 00:45:48 +0000 (20:45 -0400)
committerPatrick Donnelly <pdonnell@redhat.com>
Thu, 6 Oct 2022 00:25:50 +0000 (20:25 -0400)
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
qa/workunits/fs/damage/test-first-damage.sh

index 8945e44bafb97ed0fca3e7bde3234b47d7431d1b..ed1fc0603677fa41b23b2c92b57a62f63752d2b7 100755 (executable)
@@ -2,12 +2,13 @@
 
 set -ex
 
-FIRST_DAMAGE="first-damage.sh"
+FIRST_DAMAGE="first-damage.py"
 FS=cephfs
 METADATA_POOL=cephfs_meta
+MOUNT=~/mnt/mnt.0
 
 function usage {
-  printf '%s: [--fs=<fs_name>] [--metadata-pool=<pool>] [--first-damage=</path/to/first-damage.sh>]\n'
+  printf '%s: [--fs=<fs_name>] [--metadata-pool=<pool>] [--first-damage=</path/to/first-damage.py>]\n'
   exit 1
 }
 
@@ -60,15 +61,13 @@ function damage {
 }
 
 function recover {
-  # drop client cache -- approx. umount without unmounting for test
-  echo 3 | sudo tee /proc/sys/vm/drop_caches
   flush
   ceph fs fail "$FS"
   sleep 5
   cephfs-journal-tool --rank="$FS":0 event recover_dentries summary
   cephfs-journal-tool --rank="$FS":0 journal reset
-  $FIRST_DAMAGE "$METADATA_POOL"
-  $FIRST_DAMAGE --remove "$METADATA_POOL"
+  python3 $FIRST_DAMAGE --memo /tmp/memo1 "$METADATA_POOL"
+  python3 $FIRST_DAMAGE --memo /tmp/memo2 --remove "$METADATA_POOL"
   ceph fs set "$FS" joinable true
 }
 
@@ -98,8 +97,13 @@ function cleanup {
   rm -rf dir
 }
 
+function mount {
+  sudo --preserve-env=CEPH_CONF bin/mount.ceph :/ "$MOUNT" -o name=admin,noshare
+  df -h "$MOUNT"
+}
+
 function main {
-  eval set -- $(getopt --name "$0" --options '' --longoptions 'help,fs:,metadata-pool:,first-damage:' -- "$@")
+  eval set -- $(getopt --name "$0" --options '' --longoptions 'help,fs:,metadata-pool:,first-damage:,mount:' -- "$@")
 
   while [ "$#" -gt 0 ]; do
       echo "$*"
@@ -116,6 +120,10 @@ function main {
               METADATA_POOL="$2"
               shift 2
               ;;
+          --mount)
+              MOUNT="$2"
+              shift 2
+              ;;
           --first-damage)
               FIRST_DAMAGE="$2"
               shift 2
@@ -130,18 +138,31 @@ function main {
       esac
   done
 
+  mount
+
+  pushd "$MOUNT"
   create
+  popd
+
+  sudo umount -f "$MOUNT"
 
   # flush dentries/inodes to omap
-  (cd / && flush)
+  flush
 
-  (cd / && damage)
+  damage
 
-  (cd / && recover)
+  recover
 
-  check
+  sleep 5 # for mds to join
+
+  mount
 
+  pushd "$MOUNT"
+  check
   cleanup
+  popd
+
+  sudo umount -f "$MOUNT"
 }
 
 main "$@"