xref: /spdk/scripts/gen_ftl.sh (revision b30d57cdad6d2bc75cc1e4e2ebbcebcb0d98dcfa)
1#!/usr/bin/env bash
2
3set -e
4
5rootdir=$(readlink -f $(dirname $0))/..
6
7function usage() {
8	echo "Usage: [-j] $0 -n BDEV_NAME -d BASE_BDEV [-u UUID] [-c CACHE]"
9	echo "UUID is required when restoring device state"
10	echo
11	echo "BDEV_NAME - name of the bdev"
12	echo "BASE_BDEV - name of the bdev to be used as underlying device"
13	echo "UUID - bdev's uuid (used when in restore mode)"
14	echo "CACHE - name of the bdev to be used as write buffer cache"
15}
16
17function create_json_config() {
18	echo "{"
19	echo '"subsystem": "bdev",'
20	echo '"config": ['
21	echo '{'
22	echo '"method": "bdev_ftl_create",'
23	echo '"params": {'
24	echo "\"name\": \"$1\","
25	echo "\"base_bdev\": \"$2\","
26	if [ -n "$4" ]; then
27		echo "\"uuid\": \"$3\","
28		echo "\"cache\": \"$4\""
29	else
30		echo "\"uuid\": \"$3\""
31	fi
32	echo '}'
33	echo '}'
34	echo ']'
35	echo '}'
36}
37
38uuid=00000000-0000-0000-0000-000000000000
39
40while getopts ":c:d:hn:u:" arg; do
41	case "$arg" in
42		n) name=$OPTARG ;;
43		d) base_bdev=$OPTARG ;;
44		u) uuid=$OPTARG ;;
45		c) cache=$OPTARG ;;
46		h)
47			usage
48			exit 0
49			;;
50		*)
51			usage
52			exit 1
53			;;
54	esac
55done
56
57if [[ -z "$name" || -z "$base_bdev" ]]; then
58	usage
59	exit 1
60fi
61
62create_json_config $name $base_bdev $uuid $cache
63