iscsi/rpc&test/iscsi_tgt: get iSCSI global params

SPDK does not provide casual way to get iSCSI global parameters
set by iSCSI.conf. Hence test/iscsi_tgt have to use hard-coded
value for iSCSI target's nodebase.

NVMeOF provide similar JSON-RPC dump_nvmf_subsystem().

Change-Id: I1a53572f707e83cfd18369475b2565c6390a4d2d
Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-on: https://review.gerrithub.io/391323
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
Shuhei Matsumoto 2017-12-13 08:59:54 +09:00 committed by Jim Harris
parent 804f6ce45a
commit 06beb0249f
2 changed files with 85 additions and 0 deletions

View File

@ -971,3 +971,81 @@ spdk_rpc_get_iscsi_connections(struct spdk_jsonrpc_request *request,
spdk_jsonrpc_end_result(request, w);
}
SPDK_RPC_REGISTER("get_iscsi_connections", spdk_rpc_get_iscsi_connections)
static void
spdk_rpc_get_iscsi_global_params(struct spdk_jsonrpc_request *request,
const struct spdk_json_val *params)
{
struct spdk_json_write_ctx *w;
if (params != NULL) {
spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INVALID_PARAMS,
"get_iscsi_global_params requires no parameters");
return;
}
w = spdk_jsonrpc_begin_result(request);
if (w == NULL) {
return;
}
spdk_json_write_object_begin(w);
spdk_json_write_name(w, "auth_file");
spdk_json_write_string(w, g_spdk_iscsi.authfile);
spdk_json_write_name(w, "node_base");
spdk_json_write_string(w, g_spdk_iscsi.nodebase);
spdk_json_write_name(w, "max_sessions");
spdk_json_write_uint32(w, g_spdk_iscsi.MaxSessions);
spdk_json_write_name(w, "max_connections_per_session");
spdk_json_write_uint32(w, g_spdk_iscsi.MaxConnectionsPerSession);
spdk_json_write_name(w, "max_queue_depth");
spdk_json_write_uint32(w, g_spdk_iscsi.MaxQueueDepth);
spdk_json_write_name(w, "default_time2wait");
spdk_json_write_uint32(w, g_spdk_iscsi.DefaultTime2Wait);
spdk_json_write_name(w, "immediate_data");
spdk_json_write_bool(w, g_spdk_iscsi.ImmediateData);
spdk_json_write_name(w, "allow_duplicated_isid");
spdk_json_write_bool(w, g_spdk_iscsi.AllowDuplicateIsid);
spdk_json_write_name(w, "error_recovery_level");
spdk_json_write_uint32(w, g_spdk_iscsi.ErrorRecoveryLevel);
spdk_json_write_name(w, "timeout");
spdk_json_write_int32(w, g_spdk_iscsi.timeout);
spdk_json_write_name(w, "flush_timeout");
spdk_json_write_uint64(w, g_spdk_iscsi.flush_timeout);
spdk_json_write_name(w, "nop_in_interval");
spdk_json_write_int32(w, g_spdk_iscsi.nopininterval);
spdk_json_write_name(w, "discovery_auth_method");
if (g_spdk_iscsi.no_discovery_auth != 0) {
spdk_json_write_string(w, "none");
} else if (g_spdk_iscsi.req_discovery_auth == 0) {
spdk_json_write_string(w, "auto");
} else if (g_spdk_iscsi.req_discovery_auth_mutual != 0) {
spdk_json_write_string(w, "chap mutual");
} else {
spdk_json_write_string(w, "chap");
}
spdk_json_write_name(w, "discovery_auth_group");
if (g_spdk_iscsi.discovery_auth_group == 0) {
spdk_json_write_string(w, "none");
} else {
spdk_json_write_int32(w, g_spdk_iscsi.discovery_auth_group);
}
spdk_json_write_object_end(w);
spdk_jsonrpc_end_result(request, w);
}
SPDK_RPC_REGISTER("get_iscsi_global_params", spdk_rpc_get_iscsi_global_params)

View File

@ -538,6 +538,13 @@ p = subparsers.add_parser('get_iscsi_connections', help='Display iSCSI connectio
p.set_defaults(func=get_iscsi_connections)
def get_iscsi_global_params(args):
print_dict(jsonrpc_call('get_iscsi_global_params'))
p = subparsers.add_parser('get_iscsi_global_params', help='Display iSCSI global parameters')
p.set_defaults(func=get_iscsi_global_params)
def get_scsi_devices(args):
print_dict(jsonrpc_call('get_scsi_devices'))