xref: /spdk/test/ocf/management/create-destruct.sh (revision eb53c23236cccb6b698b7ca70ee783da1c574b5f)
10487d3a4SVitaliy Mysak#!/usr/bin/env bash
2*eb53c232Spaul luse#  SPDX-License-Identifier: BSD-3-Clause
3*eb53c232Spaul luse#  Copyright (C) 2019 Intel Corporation
4*eb53c232Spaul luse#  All rights reserved.
5*eb53c232Spaul luse#
625f601cfSMaciej Wawrykcurdir=$(dirname $(readlink -f "${BASH_SOURCE[0]}"))
70487d3a4SVitaliy Mysakrootdir=$(readlink -f $curdir/../../..)
80487d3a4SVitaliy Mysaksource $rootdir/test/common/autotest_common.sh
90487d3a4SVitaliy Mysak
100487d3a4SVitaliy Mysakrpc_py=$rootdir/scripts/rpc.py
110487d3a4SVitaliy Mysak
12844c8ec3SMichal Bergerfunction bdev_check_claimed() {
1347bc5870SJim Harris	if [ "$($rpc_py bdev_get_bdevs -b "$@" | jq '.[0].claimed')" = "true" ]; then
14844c8ec3SMichal Berger		return 0
150487d3a4SVitaliy Mysak	else
16844c8ec3SMichal Berger		return 1
170487d3a4SVitaliy Mysak	fi
180487d3a4SVitaliy Mysak}
190487d3a4SVitaliy Mysak
206b9b448eSBen Walker$SPDK_BIN_DIR/iscsi_tgt &
210487d3a4SVitaliy Mysakspdk_pid=$!
220487d3a4SVitaliy Mysak
2390c84ec5SKarol Lateckitrap 'killprocess $spdk_pid; exit 1' SIGINT SIGTERM EXIT
240487d3a4SVitaliy Mysak
250487d3a4SVitaliy Mysakwaitforlisten $spdk_pid
260487d3a4SVitaliy Mysak
277964f1dfSPawel Kaminski$rpc_py bdev_malloc_create 101 512 -b Malloc0
287964f1dfSPawel Kaminski$rpc_py bdev_malloc_create 101 512 -b Malloc1
290487d3a4SVitaliy Mysak
30557f8ff9SPawel Kaminski$rpc_py bdev_ocf_create PartCache wt Malloc0 NonExisting
310487d3a4SVitaliy Mysak
3295482c54SPawel Kaminski$rpc_py bdev_ocf_get_bdevs PartCache | jq -e \
33bef0c6edSVitaliy Mysak	'.[0] | .started == false and .cache.attached and .core.attached == false'
34bef0c6edSVitaliy Mysak
3595482c54SPawel Kaminski$rpc_py bdev_ocf_get_bdevs NonExisting | jq -e \
36bef0c6edSVitaliy Mysak	'.[0] | .name == "PartCache"'
37199080cfSVitaliy Mysak
380487d3a4SVitaliy Mysakif ! bdev_check_claimed Malloc0; then
39844c8ec3SMichal Berger	echo >&2 "Base device expected to be claimed now"
400487d3a4SVitaliy Mysak	exit 1
410487d3a4SVitaliy Mysakfi
420487d3a4SVitaliy Mysak
43557f8ff9SPawel Kaminski$rpc_py bdev_ocf_delete PartCache
440487d3a4SVitaliy Mysakif bdev_check_claimed Malloc0; then
45844c8ec3SMichal Berger	echo >&2 "Base device is not expected to be claimed now"
460487d3a4SVitaliy Mysak	exit 1
470487d3a4SVitaliy Mysakfi
480487d3a4SVitaliy Mysak
498fcb8b96SRafal Stefanowski$rpc_py bdev_ocf_create FullCache wt Malloc0 Malloc1
500487d3a4SVitaliy Mysak
5195482c54SPawel Kaminski$rpc_py bdev_ocf_get_bdevs FullCache | jq -e \
52bef0c6edSVitaliy Mysak	'.[0] | .started and .cache.attached and .core.attached'
53199080cfSVitaliy Mysak
540487d3a4SVitaliy Mysakif ! (bdev_check_claimed Malloc0 && bdev_check_claimed Malloc1); then
55844c8ec3SMichal Berger	echo >&2 "Base devices expected to be claimed now"
560487d3a4SVitaliy Mysak	exit 1
570487d3a4SVitaliy Mysakfi
580487d3a4SVitaliy Mysak
59557f8ff9SPawel Kaminski$rpc_py bdev_ocf_delete FullCache
600487d3a4SVitaliy Mysakif bdev_check_claimed Malloc0 && bdev_check_claimed Malloc1; then
61844c8ec3SMichal Berger	echo >&2 "Base devices are not expected to be claimed now"
620487d3a4SVitaliy Mysak	exit 1
630487d3a4SVitaliy Mysakfi
640487d3a4SVitaliy Mysak
658fcb8b96SRafal Stefanowski$rpc_py bdev_ocf_create HotCache wt Malloc0 Malloc1
669f792ca0SVitaliy Mysak
679f792ca0SVitaliy Mysakif ! (bdev_check_claimed Malloc0 && bdev_check_claimed Malloc1); then
68844c8ec3SMichal Berger	echo >&2 "Base devices expected to be claimed now"
699f792ca0SVitaliy Mysak	exit 1
709f792ca0SVitaliy Mysakfi
719f792ca0SVitaliy Mysak
7206a1b419SPawel Kaminski$rpc_py bdev_malloc_delete Malloc0
739f792ca0SVitaliy Mysak
749f792ca0SVitaliy Mysakif bdev_check_claimed Malloc1; then
75844c8ec3SMichal Berger	echo >&2 "Base device is not expected to be claimed now"
769f792ca0SVitaliy Mysak	exit 1
779f792ca0SVitaliy Mysakfi
789f792ca0SVitaliy Mysak
7947bc5870SJim Harrisstatus=$($rpc_py bdev_get_bdevs)
809f792ca0SVitaliy Mysakgone=$(echo $status | jq 'map(select(.name == "HotCache")) == []')
819f792ca0SVitaliy Mysakif [[ $gone == false ]]; then
82844c8ec3SMichal Berger	echo >&2 "OCF bdev is expected to unregister"
839f792ca0SVitaliy Mysak	exit 1
849f792ca0SVitaliy Mysakfi
859f792ca0SVitaliy Mysak
860487d3a4SVitaliy Mysak# check if shutdown of running CAS bdev is ok
87557f8ff9SPawel Kaminski$rpc_py bdev_ocf_create PartCache wt NonExisting Malloc1
880487d3a4SVitaliy Mysak
890487d3a4SVitaliy Mysaktrap - SIGINT SIGTERM EXIT
900487d3a4SVitaliy Mysak
910487d3a4SVitaliy Mysakkillprocess $spdk_pid
92