json/rpc: Tests for nvmf subsystem
Change-Id: I70044bfc01c77a367cf4634d245a58546273f40b Signed-off-by: Pawel Niedzwiecki <pawelx.niedzwiecki@intel.com> Reviewed-on: https://review.gerrithub.io/412477 Tested-by: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Pawel Wodkowski <pawelx.wodkowski@intel.com> Reviewed-by: Pawel Kaminski <pawelx.kaminski@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
parent
f0ec7bc6e7
commit
b2fd5b25b2
@ -133,6 +133,7 @@ fi
|
|||||||
|
|
||||||
if [ $SPDK_TEST_NVMF -eq 1 ]; then
|
if [ $SPDK_TEST_NVMF -eq 1 ]; then
|
||||||
run_test ./test/nvmf/nvmf.sh
|
run_test ./test/nvmf/nvmf.sh
|
||||||
|
run_test ./test/nvmf/nvmfjson/json_config.sh
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $SPDK_TEST_VHOST -eq 1 ]; then
|
if [ $SPDK_TEST_VHOST -eq 1 ]; then
|
||||||
|
@ -85,8 +85,19 @@ def clear_bdev_subsystem(args, bdev_config):
|
|||||||
args.client.call(destroy_method, {bdev_name_key: bdev_name})
|
args.client.call(destroy_method, {bdev_name_key: bdev_name})
|
||||||
|
|
||||||
|
|
||||||
|
def get_nvmf_destroy_method(nvmf):
|
||||||
|
destroy_method_map = {'construct_nvmf_subsystem': "delete_nvmf_subsystem",
|
||||||
|
'set_nvmf_target_config': None,
|
||||||
|
'set_nvmf_target_options': None
|
||||||
|
}
|
||||||
|
return destroy_method_map[nvmf['method']]
|
||||||
|
|
||||||
|
|
||||||
def clear_nvmf_subsystem(args, nvmf_config):
|
def clear_nvmf_subsystem(args, nvmf_config):
|
||||||
pass
|
for nvmf in nvmf_config:
|
||||||
|
destroy_method = get_nvmf_destroy_method(nvmf)
|
||||||
|
if destroy_method:
|
||||||
|
args.client.call(destroy_method, {'nqn': nvmf['params']['nqn']})
|
||||||
|
|
||||||
|
|
||||||
def clear_scsi_subsystem(args, scsi_config):
|
def clear_scsi_subsystem(args, scsi_config):
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
JSON_DIR=$(readlink -f $(dirname ${BASH_SOURCE[0]}))
|
JSON_DIR=$(readlink -f $(dirname ${BASH_SOURCE[0]}))
|
||||||
SPDK_BUILD_DIR=$JSON_DIR/../../
|
SPDK_BUILD_DIR=$JSON_DIR/../../
|
||||||
source $JSON_DIR/../common/autotest_common.sh
|
source $JSON_DIR/../common/autotest_common.sh
|
||||||
|
source $JSON_DIR/../nvmf/common.sh
|
||||||
|
|
||||||
spdk_rpc_py="python $SPDK_BUILD_DIR/scripts/rpc.py -s /var/tmp/spdk.sock"
|
spdk_rpc_py="python $SPDK_BUILD_DIR/scripts/rpc.py -s /var/tmp/spdk.sock"
|
||||||
spdk_clear_config_py="$JSON_DIR/clear_config.py -s /var/tmp/spdk.sock"
|
spdk_clear_config_py="$JSON_DIR/clear_config.py -s /var/tmp/spdk.sock"
|
||||||
@ -96,9 +97,9 @@ function test_json_config() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function remove_config_files_after_test_json_config() {
|
function remove_config_files_after_test_json_config() {
|
||||||
rm $last_bdevs $base_bdevs
|
rm -f $last_bdevs $base_bdevs
|
||||||
rm $last_json_config $base_json_config
|
rm -f $last_json_config $base_json_config
|
||||||
rm $tmp_config $full_config $null_json_config
|
rm -f $tmp_config $full_config $null_json_config
|
||||||
}
|
}
|
||||||
|
|
||||||
function create_pmem_bdev_subsytem_config() {
|
function create_pmem_bdev_subsytem_config() {
|
||||||
@ -139,6 +140,27 @@ function create_bdev_subsystem_config() {
|
|||||||
$rpc_py clone_lvol_bdev lvs_test/snapshot0 clone0
|
$rpc_py clone_lvol_bdev lvs_test/snapshot0 clone0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function create_nvmf_subsystem_config() {
|
||||||
|
rdma_device_init
|
||||||
|
RDMA_IP_LIST=$(get_available_rdma_ips)
|
||||||
|
NVMF_FIRST_TARGET_IP=$(echo "$RDMA_IP_LIST" | head -n 1)
|
||||||
|
if [ -z $NVMF_FIRST_TARGET_IP ]; then
|
||||||
|
echo "Error: no NIC for nvmf test"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
bdevs="$($rpc_py construct_malloc_bdev 64 512) "
|
||||||
|
bdevs+="$($rpc_py construct_malloc_bdev 64 512)"
|
||||||
|
$rpc_py construct_nvmf_subsystem nqn.2016-06.io.spdk:cnode1 '' '' -a -s SPDK00000000000001 -n "$bdevs"
|
||||||
|
$rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t RDMA -a $NVMF_FIRST_TARGET_IP -s "$NVMF_PORT"
|
||||||
|
$rpc_py nvmf_subsystem_add_host nqn.2016-06.io.spdk:cnode1 nqn.2016-06.io.spdk:host1
|
||||||
|
$rpc_py nvmf_subsystem_allow_any_host nqn.2016-06.io.spdk:cnode1
|
||||||
|
}
|
||||||
|
|
||||||
|
function clear_nvmf_subsystem_config() {
|
||||||
|
$clear_config_py clear_config
|
||||||
|
}
|
||||||
|
|
||||||
function clear_bdev_subsystem_config() {
|
function clear_bdev_subsystem_config() {
|
||||||
$rpc_py destroy_lvol_bdev lvs_test/clone0
|
$rpc_py destroy_lvol_bdev lvs_test/clone0
|
||||||
$rpc_py destroy_lvol_bdev lvs_test/lvol0
|
$rpc_py destroy_lvol_bdev lvs_test/lvol0
|
||||||
|
39
test/nvmf/nvmfjson/json_config.sh
Executable file
39
test/nvmf/nvmfjson/json_config.sh
Executable file
@ -0,0 +1,39 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -xe
|
||||||
|
NVMF_JSON_DIR=$(readlink -f $(dirname $0))
|
||||||
|
. $NVMF_JSON_DIR/../../json_config/common.sh
|
||||||
|
base_nvmf_config=$JSON_DIR/base_nvmf_config.json
|
||||||
|
last_nvmf_config=$JSON_DIR/last_nvmf_config.json
|
||||||
|
|
||||||
|
function test_subsystems() {
|
||||||
|
run_spdk_tgt
|
||||||
|
|
||||||
|
rpc_py="$spdk_rpc_py"
|
||||||
|
clear_config_py="$spdk_clear_config_py"
|
||||||
|
|
||||||
|
$rpc_py start_subsystem_init
|
||||||
|
create_nvmf_subsystem_config
|
||||||
|
$rpc_py save_config -f $base_nvmf_config
|
||||||
|
test_json_config
|
||||||
|
|
||||||
|
clear_nvmf_subsystem_config
|
||||||
|
kill_targets
|
||||||
|
|
||||||
|
run_spdk_tgt
|
||||||
|
$rpc_py load_config -f $base_nvmf_config
|
||||||
|
$rpc_py save_config -f $last_nvmf_config
|
||||||
|
|
||||||
|
diff $base_nvmf_config $last_nvmf_config
|
||||||
|
|
||||||
|
clear_nvmf_subsystem_config
|
||||||
|
kill_targets
|
||||||
|
rm -f $base_nvmf_config $last_nvmf_config
|
||||||
|
}
|
||||||
|
|
||||||
|
trap 'on_error_exit "${FUNCNAME}" "${LINENO}"; rm -f $base_nvmf_config $last_nvmf_config' ERR
|
||||||
|
|
||||||
|
timing_enter nvmf_json_config
|
||||||
|
test_subsystems
|
||||||
|
timing_exit nvmf_json_config
|
||||||
|
|
||||||
|
report_test_completion nvmf_json_config
|
Loading…
Reference in New Issue
Block a user