TIMEOUT=60
PG_NUM=4
+if type xmlstarlet > /dev/null 2>&1; then
+ XMLSTARLET=xmlstarlet
+elif type xml > /dev/null 2>&1; then
+ XMLSTARLET=xml
+else
+ echo "Missing xmlstarlet binary!"
+ exit 1
+fi
+
#! @file ceph-helpers.sh
# @brief Toolbox to manage Ceph cluster dedicated to testing
#
local objectname=$2
ceph --format xml osd map $poolname $objectname 2>/dev/null | \
- xmlstarlet sel -t -m "//acting/osd" -v . -o ' '
+ $XMLSTARLET sel -t -m "//acting/osd" -v . -o ' '
}
function test_get_osds() {
local objectname=$2
ceph --format xml osd map $poolname $objectname 2>/dev/null | \
- xmlstarlet sel -t -m "//pgid" -v . -n
+ $XMLSTARLET sel -t -m "//pgid" -v . -n
}
function test_get_pg() {
CEPH_ARGS='' \
ceph --format xml daemon $dir/ceph-mon.$id.asok \
config get $config 2> /dev/null | \
- xmlstarlet sel -t -m "//$config" -v . -n
+ $XMLSTARLET sel -t -m "//$config" -v . -n
}
function test_get_config() {
local objectname=$2
ceph --format xml osd map $poolname $objectname 2>/dev/null | \
- xmlstarlet sel -t -m "//acting_primary" -v . -n
+ $XMLSTARLET sel -t -m "//acting_primary" -v . -n
}
function test_get_primary() {
local primary=$(get_primary $poolname $objectname)
ceph --format xml osd map $poolname $objectname 2>/dev/null | \
- xmlstarlet sel -t -m "//acting/osd[not(.='$primary')]" -v . -n | \
+ $XMLSTARLET sel -t -m "//acting/osd[not(.='$primary')]" -v . -n | \
head -1
}
#
function get_is_making_recovery_progress() {
local progress=$(ceph --format xml status 2>/dev/null | \
- xmlstarlet sel \
+ $XMLSTARLET sel \
-t -m "//pgmap/recovering_keys_per_sec" -v . -o ' ' \
-t -m "//pgmap/recovering_bytes_per_sec" -v . -o ' ' \
-t -m "//pgmap/recovering_objects_per_sec" -v .)
# add extra new lines that must be ignored with
# grep -v '^$'
ceph --format xml pg dump pgs 2>/dev/null | \
- xmlstarlet sel -t -m "//pg_stat/state[$expression]" -v . -n | \
+ $XMLSTARLET sel -t -m "//pg_stat/state[$expression]" -v . -n | \
grep -v '^$' | wc -l
}
#
function get_num_pgs() {
ceph --format xml status 2>/dev/null | \
- xmlstarlet sel -t -m "//pgmap/num_pgs" -v .
+ $XMLSTARLET sel -t -m "//pgmap/num_pgs" -v .
}
function test_get_num_pgs() {
function get_last_scrub_stamp() {
local pgid=$1
ceph --format xml pg dump pgs 2>/dev/null | \
- xmlstarlet sel -t -m "//pg_stat[pgid='$pgid']/last_scrub_stamp" -v .
+ $XMLSTARLET sel -t -m "//pg_stat[pgid='$pgid']/last_scrub_stamp" -v .
}
function test_get_last_scrub_stamp() {