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:
parent
b7c4b7bc4e
commit
2bb70da9c7
@ -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):
|
||||||
|
@ -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):
|
||||||
"""
|
"""
|
||||||
|
@ -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- listen_addresses ........................................................................................... [Addresses: 3]
|
||||||
|
| | | o- $(N).$(N).$(N).$(N):4260 $(S) [RDMA]
|
||||||
|
| | | o- $(N).$(N).$(N).$(N):4261 $(S) [RDMA]
|
||||||
|
| | | o- $(N).$(N).$(N).$(N):4262 $(S) [RDMA]
|
||||||
|
| | o- namespaces ................................................................................................ [Namespaces: 4]
|
||||||
|
| | o- Malloc3 .............................................................. [$(X)-$(X)-$(X)-$(X)-$(X), Malloc3, 1]
|
||||||
|
| | o- Malloc4 .............................................................. [$(X)-$(X)-$(X)-$(X)-$(X), Malloc4, 2]
|
||||||
|
| | o- Malloc5 .............................................................. [$(X)-$(X)-$(X)-$(X)-$(X), Malloc5, 3]
|
||||||
|
| | o- Malloc6 .............................................................. [$(X)-$(X)-$(X)-$(X)-$(X), Malloc6, 4]
|
||||||
|
| o- nqn.2014-08.org.spdk:cnode2 ...................................................... [sn=$(S), st=NVMe, Allow any host]
|
||||||
|
| | o- hosts .......................................................................................................... [Hosts: 0]
|
||||||
|
| | o- listen_addresses ........................................................................................... [Addresses: 1]
|
||||||
|
| | | o- $(N).$(N).$(N).$(N):4260 $(S) [RDMA]
|
||||||
|
| | o- namespaces ................................................................................................ [Namespaces: 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- hosts .......................................................................................................... [Hosts: 2]
|
||||||
|
| | 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: 3]
|
| 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- $(N).$(N).$(N).$(N):4262 $(S) [RDMA]
|
|
||||||
| o- namespaces ................................................................................................ [Namespaces: 4]
|
|
||||||
| o- Malloc3 .............................................................. [$(X)-$(X)-$(X)-$(X)-$(X), Malloc3, 1]
|
|
||||||
| o- Malloc4 .............................................................. [$(X)-$(X)-$(X)-$(X)-$(X), Malloc4, 2]
|
|
||||||
| o- Malloc5 .............................................................. [$(X)-$(X)-$(X)-$(X)-$(X), Malloc5, 3]
|
|
||||||
| o- Malloc6 .............................................................. [$(X)-$(X)-$(X)-$(X)-$(X), Malloc6, 4]
|
|
||||||
o- nqn.2014-08.org.spdk:cnode2 ...................................................... [sn=$(S), st=NVMe, Allow any host]
|
|
||||||
| o- hosts .......................................................................................................... [Hosts: 0]
|
|
||||||
| o- listen_addresses ........................................................................................... [Addresses: 1]
|
|
||||||
| | 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- Malloc1 .............................................................. [$(X)-$(X)-$(X)-$(X)-$(X), Malloc1, 1]
|
||||||
o- nqn.2014-08.org.spdk:cnode3 ...................................................... [sn=$(S), st=NVMe, Allow any host]
|
o- transport ..................................................................................................... [Transports: 1]
|
||||||
o- hosts .......................................................................................................... [Hosts: 2]
|
o- RDMA .................................................................................................................. [...]
|
||||||
| o- nqn.2014-08.org.spdk:cnode1 ....................................................................................... [...]
|
|
||||||
| o- nqn.2014-08.org.spdk:cnode2 ....................................................................................... [...]
|
|
||||||
o- listen_addresses ........................................................................................... [Addresses: 2]
|
|
||||||
| o- $(N).$(N).$(N).$(N):4260 $(S) [RDMA]
|
|
||||||
| o- $(N).$(N).$(N).$(N):4261 $(S) [RDMA]
|
|
||||||
o- namespaces ................................................................................................ [Namespaces: 1]
|
|
||||||
o- Malloc1 .............................................................. [$(X)-$(X)-$(X)-$(X)-$(X), Malloc1, 1]
|
|
||||||
|
@ -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)]
|
||||||
|
Loading…
Reference in New Issue
Block a user