]> git.proxmox.com Git - ceph.git/blame - ceph/src/spdk/test/ocf/management/persistent-metadata.sh
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / spdk / test / ocf / management / persistent-metadata.sh
CommitLineData
9f95a23c
TL
1#!/usr/bin/env bash
2
f67539c2 3curdir=$(dirname $(readlink -f "${BASH_SOURCE[0]}"))
9f95a23c 4rootdir=$(readlink -f $curdir/../../..)
f67539c2
TL
5source $rootdir/test/ocf/common.sh
6
7source $rootdir/scripts/common.sh
9f95a23c
TL
8source $rootdir/test/common/autotest_common.sh
9
10rpc_py=$rootdir/scripts/rpc.py
11
f67539c2
TL
12$rootdir/scripts/setup.sh
13
14mapfile -t config < <("$rootdir/scripts/gen_nvme.sh" --json)
15# Drop anything from last closing ] so we can inject our own config pieces ...
16config=("${config[@]::${#config[@]}-2}")
17# ... and now convert entire array to a single string item
18config=("${config[*]}")
19
20config+=(
21 "$(
22 cat <<- JSON
23 {
24 "method": "bdev_split_create",
25 "params": {
26 "base_bdev": "Nvme0n1",
27 "split_count": 7,
28 "split_size_mb": 128
29 }
30 }
31 JSON
32 )"
33)
34
35# First ']}' closes our config and bdev subsystem blocks
36jq . <<- CONFIG > "$curdir/config"
37 {"subsystems":[
38 $(
39 IFS=","
40 printf '%s\n' "${config[*]}"
41 )
42 ]}]}
43CONFIG
44
45# Clear nvme device which we will use in test
46clear_nvme
47
48"$SPDK_BIN_DIR/iscsi_tgt" --json "$curdir/config" &
9f95a23c
TL
49spdk_pid=$!
50
51waitforlisten $spdk_pid
52
53# Create ocf on persistent storage
54
f67539c2
TL
55$rpc_py bdev_ocf_create ocfWT wt Nvme0n1p0 Nvme0n1p1
56$rpc_py bdev_ocf_create ocfPT pt Nvme0n1p2 Nvme0n1p3
57$rpc_py bdev_ocf_create ocfWB0 wb Nvme0n1p4 Nvme0n1p5
58$rpc_py bdev_ocf_create ocfWB1 wb Nvme0n1p4 Nvme0n1p6
9f95a23c
TL
59
60# Sorting bdevs because we dont guarantee that they are going to be
61# in the same order after shutdown
f67539c2 62($rpc_py bdev_ocf_get_bdevs | jq '(.. | arrays) |= sort') > ./ocf_bdevs
9f95a23c
TL
63
64trap - SIGINT SIGTERM EXIT
65
66killprocess $spdk_pid
67
68# Check for ocf persistency after restart
f67539c2 69"$SPDK_BIN_DIR/iscsi_tgt" --json "$curdir/config" &
9f95a23c
TL
70spdk_pid=$!
71
f67539c2 72trap 'killprocess $spdk_pid; rm -f $curdir/config ocf_bdevs ocf_bdevs_verify; exit 1' SIGINT SIGTERM EXIT
9f95a23c
TL
73
74waitforlisten $spdk_pid
f67539c2 75sleep 5
9f95a23c
TL
76
77# OCF should be loaded now as well
78
f67539c2 79($rpc_py bdev_ocf_get_bdevs | jq '(.. | arrays) |= sort') > ./ocf_bdevs_verify
9f95a23c
TL
80
81diff ocf_bdevs ocf_bdevs_verify
82
83trap - SIGINT SIGTERM EXIT
84
85killprocess $spdk_pid
f67539c2
TL
86rm -f $curdir/config ocf_bdevs ocf_bdevs_verify
87
88clear_nvme $bdf