qa/workunits/fs/damage: update first-damage test for python

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
This commit is contained in:
Patrick Donnelly 2022-10-02 20:45:48 -04:00
parent 17045abb66
commit 0c8e964be2
No known key found for this signature in database
GPG Key ID: BE69BB7D36E459B4

View File

@ -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
sleep 5 # for mds to join
mount
pushd "$MOUNT"
check
cleanup
popd
sudo umount -f "$MOUNT"
}
main "$@"