diff --git a/test/common/autotest_common.sh b/test/common/autotest_common.sh index 28af51fd2..4846ad7e7 100755 --- a/test/common/autotest_common.sh +++ b/test/common/autotest_common.sh @@ -323,6 +323,45 @@ function rpc_cmd() { [[ $rc == 0 ]] } +function rpc_cmd_simple_data_json() { + + local elems="$1[@]" elem + local -gA jq_out=() + local jq val + + local lvs=( + "uuid" + "name" + "base_bdev" + "total_data_clusters" + "free_clusters" + "block_size" + "cluster_size" + ) + + local bdev=( + "name" + "aliases[0]" + "block_size" + "num_blocks" + "uuid" + "product_name" + ) + + [[ -v $elems ]] || return 1 + + for elem in "${!elems}"; do + jq="${jq:+$jq,\"\\n\",}\"$elem\",\" \",.[0].$elem" + done + jq+=',"\n"' + + shift + while read -r elem val; do + jq_out["$elem"]=$val + done < <(rpc_cmd "$@" | jq -jr "$jq") + (( ${#jq_out[@]} > 0 )) || return 1 +} + function timing() { direction="$1" testname="$2" diff --git a/test/lvol/common.sh b/test/lvol/common.sh index 1bbdb2485..f3cbbc945 100644 --- a/test/lvol/common.sh +++ b/test/lvol/common.sh @@ -8,6 +8,14 @@ LVS_DEFAULT_CLUSTER_SIZE=$(( LVS_DEFAULT_CLUSTER_SIZE_MB * 1024 * 1024 )) LVS_DEFAULT_CAPACITY_MB=$(( MALLOC_SIZE_MB - LVS_DEFAULT_CLUSTER_SIZE_MB )) LVS_DEFAULT_CAPACITY=$(( LVS_DEFAULT_CAPACITY_MB * 1024 * 1024 )) +function get_bdev_jq() { + rpc_cmd_simple_data_json bdev "$@" +} + +function get_lvs_jq() { + rpc_cmd_simple_data_json lvs "$@" +} + function check_leftover_devices() { leftover_bdevs=$(rpc_cmd bdev_get_bdevs) [ "$(jq length <<< "$leftover_bdevs")" == "0" ]