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