1gen_malloc_ocf_json () { 2 local size=300 # MB 3 local block_size=512 4 local config 5 6 local malloc malloc_devs=3 7 for (( malloc = 0; malloc < malloc_devs; malloc++ )); do 8 config+=( 9 "$( 10 cat <<-JSON 11 { 12 "method": "bdev_malloc_create", 13 "params": { 14 "name": "Malloc$malloc", 15 "num_blocks": $(( (size << 20) / block_size )), 16 "block_size": 512 17 } 18 } 19 JSON 20 )" 21 ) 22 done 23 24 local ocfs ocf ocf_mode ocf_cache ocf_core 25 ocfs=(1 2) 26 ocf_mode[1]=wt ocf_cache[1]=Malloc0 ocf_core[1]=Malloc1 27 ocf_mode[2]=pt ocf_cache[2]=Malloc0 ocf_core[2]=Malloc2 28 29 for ocf in "${ocfs[@]}"; do 30 config+=( 31 "$( 32 cat <<-JSON 33 { 34 "method": "bdev_ocf_create", 35 "params": { 36 "name": "MalCache$ocf", 37 "mode": "${ocf_mode[ocf]}", 38 "cache_bdev_name": "${ocf_cache[ocf]}", 39 "core_bdev_name": "${ocf_core[ocf]}" 40 } 41 } 42 JSON 43 )" 44 ) 45 done 46 47 jq . <<-JSON 48 { 49 "subsystems": [ 50 { 51 "subsystem": "bdev", 52 "config": [ 53 $(IFS=","; printf '%s\n' "${config[*]}"), 54 { 55 "method": "bdev_wait_for_examine" 56 } 57 ] 58 } 59 ] 60 } 61 JSON 62} 63