Extend the nvme_connect_subsys() function to parse optional arguments.
This avoids that all test have to pass in always all arguments.
Signed-off-by: Daniel Wagner <dwagner@suse.de>
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
# Test unauthenticated connection (should fail)
echo "Test unauthenticated connection (should fail)"
_nvme_connect_subsys "${nvme_trtype}" "${subsys_name}" \
- "" "" "${hostnqn}" "${hostid}"
+ --hostnqn "${hostnqn}" \
+ --hostid "${hostid}"
_nvme_disconnect_subsys "${subsys_name}"
# Test authenticated connection
echo "Test authenticated connection"
_nvme_connect_subsys "${nvme_trtype}" "${subsys_name}" \
- "" "" "${hostnqn}" "${hostid}" "${hostkey}"
+ --hostnqn "${hostnqn}" \
+ --hostid "${hostid}" \
+ --dhchap-secret "${hostkey}"
udevadm settle
_set_nvmet_hostkey "${hostnqn}" "${hostkey}"
_nvme_connect_subsys "${nvme_trtype}" "${subsys_name}" \
- "" "" "${hostnqn}" "${hostid}" \
- "${hostkey}"
+ --hostnqn "${hostnqn}" \
+ --hostid "${hostid}" \
+ --dhchap-secret "${hostkey}"
udevadm settle
_nvme_disconnect_subsys "${subsys_name}"
_set_nvmet_hostkey "${hostnqn}" "${hostkey}"
_nvme_connect_subsys "${nvme_trtype}" "${subsys_name}" \
- "" "" "${hostnqn}" "${hostid}" \
- "${hostkey}"
+ --hostnqn "${hostnqn}" \
+ --hostid "${hostid}" \
+ --dhchap-secret "${hostkey}"
udevadm settle
_set_nvmet_hash "${hostnqn}" "${hash}"
_nvme_connect_subsys "${nvme_trtype}" "${subsys_name}" \
- "" "" "${hostnqn}" "${hostid}" \
- "${hostkey}"
+ --hostnqn "${hostnqn}" \
+ --hostid "${hostid}" \
+ --dhchap-secret "${hostkey}"
udevadm settle
_set_nvmet_dhgroup "${hostnqn}" "${dhgroup}"
_nvme_connect_subsys "${nvme_trtype}" "${subsys_name}" \
- "" "" "${hostnqn}" "${hostid}" \
- "${hostkey}"
+ --hostnqn "${hostnqn}" \
+ --hostid "${hostid}" \
+ --dhchap-secret "${hostkey}"
udevadm settle
# Step 1: Connect with host authentication only
echo "Test host authentication"
_nvme_connect_subsys "${nvme_trtype}" "${subsys_name}" \
- "" "" "${hostnqn}" "${hostid}" \
- "${hostkey}"
+ --hostnqn "${hostnqn}" \
+ --hostid "${hostid}" \
+ --dhchap-secret "${hostkey}"
udevadm settle
# and invalid ctrl authentication
echo "Test invalid ctrl authentication (should fail)"
_nvme_connect_subsys "${nvme_trtype}" "${subsys_name}" \
- "" "" "${hostnqn}" "${hostid}" \
- "${hostkey}" "${hostkey}"
+ --hostnqn "${hostnqn}" \
+ --hostid "${hostid}" \
+ --dhchap-secret "${hostkey}" \
+ --dhchap-ctrl-secret "${hostkey}"
udevadm settle
# and valid ctrl authentication
echo "Test valid ctrl authentication"
_nvme_connect_subsys "${nvme_trtype}" "${subsys_name}" \
- "" "" "${hostnqn}" "${hostid}" \
- "${hostkey}" "${ctrlkey}"
+ --hostnqn "${hostnqn}" \
+ --hostid "${hostid}" \
+ --dhchap-secret "${hostkey}" \
+ --dhchap-ctrl-secret "${ctrlkey}"
udevadm settle
echo "Test invalid ctrl key (should fail)"
invkey="DHHC-1:00:Jc/My1o0qtLCWRp+sHhAVafdfaS7YQOMYhk9zSmlatobqB8C:"
_nvme_connect_subsys "${nvme_trtype}" "${subsys_name}" \
- "" "" "${hostnqn}" "${hostid}" \
- "${hostkey}" "${invkey}"
+ --hostnqn "${hostnqn}" \
+ --hostid "${hostid}" \
+ --dhchap-secret "${hostkey}" \
+ --dhchap-ctrl-secret "${invkey}"
udevadm settle
_set_nvmet_dhgroup "${hostnqn}" "ffdhe2048"
_nvme_connect_subsys "${nvme_trtype}" "${subsys_name}" \
- "" "" "${hostnqn}" "${hostid}" \
- "${hostkey}" "${ctrlkey}"
+ --hostnqn "${hostnqn}" \
+ --hostid "${hostid}" \
+ --dhchap-secret "${hostkey}" \
+ --dhchap-ctrl-secret "${ctrlkey}"
udevadm settle
}
_nvme_connect_subsys() {
- local trtype="$1"
- local subsysnqn="$2"
- local traddr="${3:-$def_traddr}"
- local host_traddr="${4:-$def_host_traddr}"
- local trsvcid="${4:-$def_trsvcid}"
- local hostnqn="${5:-$def_hostnqn}"
- local hostid="${6:-$def_hostid}"
- local hostkey="${7}"
- local ctrlkey="${8}"
+ local positional_args=()
+ local trtype=""
+ local subsysnqn=""
+ local traddr="$def_traddr"
+ local host_traddr="$def_host_traddr"
+ local trsvcid="$def_trsvcid"
+ local hostnqn="$def_hostnqn"
+ local hostid="$def_hostid"
+ local hostkey=""
+ local ctrlkey=""
+
+ while [[ $# -gt 0 ]]; do
+ case $1 in
+ -a|--traddr)
+ traddr="$2"
+ shift 2
+ ;;
+ -w|--host-traddr)
+ host_traddr="$2"
+ shift 2
+ ;;
+ -s|--trsvcid)
+ trsvcid="$2"
+ shift 2
+ ;;
+ -n|--hostnqn)
+ hostnqn="$2"
+ shift 2
+ ;;
+ -I|--hostid)
+ hostid="$2"
+ shift 2
+ ;;
+ -S|--dhchap-secret)
+ hostkey="$2"
+ shift 2
+ ;;
+ -C|--dhchap-ctrl-secret)
+ ctrlkey="$2"
+ shift 2
+ ;;
+ *)
+ positional_args+=("$1")
+ shift
+ ;;
+ esac
+ done
+
+ set -- "${positional_args[@]}"
+
+ trtype="$1"
+ subsysnqn="$2"
ARGS=(-t "${trtype}" -n "${subsysnqn}")
if [[ "${trtype}" == "fc" ]] ; then