Spdk/test/ocf/management/create-destruct.sh
Vitaliy Mysak 199080cfa2 OCF: rpc: add get_ocf_bdevs method
Add new RPC method for OCF bdev: get_ocf_bdevs
It is useful in respect to not registered OCF bdevs
  which do not appear in standard get_bdevs call

Change-Id: I8a5fc86a880b04c47d5f139aa5fa4d07ca39c853
Signed-off-by: Vitaliy Mysak <vitaliy.mysak@intel.com>
Reviewed-on: https://review.gerrithub.io/c/441655
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2019-01-28 18:53:31 +00:00

87 lines
2.1 KiB
Bash
Executable File

#!/usr/bin/env bash
curdir=$(dirname $(readlink -f "$BASH_SOURCE"))
rootdir=$(readlink -f $curdir/../../..)
source $rootdir/test/common/autotest_common.sh
rpc_py=$rootdir/scripts/rpc.py
function bdev_check_claimed()
{
if $($rpc_py get_bdevs -b "$@" | jq '.[0].claimed'); then
return 0;
else
return 1;
fi
}
$rootdir/app/iscsi_tgt/iscsi_tgt &
spdk_pid=$!
trap "killprocess $spdk_pid; exit 1" SIGINT SIGTERM EXIT
waitforlisten $spdk_pid
$rpc_py construct_malloc_bdev 101 512 -b Malloc0
$rpc_py construct_malloc_bdev 101 512 -b Malloc1
$rpc_py construct_ocf_bdev PartCache wt Malloc0 NonExisting
$rpc_py get_ocf_bdevs | jq -e \
'map(select(.name == "PartCache")) | .[0] | .started == false and .cache.attached and .core.attached == false'
if ! bdev_check_claimed Malloc0; then
>&2 echo "Base device expected to be claimed now"
exit 1
fi
$rpc_py delete_ocf_bdev PartCache
if bdev_check_claimed Malloc0; then
>&2 echo "Base device is not expected to be claimed now"
exit 1
fi
$rpc_py construct_ocf_bdev FullCache wt Malloc0 Malloc1
$rpc_py get_ocf_bdevs | jq -e \
'map(select(.name == "FullCache")) | .[0] | .started and .cache.attached and .core.attached'
if ! (bdev_check_claimed Malloc0 && bdev_check_claimed Malloc1); then
>&2 echo "Base devices expected to be claimed now"
exit 1
fi
$rpc_py delete_ocf_bdev FullCache
if bdev_check_claimed Malloc0 && bdev_check_claimed Malloc1; then
>&2 echo "Base devices are not expected to be claimed now"
exit 1
fi
$rpc_py construct_ocf_bdev HotCache wt Malloc0 Malloc1
if ! (bdev_check_claimed Malloc0 && bdev_check_claimed Malloc1); then
>&2 echo "Base devices expected to be claimed now"
exit 1
fi
$rpc_py delete_malloc_bdev Malloc0
if bdev_check_claimed Malloc1; then
>&2 echo "Base device is not expected to be claimed now"
exit 1
fi
status=$($rpc_py get_bdevs)
gone=$(echo $status | jq 'map(select(.name == "HotCache")) == []')
if [[ $gone == false ]]; then
>&2 echo "OCF bdev is expected to unregister"
exit 1
fi
# check if shutdown of running CAS bdev is ok
$rpc_py construct_ocf_bdev PartCache wt NonExisting Malloc1
trap - SIGINT SIGTERM EXIT
killprocess $spdk_pid