test/json: Tests for iscsi subsystems.

Change-Id: I7053dca9cc6f2ef09566ba2bf8338f7f4c92ebf0
Signed-off-by: Pawel Niedzwiecki <pawelx.niedzwiecki@intel.com>
Reviewed-on: https://review.gerrithub.io/416745
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Pawel Kaminski <pawelx.kaminski@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
This commit is contained in:
Pawel Niedzwiecki 2018-06-25 20:57:06 +02:00 committed by Ben Walker
parent 3181857bc7
commit 767202e3ac
3 changed files with 69 additions and 3 deletions

View File

@ -126,6 +126,7 @@ timing_exit lib
if [ $SPDK_TEST_ISCSI -eq 1 ]; then if [ $SPDK_TEST_ISCSI -eq 1 ]; then
run_test ./test/iscsi_tgt/iscsi_tgt.sh posix run_test ./test/iscsi_tgt/iscsi_tgt.sh posix
run_test ./test/iscsi_tgt/iscsijson/json_config.sh
fi fi
if [ $SPDK_TEST_BLOBFS -eq 1 ]; then if [ $SPDK_TEST_BLOBFS -eq 1 ]; then

View File

@ -0,0 +1,43 @@
#!/usr/bin/env bash
set -xe
ISCSI_JSON_DIR=$(readlink -f $(dirname $0))
. $ISCSI_JSON_DIR/../../json_config/common.sh
. $JSON_DIR/../iscsi_tgt/common.sh
base_iscsi_config=$JSON_DIR/base_iscsi_config.json
last_iscsi_config=$JSON_DIR/last_iscsi_config.json
rpc_py="$spdk_rpc_py"
clear_config_py="$spdk_clear_config_py"
trap 'on_error_exit "${FUNCNAME}" "${LINENO}"; rm -f $base_iscsi_config $last_iscsi_config' ERR
timing_enter iscsi_json_config
run_spdk_tgt
$rpc_py start_subsystem_init
timing_enter iscsi_json_config_create_setup
$rpc_py add_portal_group $PORTAL_TAG 127.0.0.1:$ISCSI_PORT
$rpc_py add_initiator_group $INITIATOR_TAG $INITIATOR_NAME $NETMASK
$rpc_py construct_malloc_bdev 64 4096 --name Malloc0
$rpc_py construct_target_node Target3 Target3_alias 'Malloc0:0' $PORTAL_TAG:$INITIATOR_TAG 64 -d
$rpc_py save_config -f $base_iscsi_config
timing_exit iscsi_json_config_create_setup
timing_enter iscsi_json_config_test
test_json_config
timing_exit iscsi_json_config_test
timing_enter iscsi_json_config_restart_spdk
$clear_config_py clear_config
kill_targets
run_spdk_tgt
$rpc_py load_config -f $base_iscsi_config
$rpc_py save_config -f $last_iscsi_config
timing_exit iscsi_json_config_restart_spdk
diff $base_iscsi_config $last_iscsi_config
$clear_config_py clear_config
kill_targets
rm -f $base_iscsi_config $last_iscsi_config
timing_exit iscsi_json_config
report_test_completion iscsi_json_config

View File

@ -100,12 +100,34 @@ def clear_nvmf_subsystem(args, nvmf_config):
args.client.call(destroy_method, {'nqn': nvmf['params']['nqn']}) args.client.call(destroy_method, {'nqn': nvmf['params']['nqn']})
def clear_scsi_subsystem(args, scsi_config): def get_iscsi_destroy_method(iscsi):
pass destroy_method_map = {'add_portal_group': "delete_portal_group",
'add_initiator_group': "delete_initiator_group",
'construct_target_node': "delete_target_node",
'set_iscsi_options': None
}
return destroy_method_map[iscsi['method']]
def get_iscsi_name(iscsi):
if 'name' in iscsi['params']:
return iscsi['params']['name']
else:
return iscsi['params']['tag']
def get_iscsi_name_key(iscsi):
if iscsi['method'] == 'construct_target_node':
return "name"
else:
return 'tag'
def clear_iscsi_subsystem(args, iscsi_config): def clear_iscsi_subsystem(args, iscsi_config):
pass for iscsi in iscsi_config:
destroy_method = get_iscsi_destroy_method(iscsi)
if destroy_method:
args.client.call(destroy_method, {get_iscsi_name_key(iscsi): get_iscsi_name(iscsi)})
def clear_nbd_subsystem(args, scsi_config): def clear_nbd_subsystem(args, scsi_config):