spdkcli: add an nvmf transport object

Change-Id: Iba6312db5144910f231cff8d31627fd580656777
Signed-off-by: Seth Howell <seth.howell@intel.com>
Reviewed-on: https://review.gerrithub.io/430642
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
Seth Howell 2018-10-24 14:45:27 -07:00 committed by Ben Walker
parent b7c4b7bc4e
commit 2bb70da9c7
4 changed files with 115 additions and 33 deletions

View File

@ -10,6 +10,58 @@ class UINVMf(UINode):
def refresh(self): def refresh(self):
self._children = set([]) self._children = set([])
UINVMfSubsystems(self) UINVMfSubsystems(self)
UINVMfTransports(self)
class UINVMfTransports(UINode):
def __init__(self, parent):
UINode.__init__(self, "transport", parent)
self.refresh()
def refresh(self):
self._children = set([])
for transport in self.get_root().get_nvmf_transports():
UINVMfTransport(transport, self)
def ui_command_create(self, trtype, max_queue_depth=None, max_qpairs_per_ctrlr=None, in_capsule_data_size=None,
max_io_size=None, io_unit_size=None, max_aq_depth=None):
"""Create a transport with given parameters
Arguments:
trtype - Example: 'RDMA'.
max_queue_depth - Optional parameter. Integer, max value 65535.
max_qpairs_per_ctrlr - Optional parameter. 16 bit Integer, max value 65535.
in_capsule_data_size - Optional parameter. 32 bit Integer, max value 4294967295
max_io_size - Optional parameter. 32 bit integer, max value 4294967295
io_unit_size - Optional parameter. 32 bit integer, max value 4294967295
max_aq_depth - Optional parameter. 32 bit integer, max value 4294967295
"""
max_queue_depth = self.ui_eval_param(max_queue_depth, "number", None)
max_qpairs_per_ctrlr = self.ui_eval_param(max_qpairs_per_ctrlr, "number", None)
in_capsule_data_size = self.ui_eval_param(in_capsule_data_size, "number", None)
max_io_size = self.ui_eval_param(max_io_size, "number", None)
io_unit_size = self.ui_eval_param(io_unit_size, "number", None)
max_aq_depth = self.ui_eval_param(max_aq_depth, "number", None)
try:
self.get_root().create_nvmf_transport(trtype=trtype,
max_queue_depth=max_queue_depth,
max_qpairs_per_ctrlr=max_qpairs_per_ctrlr,
in_capsule_data_size=in_capsule_data_size,
max_io_size=max_io_size,
io_unit_size=io_unit_size,
max_aq_depth=max_aq_depth)
except JSONRPCException as e:
self.shell.log.error(e.message)
self.refresh()
def summary(self):
return "Transports: %s" % len(self.children), None
class UINVMfTransport(UINode):
def __init__(self, transport, parent):
UINode.__init__(self, transport.trtype, parent)
self.transport = transport
class UINVMfSubsystems(UINode): class UINVMfSubsystems(UINode):

View File

@ -15,6 +15,7 @@ class UIRoot(UINode):
self.current_bdevs = [] self.current_bdevs = []
self.current_lvol_stores = [] self.current_lvol_stores = []
self.current_vhost_ctrls = [] self.current_vhost_ctrls = []
self.current_nvmf_transports = []
self.current_nvmf_subsystems = [] self.current_nvmf_subsystems = []
self.set_rpc_target(s) self.set_rpc_target(s)
self.verbose = False self.verbose = False
@ -271,6 +272,20 @@ class UIRoot(UINode):
def set_vhost_controller_coalescing(self, **kwargs): def set_vhost_controller_coalescing(self, **kwargs):
rpc.vhost.set_vhost_controller_coalescing(self.client, **kwargs) rpc.vhost.set_vhost_controller_coalescing(self.client, **kwargs)
@verbose
def create_nvmf_transport(self, **kwargs):
rpc.nvmf.nvmf_create_transport(self.client, **kwargs)
def list_nvmf_transports(self):
if self.is_init:
self.current_nvmf_transports = rpc.nvmf.get_nvmf_transports(self.client)
def get_nvmf_transports(self):
if self.is_init:
self.list_nvmf_transports()
for transport in self.current_nvmf_transports:
yield NvmfTransport(transport)
def list_nvmf_subsystems(self): def list_nvmf_subsystems(self):
if self.is_init: if self.is_init:
self.current_nvmf_subsystems = rpc.nvmf.get_nvmf_subsystems(self.client) self.current_nvmf_subsystems = rpc.nvmf.get_nvmf_subsystems(self.client)
@ -466,6 +481,18 @@ class VhostCtrlr(object):
setattr(self, i, ctrlr_info[i]) setattr(self, i, ctrlr_info[i])
class NvmfTransport(object):
def __init__(self, transport_info):
"""
All class attributes are set based on what information is received
from get_nvmf_transport RPC call.
# TODO: Document in docstring parameters which describe bdevs.
# TODO: Possible improvement: JSON schema might be used here in future
"""
for i in transport_info.keys():
setattr(self, i, transport_info[i])
class NvmfSubsystem(object): class NvmfSubsystem(object):
def __init__(self, subsystem_info): def __init__(self, subsystem_info):
""" """

View File

@ -1,32 +1,34 @@
o- nvmf ...................................................................................................................... [...] o- nvmf ...................................................................................................................... [...]
o- subsystem ..................................................................................................... [Subsystems: 4] o- subsystem ..................................................................................................... [Subsystems: 4]
o- nqn.2014-08.org.nvmexpress.discovery ......................................................... [st=Discovery, Allow any host] | o- nqn.2014-08.org.nvmexpress.discovery ......................................................... [st=Discovery, Allow any host]
| o- hosts .......................................................................................................... [Hosts: 0] | | o- hosts .......................................................................................................... [Hosts: 0]
| o- listen_addresses ........................................................................................... [Addresses: 0] | | o- listen_addresses ........................................................................................... [Addresses: 0]
o- nqn.2014-08.org.spdk:cnode1 ...................................................... [sn=$(S), st=NVMe, Allow any host] | o- nqn.2014-08.org.spdk:cnode1 ...................................................... [sn=$(S), st=NVMe, Allow any host]
| o- hosts .......................................................................................................... [Hosts: 1] | | o- hosts .......................................................................................................... [Hosts: 1]
| | o- nqn.2014-08.org.spdk:cnode2 ....................................................................................... [...] | | | o- nqn.2014-08.org.spdk:cnode2 ....................................................................................... [...]
| o- listen_addresses ........................................................................................... [Addresses: 3] | | o- listen_addresses ........................................................................................... [Addresses: 3]
| | o- $(N).$(N).$(N).$(N):4260 $(S) [RDMA] | | | o- $(N).$(N).$(N).$(N):4260 $(S) [RDMA]
| | o- $(N).$(N).$(N).$(N):4261 $(S) [RDMA] | | | o- $(N).$(N).$(N).$(N):4261 $(S) [RDMA]
| | o- $(N).$(N).$(N).$(N):4262 $(S) [RDMA] | | | o- $(N).$(N).$(N).$(N):4262 $(S) [RDMA]
| o- namespaces ................................................................................................ [Namespaces: 4] | | o- namespaces ................................................................................................ [Namespaces: 4]
| o- Malloc3 .............................................................. [$(X)-$(X)-$(X)-$(X)-$(X), Malloc3, 1] | | o- Malloc3 .............................................................. [$(X)-$(X)-$(X)-$(X)-$(X), Malloc3, 1]
| o- Malloc4 .............................................................. [$(X)-$(X)-$(X)-$(X)-$(X), Malloc4, 2] | | o- Malloc4 .............................................................. [$(X)-$(X)-$(X)-$(X)-$(X), Malloc4, 2]
| o- Malloc5 .............................................................. [$(X)-$(X)-$(X)-$(X)-$(X), Malloc5, 3] | | o- Malloc5 .............................................................. [$(X)-$(X)-$(X)-$(X)-$(X), Malloc5, 3]
| o- Malloc6 .............................................................. [$(X)-$(X)-$(X)-$(X)-$(X), Malloc6, 4] | | o- Malloc6 .............................................................. [$(X)-$(X)-$(X)-$(X)-$(X), Malloc6, 4]
o- nqn.2014-08.org.spdk:cnode2 ...................................................... [sn=$(S), st=NVMe, Allow any host] | o- nqn.2014-08.org.spdk:cnode2 ...................................................... [sn=$(S), st=NVMe, Allow any host]
| o- hosts .......................................................................................................... [Hosts: 0] | | o- hosts .......................................................................................................... [Hosts: 0]
| o- listen_addresses ........................................................................................... [Addresses: 1] | | o- listen_addresses ........................................................................................... [Addresses: 1]
| | o- $(N).$(N).$(N).$(N):4260 $(S) [RDMA] | | | o- $(N).$(N).$(N).$(N):4260 $(S) [RDMA]
| o- namespaces ................................................................................................ [Namespaces: 1] | | o- namespaces ................................................................................................ [Namespaces: 1]
| o- Malloc2 .............................................................. [$(X)-$(X)-$(X)-$(X)-$(X), Malloc2, 1] | | o- Malloc2 .............................................................. [$(X)-$(X)-$(X)-$(X)-$(X), Malloc2, 1]
o- nqn.2014-08.org.spdk:cnode3 ...................................................... [sn=$(S), st=NVMe, Allow any host] | o- nqn.2014-08.org.spdk:cnode3 ...................................................... [sn=$(S), st=NVMe, Allow any host]
o- hosts .......................................................................................................... [Hosts: 2] | o- hosts .......................................................................................................... [Hosts: 2]
| o- nqn.2014-08.org.spdk:cnode1 ....................................................................................... [...] | | o- nqn.2014-08.org.spdk:cnode1 ....................................................................................... [...]
| o- nqn.2014-08.org.spdk:cnode2 ....................................................................................... [...] | | o- nqn.2014-08.org.spdk:cnode2 ....................................................................................... [...]
o- listen_addresses ........................................................................................... [Addresses: 2] | o- listen_addresses ........................................................................................... [Addresses: 2]
| o- $(N).$(N).$(N).$(N):4260 $(S) [RDMA] | | o- $(N).$(N).$(N).$(N):4260 $(S) [RDMA]
| o- $(N).$(N).$(N).$(N):4261 $(S) [RDMA] | | o- $(N).$(N).$(N).$(N):4261 $(S) [RDMA]
o- namespaces ................................................................................................ [Namespaces: 1] | o- namespaces ................................................................................................ [Namespaces: 1]
o- Malloc1 .............................................................. [$(X)-$(X)-$(X)-$(X)-$(X), Malloc1, 1] | o- Malloc1 .............................................................. [$(X)-$(X)-$(X)-$(X)-$(X), Malloc1, 1]
o- transport ..................................................................................................... [Transports: 1]
o- RDMA .................................................................................................................. [...]

View File

@ -53,9 +53,10 @@ o- / ...........................................................................
| o- lvs ................................................................................................ [Size=$(FP)M, Free=$(FP)M] | o- lvs ................................................................................................ [Size=$(FP)M, Free=$(FP)M]
o- nvmf .................................................................................................................... [...] o- nvmf .................................................................................................................... [...]
| o- subsystem ................................................................................................... [Subsystems: 1] | o- subsystem ................................................................................................... [Subsystems: 1]
| o- nqn.2014-08.org.nvmexpress.discovery ....................................................... [st=Discovery, Allow any host] | | o- nqn.2014-08.org.nvmexpress.discovery ....................................................... [st=Discovery, Allow any host]
| o- hosts ........................................................................................................ [Hosts: 0] | | o- hosts ........................................................................................................ [Hosts: 0]
| o- listen_addresses ......................................................................................... [Addresses: 0] | | o- listen_addresses ......................................................................................... [Addresses: 0]
| o- transport ................................................................................................... [Transports: 0]
o- vhost ................................................................................................................... [...] o- vhost ................................................................................................................... [...]
o- block ................................................................................................................. [...] o- block ................................................................................................................. [...]
| o- vhost_blk1 $(S) [$(S)] | o- vhost_blk1 $(S) [$(S)]