AVAILABILITY_STATUS=$(ceph osd pool availability-status | grep -w "foo")
SCORE=$(echo "$AVAILABILITY_STATUS" | awk '{print $7}')
IS_AVAILABLE=$(echo "$AVAILABILITY_STATUS" | awk '{print $8}')
+ UPTIME_DURATION=$(echo "$AVAILABILITY_STATUS" | awk '{print $2}')
+ UPTIME_SECONDS=$(( ${UPTIME_DURATION%[sm]} * (${UPTIME_DURATION: -1} == "m" ? 60 : 1) ))
if [ $IS_AVAILABLE -ne 1 ]; then
echo "Failed: Pool is not available in availabilty status"
+ return 1
+ fi
+
+ # unset config option enable_availability_tracking to disable feature
+ ceph config set mon enable_availability_tracking false
+ AVAILABILITY_STATUS=$(ceph osd pool availability-status | grep -w "foo")
+ if [ "$AVAILABILITY_STATUS" != "" ]; then
+ echo "Failed: feature not disabled successfully."
+ return 1
+ fi
+ sleep 120
+
+ # enable feature and check is score updated when it was off
+ ceph config set mon enable_availability_tracking true
+ AVAILABILITY_STATUS=$(ceph osd pool availability-status | grep -w "foo")
+ UPTIME_DURATION=$(echo "$AVAILABILITY_STATUS" | awk '{print $2}')
+ NEW_UPTIME_SECONDS=$(( ${UPTIME_DURATION%[sm]} * (${UPTIME_DURATION: -1} == "m" ? 60 : 1) ))
+ if [ "$NEW_UPTIME_SECONDS" -gt $((UPTIME_SECONDS + 120)) ]; then
+ echo "Failed: score is updated even when feature is disabled"
+ return 1
fi
# write some objects