spdkcli: Catch JSONRPCException in execute_command
Move try-catch sections from create and delete commands to execute_command method. Move refresh methods to execute_command. Change-Id: Idfa1cacd8a1a1c8ac738a84595610f4e57cace44 Signed-off-by: Pawel Kaminski <pawelx.kaminski@intel.com> Reviewed-on: https://review.gerrithub.io/c/442395 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Pawel Wodkowski <pawelx.wodkowski@intel.com> Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/447599
This commit is contained in:
parent
8d31df3061
commit
bcbf6e8483
@ -21,6 +21,9 @@ class UINode(ConfigNode):
|
||||
for child in self.children:
|
||||
child.refresh()
|
||||
|
||||
def refresh_node(self):
|
||||
self.refresh()
|
||||
|
||||
def ui_command_refresh(self):
|
||||
self.refresh()
|
||||
|
||||
@ -36,10 +39,19 @@ class UINode(ConfigNode):
|
||||
pparams, kparams)
|
||||
except Exception as msg:
|
||||
self.shell.log.error(str(msg))
|
||||
pass
|
||||
else:
|
||||
self.shell.log.debug("Command %s succeeded." % command)
|
||||
return result
|
||||
finally:
|
||||
if command in ["create", "delete", "delete_all", "add_initiator",
|
||||
"allow_any_host", "split_bdev", "add_lun",
|
||||
"add_pg_ig_maps", "remove_target", "add_secret",
|
||||
"destruct_split_bdev", "delete_pmem_pool",
|
||||
"create_pmem_pool", "delete_secret_all",
|
||||
"delete_initiator", "set_auth", "delete_secret",
|
||||
"delete_pg_ig_maps"]:
|
||||
self.get_root().refresh()
|
||||
self.refresh_node()
|
||||
|
||||
|
||||
class UIBdevs(UINode):
|
||||
@ -90,14 +102,7 @@ class UILvolStores(UINode):
|
||||
"""
|
||||
|
||||
cluster_size = self.ui_eval_param(cluster_size, "number", None)
|
||||
|
||||
try:
|
||||
self.get_root().create_lvol_store(lvs_name=name, bdev_name=bdev_name, cluster_sz=cluster_size)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
|
||||
self.get_root().refresh()
|
||||
self.refresh()
|
||||
self.get_root().create_lvol_store(lvs_name=name, bdev_name=bdev_name, cluster_sz=cluster_size)
|
||||
|
||||
def ui_command_delete(self, name=None, uuid=None):
|
||||
"""
|
||||
@ -109,14 +114,10 @@ class UILvolStores(UINode):
|
||||
uuid - UUID number of the logical volume store to be deleted.
|
||||
"""
|
||||
self.delete(name, uuid)
|
||||
self.get_root().refresh()
|
||||
self.refresh()
|
||||
|
||||
def ui_command_delete_all(self):
|
||||
for lvs in self._children:
|
||||
self.delete(None, lvs.lvs.uuid)
|
||||
self.get_root().refresh()
|
||||
self.refresh()
|
||||
|
||||
def summary(self):
|
||||
return "Lvol stores: %s" % len(self.children), None
|
||||
@ -133,18 +134,13 @@ class UIBdev(UINode):
|
||||
UIBdevObj(bdev, self)
|
||||
|
||||
def ui_command_get_bdev_iostat(self, name=None):
|
||||
try:
|
||||
ret = self.get_root().get_bdevs_iostat(name=name)
|
||||
self.shell.log.info(json.dumps(ret, indent=2))
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
ret = self.get_root().get_bdevs_iostat(name=name)
|
||||
self.shell.log.info(json.dumps(ret, indent=2))
|
||||
|
||||
def ui_command_delete_all(self):
|
||||
"""Delete all bdevs from this tree node."""
|
||||
for bdev in self._children:
|
||||
self.delete(bdev.name)
|
||||
self.get_root().refresh()
|
||||
self.refresh()
|
||||
|
||||
def summary(self):
|
||||
return "Bdevs: %d" % len(self.children), None
|
||||
@ -155,10 +151,7 @@ class UIMallocBdev(UIBdev):
|
||||
UIBdev.__init__(self, "malloc", parent)
|
||||
|
||||
def delete(self, name):
|
||||
try:
|
||||
self.get_root().delete_malloc_bdev(name=name)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
self.get_root().delete_malloc_bdev(name=name)
|
||||
|
||||
def ui_command_create(self, size, block_size, name=None, uuid=None):
|
||||
"""
|
||||
@ -175,17 +168,10 @@ class UIMallocBdev(UIBdev):
|
||||
|
||||
size = self.ui_eval_param(size, "number", None)
|
||||
block_size = self.ui_eval_param(block_size, "number", None)
|
||||
|
||||
try:
|
||||
ret_name = self.get_root().create_malloc_bdev(num_blocks=size * 1024 * 1024 // block_size,
|
||||
block_size=block_size,
|
||||
name=name, uuid=uuid)
|
||||
self.shell.log.info(ret_name)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
|
||||
self.get_root().refresh()
|
||||
self.refresh()
|
||||
ret_name = self.get_root().create_malloc_bdev(num_blocks=size * 1024 * 1024 // block_size,
|
||||
block_size=block_size,
|
||||
name=name, uuid=uuid)
|
||||
self.shell.log.info(ret_name)
|
||||
|
||||
def ui_command_delete(self, name):
|
||||
"""
|
||||
@ -195,8 +181,6 @@ class UIMallocBdev(UIBdev):
|
||||
name - Is a unique identifier of the malloc bdev to be deleted - UUID number or name alias.
|
||||
"""
|
||||
self.delete(name)
|
||||
self.get_root().refresh()
|
||||
self.refresh()
|
||||
|
||||
|
||||
class UIAIOBdev(UIBdev):
|
||||
@ -204,10 +188,7 @@ class UIAIOBdev(UIBdev):
|
||||
UIBdev.__init__(self, "aio", parent)
|
||||
|
||||
def delete(self, name):
|
||||
try:
|
||||
self.get_root().delete_aio_bdev(name=name)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
self.get_root().delete_aio_bdev(name=name)
|
||||
|
||||
def ui_command_create(self, name, filename, block_size):
|
||||
"""
|
||||
@ -222,17 +203,10 @@ class UIAIOBdev(UIBdev):
|
||||
"""
|
||||
|
||||
block_size = self.ui_eval_param(block_size, "number", None)
|
||||
|
||||
try:
|
||||
ret_name = self.get_root().create_aio_bdev(name=name,
|
||||
block_size=int(block_size),
|
||||
filename=filename)
|
||||
self.shell.log.info(ret_name)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
|
||||
self.get_root().refresh()
|
||||
self.refresh()
|
||||
ret_name = self.get_root().create_aio_bdev(name=name,
|
||||
block_size=int(block_size),
|
||||
filename=filename)
|
||||
self.shell.log.info(ret_name)
|
||||
|
||||
def ui_command_delete(self, name):
|
||||
"""
|
||||
@ -242,8 +216,6 @@ class UIAIOBdev(UIBdev):
|
||||
name - Is a unique identifier of the aio bdev to be deleted - UUID number or name alias.
|
||||
"""
|
||||
self.delete(name)
|
||||
self.get_root().refresh()
|
||||
self.refresh()
|
||||
|
||||
|
||||
class UILvolBdev(UIBdev):
|
||||
@ -251,10 +223,7 @@ class UILvolBdev(UIBdev):
|
||||
UIBdev.__init__(self, "logical_volume", parent)
|
||||
|
||||
def delete(self, name):
|
||||
try:
|
||||
self.get_root().destroy_lvol_bdev(name=name)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
self.get_root().destroy_lvol_bdev(name=name)
|
||||
|
||||
def ui_command_create(self, name, size, lvs, thin_provision=None):
|
||||
"""
|
||||
@ -280,16 +249,10 @@ class UILvolBdev(UIBdev):
|
||||
size *= (1024 * 1024)
|
||||
thin_provision = self.ui_eval_param(thin_provision, "bool", False)
|
||||
|
||||
try:
|
||||
ret_uuid = self.get_root().create_lvol_bdev(lvol_name=name, size=size,
|
||||
lvs_name=lvs_name, uuid=uuid,
|
||||
thin_provision=thin_provision)
|
||||
self.shell.log.info(ret_uuid)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
|
||||
self.get_root().refresh()
|
||||
self.refresh()
|
||||
ret_uuid = self.get_root().create_lvol_bdev(lvol_name=name, size=size,
|
||||
lvs_name=lvs_name, uuid=uuid,
|
||||
thin_provision=thin_provision)
|
||||
self.shell.log.info(ret_uuid)
|
||||
|
||||
def ui_command_delete(self, name):
|
||||
"""
|
||||
@ -299,8 +262,6 @@ class UILvolBdev(UIBdev):
|
||||
name - Is a unique identifier of the lvol bdev to be deleted - UUID number or name alias.
|
||||
"""
|
||||
self.delete(name)
|
||||
self.get_root().refresh()
|
||||
self.refresh()
|
||||
|
||||
|
||||
class UINvmeBdev(UIBdev):
|
||||
@ -308,28 +269,17 @@ class UINvmeBdev(UIBdev):
|
||||
UIBdev.__init__(self, "nvme", parent)
|
||||
|
||||
def delete(self, name):
|
||||
try:
|
||||
self.get_root().delete_nvme_controller(name=name)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
self.get_root().delete_nvme_controller(name=name)
|
||||
|
||||
def ui_command_create(self, name, trtype, traddr,
|
||||
adrfam=None, trsvcid=None, subnqn=None):
|
||||
|
||||
if "rdma" in trtype and None in [adrfam, trsvcid, subnqn]:
|
||||
self.shell.log.error("Using RDMA transport type."
|
||||
"Please provide arguments for adrfam, trsvcid and subnqn.")
|
||||
|
||||
try:
|
||||
ret_name = self.get_root().create_nvme_bdev(name=name, trtype=trtype,
|
||||
traddr=traddr, adrfam=adrfam,
|
||||
trsvcid=trsvcid, subnqn=subnqn)
|
||||
self.shell.log.info(ret_name)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
|
||||
self.get_root().refresh()
|
||||
self.refresh()
|
||||
ret_name = self.get_root().create_nvme_bdev(name=name, trtype=trtype,
|
||||
traddr=traddr, adrfam=adrfam,
|
||||
trsvcid=trsvcid, subnqn=subnqn)
|
||||
self.shell.log.info(ret_name)
|
||||
|
||||
def ui_command_delete_all(self):
|
||||
ctrlrs = [x.name for x in self._children]
|
||||
@ -337,8 +287,6 @@ class UINvmeBdev(UIBdev):
|
||||
ctrlrs = set(ctrlrs)
|
||||
for ctrlr in ctrlrs:
|
||||
self.delete(ctrlr)
|
||||
self.get_root().refresh()
|
||||
self.refresh()
|
||||
|
||||
def ui_command_delete(self, name):
|
||||
"""
|
||||
@ -348,8 +296,6 @@ class UINvmeBdev(UIBdev):
|
||||
name - Is a unique identifier of the NVMe controller to be deleted.
|
||||
"""
|
||||
self.delete(name)
|
||||
self.get_root().refresh()
|
||||
self.refresh()
|
||||
|
||||
|
||||
class UINullBdev(UIBdev):
|
||||
@ -357,10 +303,7 @@ class UINullBdev(UIBdev):
|
||||
UIBdev.__init__(self, "null", parent)
|
||||
|
||||
def delete(self, name):
|
||||
try:
|
||||
self.get_root().delete_null_bdev(name=name)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
self.get_root().delete_null_bdev(name=name)
|
||||
|
||||
def ui_command_create(self, name, size, block_size, uuid=None):
|
||||
"""
|
||||
@ -377,17 +320,10 @@ class UINullBdev(UIBdev):
|
||||
size = self.ui_eval_param(size, "number", None)
|
||||
block_size = self.ui_eval_param(block_size, "number", None)
|
||||
num_blocks = size * 1024 * 1024 // block_size
|
||||
|
||||
try:
|
||||
ret_name = self.get_root().create_null_bdev(num_blocks=num_blocks,
|
||||
block_size=block_size,
|
||||
name=name, uuid=uuid)
|
||||
self.shell.log.info(ret_name)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
|
||||
self.get_root().refresh()
|
||||
self.refresh()
|
||||
ret_name = self.get_root().create_null_bdev(num_blocks=num_blocks,
|
||||
block_size=block_size,
|
||||
name=name, uuid=uuid)
|
||||
self.shell.log.info(ret_name)
|
||||
|
||||
def ui_command_delete(self, name):
|
||||
"""
|
||||
@ -397,8 +333,6 @@ class UINullBdev(UIBdev):
|
||||
name - Is a unique identifier of the null bdev to be deleted - UUID number or name alias.
|
||||
"""
|
||||
self.delete(name)
|
||||
self.get_root().refresh()
|
||||
self.refresh()
|
||||
|
||||
|
||||
class UIErrorBdev(UIBdev):
|
||||
@ -406,10 +340,7 @@ class UIErrorBdev(UIBdev):
|
||||
UIBdev.__init__(self, "error", parent)
|
||||
|
||||
def delete(self, name):
|
||||
try:
|
||||
self.get_root().delete_error_bdev(name=name)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
self.get_root().delete_error_bdev(name=name)
|
||||
|
||||
def ui_command_create(self, base_name):
|
||||
"""
|
||||
@ -419,13 +350,7 @@ class UIErrorBdev(UIBdev):
|
||||
base_name - base bdev name on top of which error bdev will be created.
|
||||
"""
|
||||
|
||||
try:
|
||||
self.get_root().create_error_bdev(base_name=base_name)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
|
||||
self.get_root().refresh()
|
||||
self.refresh()
|
||||
self.get_root().create_error_bdev(base_name=base_name)
|
||||
|
||||
def ui_command_delete(self, name):
|
||||
"""
|
||||
@ -435,8 +360,6 @@ class UIErrorBdev(UIBdev):
|
||||
name - Is a unique identifier of the error bdev to be deleted - UUID number or name alias.
|
||||
"""
|
||||
self.delete(name)
|
||||
self.get_root().refresh()
|
||||
self.refresh()
|
||||
|
||||
|
||||
class UISplitBdev(UIBdev):
|
||||
@ -459,16 +382,10 @@ class UISplitBdev(UIBdev):
|
||||
split_count = self.ui_eval_param(split_count, "number", None)
|
||||
split_size_mb = self.ui_eval_param(split_size_mb, "number", None)
|
||||
|
||||
try:
|
||||
ret_name = self.get_root().split_bdev(base_bdev=base_bdev,
|
||||
split_count=split_count,
|
||||
split_size_mb=split_size_mb)
|
||||
self.shell.log.info(ret_name)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
|
||||
self.parent.refresh()
|
||||
self.refresh()
|
||||
ret_name = self.get_root().split_bdev(base_bdev=base_bdev,
|
||||
split_count=split_count,
|
||||
split_size_mb=split_size_mb)
|
||||
self.shell.log.info(ret_name)
|
||||
|
||||
def ui_command_destruct_split_bdev(self, base_bdev):
|
||||
"""Destroy split block devices associated with base bdev.
|
||||
@ -477,13 +394,7 @@ class UISplitBdev(UIBdev):
|
||||
base_bdev: name of previously split bdev
|
||||
"""
|
||||
|
||||
try:
|
||||
self.get_root().destruct_split_bdev(base_bdev=base_bdev)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
|
||||
self.parent.refresh()
|
||||
self.refresh()
|
||||
self.get_root().destruct_split_bdev(base_bdev=base_bdev)
|
||||
|
||||
|
||||
class UIPmemBdev(UIBdev):
|
||||
@ -491,46 +402,28 @@ class UIPmemBdev(UIBdev):
|
||||
UIBdev.__init__(self, "pmemblk", parent)
|
||||
|
||||
def delete(self, name):
|
||||
try:
|
||||
self.get_root().delete_pmem_bdev(name=name)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
self.get_root().delete_pmem_bdev(name=name)
|
||||
|
||||
def ui_command_create_pmem_pool(self, pmem_file, total_size, block_size):
|
||||
total_size = self.ui_eval_param(total_size, "number", None)
|
||||
block_size = self.ui_eval_param(block_size, "number", None)
|
||||
num_blocks = int((total_size * 1024 * 1024) / block_size)
|
||||
|
||||
try:
|
||||
self.get_root().create_pmem_pool(pmem_file=pmem_file,
|
||||
num_blocks=num_blocks,
|
||||
block_size=block_size)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
self.get_root().create_pmem_pool(pmem_file=pmem_file,
|
||||
num_blocks=num_blocks,
|
||||
block_size=block_size)
|
||||
|
||||
def ui_command_delete_pmem_pool(self, pmem_file):
|
||||
try:
|
||||
self.get_root().delete_pmem_pool(pmem_file=pmem_file)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
self.get_root().delete_pmem_pool(pmem_file=pmem_file)
|
||||
|
||||
def ui_command_info_pmem_pool(self, pmem_file):
|
||||
try:
|
||||
ret = self.get_root().delete_pmem_pool(pmem_file=pmem_file)
|
||||
self.shell.log.info(ret)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
ret = self.get_root().delete_pmem_pool(pmem_file=pmem_file)
|
||||
self.shell.log.info(ret)
|
||||
|
||||
def ui_command_create(self, pmem_file, name):
|
||||
try:
|
||||
ret_name = self.get_root().create_pmem_bdev(pmem_file=pmem_file,
|
||||
name=name)
|
||||
self.shell.log.info(ret_name)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
|
||||
self.get_root().refresh()
|
||||
self.refresh()
|
||||
ret_name = self.get_root().create_pmem_bdev(pmem_file=pmem_file,
|
||||
name=name)
|
||||
self.shell.log.info(ret_name)
|
||||
|
||||
def ui_command_delete(self, name):
|
||||
"""
|
||||
@ -540,8 +433,6 @@ class UIPmemBdev(UIBdev):
|
||||
name - Is a unique identifier of the pmem bdev to be deleted - UUID number or name alias.
|
||||
"""
|
||||
self.delete(name)
|
||||
self.get_root().refresh()
|
||||
self.refresh()
|
||||
|
||||
|
||||
class UIRbdBdev(UIBdev):
|
||||
@ -549,25 +440,16 @@ class UIRbdBdev(UIBdev):
|
||||
UIBdev.__init__(self, "rbd", parent)
|
||||
|
||||
def delete(self, name):
|
||||
try:
|
||||
self.get_root().delete_rbd_bdev(name=name)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
self.get_root().delete_rbd_bdev(name=name)
|
||||
|
||||
def ui_command_create(self, pool_name, rbd_name, block_size, name=None):
|
||||
block_size = self.ui_eval_param(block_size, "number", None)
|
||||
|
||||
try:
|
||||
ret_name = self.get_root().create_rbd_bdev(pool_name=pool_name,
|
||||
rbd_name=rbd_name,
|
||||
block_size=block_size,
|
||||
name=name)
|
||||
self.shell.log.info(ret_name)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
|
||||
self.get_root().refresh()
|
||||
self.refresh()
|
||||
ret_name = self.get_root().create_rbd_bdev(pool_name=pool_name,
|
||||
rbd_name=rbd_name,
|
||||
block_size=block_size,
|
||||
name=name)
|
||||
self.shell.log.info(ret_name)
|
||||
|
||||
def ui_command_delete(self, name):
|
||||
"""
|
||||
@ -577,8 +459,6 @@ class UIRbdBdev(UIBdev):
|
||||
name - Is a unique identifier of the rbd bdev to be deleted - UUID number or name alias.
|
||||
"""
|
||||
self.delete(name)
|
||||
self.get_root().refresh()
|
||||
self.refresh()
|
||||
|
||||
|
||||
class UIiSCSIBdev(UIBdev):
|
||||
@ -586,10 +466,7 @@ class UIiSCSIBdev(UIBdev):
|
||||
UIBdev.__init__(self, "iscsi", parent)
|
||||
|
||||
def delete(self, name):
|
||||
try:
|
||||
self.get_root().delete_iscsi_bdev(name=name)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
self.get_root().delete_iscsi_bdev(name=name)
|
||||
|
||||
def ui_command_create(self, name, url, initiator_iqn):
|
||||
"""
|
||||
@ -602,16 +479,10 @@ class UIiSCSIBdev(UIBdev):
|
||||
Example: iscsi://127.0.0.1:3260/iqn.2018-06.org.spdk/0.
|
||||
initiator_iqn - IQN to use for initiating connection with the target.
|
||||
"""
|
||||
try:
|
||||
ret_name = self.get_root().create_iscsi_bdev(name=name,
|
||||
url=url,
|
||||
initiator_iqn=initiator_iqn)
|
||||
self.shell.log.info(ret_name)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
|
||||
self.get_root().refresh()
|
||||
self.refresh()
|
||||
ret_name = self.get_root().create_iscsi_bdev(name=name,
|
||||
url=url,
|
||||
initiator_iqn=initiator_iqn)
|
||||
self.shell.log.info(ret_name)
|
||||
|
||||
def ui_command_delete(self, name):
|
||||
"""
|
||||
@ -621,8 +492,6 @@ class UIiSCSIBdev(UIBdev):
|
||||
name - name of the iscsi bdev to be deleted.
|
||||
"""
|
||||
self.delete(name)
|
||||
self.get_root().refresh()
|
||||
self.refresh()
|
||||
|
||||
|
||||
class UIVirtioBlkBdev(UIBdev):
|
||||
@ -635,20 +504,14 @@ class UIVirtioBlkBdev(UIBdev):
|
||||
vq_count = self.ui_eval_param(vq_count, "number", None)
|
||||
vq_size = self.ui_eval_param(vq_size, "number", None)
|
||||
|
||||
try:
|
||||
ret = self.get_root().create_virtio_dev(name=name,
|
||||
trtype=trtype,
|
||||
traddr=traddr,
|
||||
dev_type="blk",
|
||||
vq_count=vq_count,
|
||||
vq_size=vq_size)
|
||||
ret = self.get_root().create_virtio_dev(name=name,
|
||||
trtype=trtype,
|
||||
traddr=traddr,
|
||||
dev_type="blk",
|
||||
vq_count=vq_count,
|
||||
vq_size=vq_size)
|
||||
|
||||
self.shell.log.info(ret)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
|
||||
self.get_root().refresh()
|
||||
self.refresh()
|
||||
self.shell.log.info(ret)
|
||||
|
||||
def ui_command_delete(self, name):
|
||||
"""
|
||||
@ -657,12 +520,7 @@ class UIVirtioBlkBdev(UIBdev):
|
||||
Arguments:
|
||||
name - Is a unique identifier of the virtio scsi bdev to be deleted - UUID number or name alias.
|
||||
"""
|
||||
try:
|
||||
self.get_root().remove_virtio_bdev(name=name)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
self.get_root().refresh()
|
||||
self.refresh()
|
||||
self.get_root().remove_virtio_bdev(name=name)
|
||||
|
||||
|
||||
class UIVirtioScsiBdev(UIBdev):
|
||||
@ -680,29 +538,17 @@ class UIVirtioScsiBdev(UIBdev):
|
||||
vq_count = self.ui_eval_param(vq_count, "number", None)
|
||||
vq_size = self.ui_eval_param(vq_size, "number", None)
|
||||
|
||||
try:
|
||||
ret = self.get_root().create_virtio_dev(name=name,
|
||||
trtype=trtype,
|
||||
traddr=traddr,
|
||||
dev_type="scsi",
|
||||
vq_count=vq_count,
|
||||
vq_size=vq_size)
|
||||
ret = self.get_root().create_virtio_dev(name=name,
|
||||
trtype=trtype,
|
||||
traddr=traddr,
|
||||
dev_type="scsi",
|
||||
vq_count=vq_count,
|
||||
vq_size=vq_size)
|
||||
|
||||
self.shell.log.info(ret)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
|
||||
self.get_root().refresh()
|
||||
self.refresh()
|
||||
self.shell.log.info(ret)
|
||||
|
||||
def ui_command_delete(self, name):
|
||||
try:
|
||||
self.get_root().remove_virtio_bdev(name=name)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
|
||||
self.get_root().refresh()
|
||||
self.refresh()
|
||||
self.get_root().remove_virtio_bdev(name=name)
|
||||
|
||||
|
||||
class UIBdevObj(UINode):
|
||||
@ -802,8 +648,6 @@ class UIVhost(UINode):
|
||||
name - Controller name.
|
||||
"""
|
||||
self.get_root().remove_vhost_controller(ctrlr=name)
|
||||
self.get_root().refresh()
|
||||
self.refresh()
|
||||
|
||||
|
||||
class UIVhostBlk(UIVhost):
|
||||
@ -828,16 +672,10 @@ class UIVhostBlk(UIVhost):
|
||||
readonly - Whether controller should be read only or not.
|
||||
Default: False.
|
||||
"""
|
||||
try:
|
||||
self.get_root().create_vhost_blk_controller(ctrlr=name,
|
||||
dev_name=bdev,
|
||||
cpumask=cpumask,
|
||||
readonly=bool(readonly))
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
|
||||
self.get_root().refresh()
|
||||
self.refresh()
|
||||
self.get_root().create_vhost_blk_controller(ctrlr=name,
|
||||
dev_name=bdev,
|
||||
cpumask=cpumask,
|
||||
readonly=bool(readonly))
|
||||
|
||||
|
||||
class UIVhostScsi(UIVhost):
|
||||
@ -859,14 +697,8 @@ class UIVhostScsi(UIVhost):
|
||||
cpumask - Optional. Integer to specify mask of CPUs to use.
|
||||
Default: 1.
|
||||
"""
|
||||
try:
|
||||
self.get_root().create_vhost_scsi_controller(ctrlr=name,
|
||||
cpumask=cpumask)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
|
||||
self.get_root().refresh()
|
||||
self.refresh()
|
||||
self.get_root().create_vhost_scsi_controller(ctrlr=name,
|
||||
cpumask=cpumask)
|
||||
|
||||
|
||||
class UIVhostCtrl(UINode):
|
||||
@ -883,12 +715,9 @@ class UIVhostCtrl(UINode):
|
||||
delay_base_us = self.ui_eval_param(delay_base_us, "number", None)
|
||||
iops_threshold = self.ui_eval_param(iops_threshold, "number", None)
|
||||
|
||||
try:
|
||||
self.get_root().set_vhost_controller_coalescing(ctrlr=self.ctrlr.ctrlr,
|
||||
delay_base_us=delay_base_us,
|
||||
iops_threshold=iops_threshold)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
self.get_root().set_vhost_controller_coalescing(ctrlr=self.ctrlr.ctrlr,
|
||||
delay_base_us=delay_base_us,
|
||||
iops_threshold=iops_threshold)
|
||||
|
||||
|
||||
class UIVhostScsiCtrlObj(UIVhostCtrl):
|
||||
@ -904,17 +733,11 @@ class UIVhostScsiCtrlObj(UIVhostCtrl):
|
||||
Arguments:
|
||||
target_num - Integer identifier of target node to delete.
|
||||
"""
|
||||
try:
|
||||
self.get_root().remove_vhost_scsi_target(ctrlr=self.ctrlr.ctrlr,
|
||||
scsi_target_num=int(target_num))
|
||||
for ctrlr in self.get_root().get_vhost_controllers(ctrlr_type="scsi"):
|
||||
if ctrlr.ctrlr == self.ctrlr.ctrlr:
|
||||
self.ctrlr = ctrlr
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
|
||||
self.refresh()
|
||||
self.get_root().refresh()
|
||||
self.get_root().remove_vhost_scsi_target(ctrlr=self.ctrlr.ctrlr,
|
||||
scsi_target_num=int(target_num))
|
||||
for ctrlr in self.get_root().get_vhost_controllers(ctrlr_type="scsi"):
|
||||
if ctrlr.ctrlr == self.ctrlr.ctrlr:
|
||||
self.ctrlr = ctrlr
|
||||
|
||||
def ui_command_add_lun(self, target_num, bdev_name):
|
||||
"""
|
||||
@ -926,17 +749,12 @@ class UIVhostScsiCtrlObj(UIVhostCtrl):
|
||||
target_num - Integer identifier of target node to modify.
|
||||
bdev - Which bdev to add as LUN.
|
||||
"""
|
||||
try:
|
||||
self.get_root().add_vhost_scsi_lun(ctrlr=self.ctrlr.ctrlr,
|
||||
scsi_target_num=int(target_num),
|
||||
bdev_name=bdev_name)
|
||||
for ctrlr in self.get_root().get_vhost_controllers(ctrlr_type="scsi"):
|
||||
if ctrlr.ctrlr == self.ctrlr.ctrlr:
|
||||
self.ctrlr = ctrlr
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
|
||||
self.refresh()
|
||||
self.get_root().add_vhost_scsi_lun(ctrlr=self.ctrlr.ctrlr,
|
||||
scsi_target_num=int(target_num),
|
||||
bdev_name=bdev_name)
|
||||
for ctrlr in self.get_root().get_vhost_controllers(ctrlr_type="scsi"):
|
||||
if ctrlr.ctrlr == self.ctrlr.ctrlr:
|
||||
self.ctrlr = ctrlr
|
||||
|
||||
def summary(self):
|
||||
info = self.ctrlr.socket
|
||||
|
@ -43,13 +43,9 @@ class UIISCSIGlobalParams(UINode):
|
||||
disable_chap = self.ui_eval_param(d, "bool", None)
|
||||
require_chap = self.ui_eval_param(r, "bool", None)
|
||||
mutual_chap = self.ui_eval_param(m, "bool", None)
|
||||
try:
|
||||
self.get_root().set_iscsi_discovery_auth(
|
||||
chap_group=chap_group, disable_chap=disable_chap,
|
||||
require_chap=require_chap, mutual_chap=mutual_chap)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
self.refresh()
|
||||
self.get_root().set_iscsi_discovery_auth(
|
||||
chap_group=chap_group, disable_chap=disable_chap,
|
||||
require_chap=require_chap, mutual_chap=mutual_chap)
|
||||
|
||||
|
||||
class UIISCSIGlobalParam(UINode):
|
||||
@ -74,10 +70,7 @@ class UIISCSIDevices(UINode):
|
||||
UIISCSIDevice(device, node, self)
|
||||
|
||||
def delete(self, name):
|
||||
try:
|
||||
self.get_root().delete_target_node(target_node_name=name)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
self.get_root().delete_target_node(target_node_name=name)
|
||||
|
||||
def ui_command_create(self, name, alias_name, bdev_name_id_pairs,
|
||||
pg_ig_mappings, queue_depth, g=None, d=None, r=None,
|
||||
@ -115,17 +108,12 @@ class UIISCSIDevices(UINode):
|
||||
mutual_chap = self.ui_eval_param(m, "bool", None)
|
||||
header_digest = self.ui_eval_param(h, "bool", None)
|
||||
data_digest = self.ui_eval_param(t, "bool", None)
|
||||
try:
|
||||
self.get_root().construct_target_node(
|
||||
name=name, alias_name=alias_name, luns=luns,
|
||||
pg_ig_maps=pg_ig_maps, queue_depth=queue_depth,
|
||||
chap_group=chap_group, disable_chap=disable_chap,
|
||||
require_chap=require_chap, mutual_chap=mutual_chap,
|
||||
header_digest=header_digest, data_digest=data_digest)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
|
||||
self.refresh()
|
||||
self.get_root().construct_target_node(
|
||||
name=name, alias_name=alias_name, luns=luns,
|
||||
pg_ig_maps=pg_ig_maps, queue_depth=queue_depth,
|
||||
chap_group=chap_group, disable_chap=disable_chap,
|
||||
require_chap=require_chap, mutual_chap=mutual_chap,
|
||||
header_digest=header_digest, data_digest=data_digest)
|
||||
|
||||
def ui_command_delete(self, name=None):
|
||||
"""Delete a target node. If name is not specified delete all target nodes.
|
||||
@ -134,13 +122,11 @@ class UIISCSIDevices(UINode):
|
||||
name - Target node name.
|
||||
"""
|
||||
self.delete(name)
|
||||
self.refresh()
|
||||
|
||||
def ui_command_delete_all(self):
|
||||
"""Delete all target nodes"""
|
||||
for device in self.scsi_devices:
|
||||
self.delete(device.device_name)
|
||||
self.refresh()
|
||||
|
||||
def ui_command_add_lun(self, name, bdev_name, lun_id=None):
|
||||
"""Add lun to the target node.
|
||||
@ -153,12 +139,8 @@ class UIISCSIDevices(UINode):
|
||||
"""
|
||||
if lun_id:
|
||||
lun_id = self.ui_eval_param(lun_id, "number", None)
|
||||
try:
|
||||
self.get_root().target_node_add_lun(
|
||||
name=name, bdev_name=bdev_name, lun_id=lun_id)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
self.parent.refresh()
|
||||
self.get_root().target_node_add_lun(
|
||||
name=name, bdev_name=bdev_name, lun_id=lun_id)
|
||||
|
||||
def summary(self):
|
||||
count = 0
|
||||
@ -190,14 +172,10 @@ class UIISCSIDevice(UINode):
|
||||
disable_chap = self.ui_eval_param(d, "bool", None)
|
||||
require_chap = self.ui_eval_param(r, "bool", None)
|
||||
mutual_chap = self.ui_eval_param(m, "bool", None)
|
||||
try:
|
||||
self.get_root().set_iscsi_target_node_auth(
|
||||
name=self.device.device_name, chap_group=chap_group,
|
||||
disable_chap=disable_chap,
|
||||
require_chap=require_chap, mutual_chap=mutual_chap)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
self.parent.refresh()
|
||||
self.get_root().set_iscsi_target_node_auth(
|
||||
name=self.device.device_name, chap_group=chap_group,
|
||||
disable_chap=disable_chap,
|
||||
require_chap=require_chap, mutual_chap=mutual_chap)
|
||||
|
||||
def ui_command_add_pg_ig_maps(self, pg_ig_mappings):
|
||||
"""Add PG-IG maps to the target node.
|
||||
@ -209,12 +187,8 @@ class UIISCSIDevice(UINode):
|
||||
for u in pg_ig_mappings.strip().split(" "):
|
||||
pg, ig = u.split(":")
|
||||
pg_ig_maps.append({"pg_tag": int(pg), "ig_tag": int(ig)})
|
||||
try:
|
||||
self.get_root().add_pg_ig_maps(
|
||||
pg_ig_maps=pg_ig_maps, name=self.device.device_name)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
self.parent.refresh()
|
||||
self.get_root().add_pg_ig_maps(
|
||||
pg_ig_maps=pg_ig_maps, name=self.device.device_name)
|
||||
|
||||
def ui_command_delete_pg_ig_maps(self, pg_ig_mappings):
|
||||
"""Add PG-IG maps to the target node.
|
||||
@ -226,12 +200,8 @@ class UIISCSIDevice(UINode):
|
||||
for u in pg_ig_mappings.strip().split(" "):
|
||||
pg, ig = u.split(":")
|
||||
pg_ig_maps.append({"pg_tag": int(pg), "ig_tag": int(ig)})
|
||||
try:
|
||||
self.get_root().delete_pg_ig_maps(
|
||||
pg_ig_maps=pg_ig_maps, name=self.device.device_name)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
self.parent.refresh()
|
||||
self.get_root().delete_pg_ig_maps(
|
||||
pg_ig_maps=pg_ig_maps, name=self.device.device_name)
|
||||
|
||||
def refresh(self):
|
||||
self._children = set([])
|
||||
@ -315,10 +285,7 @@ class UIPortalGroups(UINode):
|
||||
self.refresh()
|
||||
|
||||
def delete(self, tag):
|
||||
try:
|
||||
self.get_root().delete_portal_group(tag=tag)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
self.get_root().delete_portal_group(tag=tag)
|
||||
|
||||
def ui_command_create(self, tag, portal_list):
|
||||
"""Add a portal group.
|
||||
@ -338,24 +305,17 @@ class UIPortalGroups(UINode):
|
||||
if cpumask:
|
||||
portals[-1]['cpumask'] = cpumask
|
||||
tag = self.ui_eval_param(tag, "number", None)
|
||||
try:
|
||||
self.get_root().construct_portal_group(tag=tag, portals=portals)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
|
||||
self.refresh()
|
||||
self.get_root().construct_portal_group(tag=tag, portals=portals)
|
||||
|
||||
def ui_command_delete(self, tag):
|
||||
"""Delete a portal group with given tag (unique, integer > 0))"""
|
||||
tag = self.ui_eval_param(tag, "number", None)
|
||||
self.delete(tag)
|
||||
self.refresh()
|
||||
|
||||
def ui_command_delete_all(self):
|
||||
"""Delete all portal groups"""
|
||||
for pg in self.pgs:
|
||||
self.delete(pg.tag)
|
||||
self.refresh()
|
||||
|
||||
def refresh(self):
|
||||
self._children = set([])
|
||||
@ -395,10 +355,7 @@ class UIInitiatorGroups(UINode):
|
||||
self.refresh()
|
||||
|
||||
def delete(self, tag):
|
||||
try:
|
||||
self.get_root().delete_initiator_group(tag=tag)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
self.get_root().delete_initiator_group(tag=tag)
|
||||
|
||||
def ui_command_create(self, tag, initiator_list, netmask_list):
|
||||
"""Add an initiator group.
|
||||
@ -411,14 +368,9 @@ class UIInitiatorGroups(UINode):
|
||||
e.g. 255.255.0.0 255.248.0.0
|
||||
"""
|
||||
tag = self.ui_eval_param(tag, "number", None)
|
||||
try:
|
||||
self.get_root().construct_initiator_group(
|
||||
tag=tag, initiators=initiator_list.split(" "),
|
||||
netmasks=netmask_list.split(" "))
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
|
||||
self.refresh()
|
||||
self.get_root().construct_initiator_group(
|
||||
tag=tag, initiators=initiator_list.split(" "),
|
||||
netmasks=netmask_list.split(" "))
|
||||
|
||||
def ui_command_delete(self, tag):
|
||||
"""Delete an initiator group.
|
||||
@ -428,13 +380,11 @@ class UIInitiatorGroups(UINode):
|
||||
"""
|
||||
tag = self.ui_eval_param(tag, "number", None)
|
||||
self.delete(tag)
|
||||
self.refresh()
|
||||
|
||||
def ui_command_delete_all(self):
|
||||
"""Delete all initiator groups"""
|
||||
for ig in self.igs:
|
||||
self.delete(ig.tag)
|
||||
self.refresh()
|
||||
|
||||
def ui_command_add_initiator(self, tag, initiators, netmasks):
|
||||
"""Add initiators to an existing initiator group.
|
||||
@ -447,14 +397,9 @@ class UIInitiatorGroups(UINode):
|
||||
e.g. 255.255.0.0 255.248.0.0
|
||||
"""
|
||||
tag = self.ui_eval_param(tag, "number", None)
|
||||
try:
|
||||
self.get_root().add_initiators_to_initiator_group(
|
||||
tag=tag, initiators=initiators.split(" "),
|
||||
netmasks=netmasks.split(" "))
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
|
||||
self.refresh()
|
||||
self.get_root().add_initiators_to_initiator_group(
|
||||
tag=tag, initiators=initiators.split(" "),
|
||||
netmasks=netmasks.split(" "))
|
||||
|
||||
def ui_command_delete_initiator(self, tag, initiators=None, netmasks=None):
|
||||
"""Delete initiators from an existing initiator group.
|
||||
@ -469,14 +414,9 @@ class UIInitiatorGroups(UINode):
|
||||
initiators = initiators.split(" ")
|
||||
if netmasks:
|
||||
netmasks = netmasks.split(" ")
|
||||
try:
|
||||
self.get_root().delete_initiators_from_initiator_group(
|
||||
tag=tag, initiators=initiators,
|
||||
netmasks=netmasks)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
|
||||
self.refresh()
|
||||
self.get_root().delete_initiators_from_initiator_group(
|
||||
tag=tag, initiators=initiators,
|
||||
netmasks=netmasks)
|
||||
|
||||
def refresh(self):
|
||||
self._children = set([])
|
||||
@ -558,17 +498,11 @@ class UIISCSIAuthGroups(UINode):
|
||||
UIISCSIAuthGroup(ag, self)
|
||||
|
||||
def delete(self, tag):
|
||||
try:
|
||||
self.get_root().delete_iscsi_auth_group(tag=tag)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
self.get_root().delete_iscsi_auth_group(tag=tag)
|
||||
|
||||
def delete_secret(self, tag, user):
|
||||
try:
|
||||
self.get_root().delete_secret_from_iscsi_auth_group(
|
||||
tag=tag, user=user)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
self.get_root().delete_secret_from_iscsi_auth_group(
|
||||
tag=tag, user=user)
|
||||
|
||||
def ui_command_create(self, tag, secrets=None):
|
||||
"""Add authentication group for CHAP authentication.
|
||||
@ -583,12 +517,7 @@ class UIISCSIAuthGroups(UINode):
|
||||
if secrets:
|
||||
secrets = [dict(u.split(":") for u in a.split(" "))
|
||||
for a in secrets.split(",")]
|
||||
try:
|
||||
self.get_root().add_iscsi_auth_group(tag=tag, secrets=secrets)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
|
||||
self.refresh()
|
||||
self.get_root().add_iscsi_auth_group(tag=tag, secrets=secrets)
|
||||
|
||||
def ui_command_delete(self, tag):
|
||||
"""Delete an authentication group.
|
||||
@ -598,13 +527,11 @@ class UIISCSIAuthGroups(UINode):
|
||||
"""
|
||||
tag = self.ui_eval_param(tag, "number", None)
|
||||
self.delete(tag)
|
||||
self.refresh()
|
||||
|
||||
def ui_command_delete_all(self):
|
||||
"""Delete all authentication groups."""
|
||||
for iscsi_auth_group in self.iscsi_auth_groups:
|
||||
self.delete(iscsi_auth_group['tag'])
|
||||
self.refresh()
|
||||
|
||||
def ui_command_add_secret(self, tag, user, secret,
|
||||
muser=None, msecret=None):
|
||||
@ -619,13 +546,9 @@ class UIISCSIAuthGroups(UINode):
|
||||
msecret: Secret for mutual CHAP authentication
|
||||
"""
|
||||
tag = self.ui_eval_param(tag, "number", None)
|
||||
try:
|
||||
self.get_root().add_secret_to_iscsi_auth_group(
|
||||
tag=tag, user=user, secret=secret,
|
||||
muser=muser, msecret=msecret)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
self.refresh()
|
||||
self.get_root().add_secret_to_iscsi_auth_group(
|
||||
tag=tag, user=user, secret=secret,
|
||||
muser=muser, msecret=msecret)
|
||||
|
||||
def ui_command_delete_secret(self, tag, user):
|
||||
"""Delete a secret from an authentication group.
|
||||
@ -636,7 +559,6 @@ class UIISCSIAuthGroups(UINode):
|
||||
"""
|
||||
tag = self.ui_eval_param(tag, "number", None)
|
||||
self.delete_secret(tag, user)
|
||||
self.refresh()
|
||||
|
||||
def ui_command_delete_secret_all(self, tag):
|
||||
"""Delete all secrets from an authentication group.
|
||||
@ -649,7 +571,6 @@ class UIISCSIAuthGroups(UINode):
|
||||
if ag['tag'] == tag:
|
||||
for secret in ag['secrets']:
|
||||
self.delete_secret(tag, secret['user'])
|
||||
self.refresh()
|
||||
|
||||
def summary(self):
|
||||
return "Groups: %s" % len(self.iscsi_auth_groups), None
|
||||
|
@ -42,17 +42,14 @@ class UINVMfTransports(UINode):
|
||||
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()
|
||||
|
||||
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)
|
||||
|
||||
def summary(self):
|
||||
return "Transports: %s" % len(self.children), None
|
||||
@ -75,10 +72,7 @@ class UINVMfSubsystems(UINode):
|
||||
UINVMfSubsystem(subsystem, self)
|
||||
|
||||
def delete(self, subsystem_nqn):
|
||||
try:
|
||||
self.get_root().delete_nvmf_subsystem(nqn=subsystem_nqn)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
self.get_root().delete_nvmf_subsystem(nqn=subsystem_nqn)
|
||||
|
||||
def ui_command_create(self, nqn, serial_number=None,
|
||||
max_namespaces=None, allow_any_host="false"):
|
||||
@ -94,13 +88,9 @@ class UINVMfSubsystems(UINode):
|
||||
"""
|
||||
allow_any_host = self.ui_eval_param(allow_any_host, "bool", False)
|
||||
max_namespaces = self.ui_eval_param(max_namespaces, "number", 0)
|
||||
try:
|
||||
self.get_root().create_nvmf_subsystem(nqn=nqn, serial_number=serial_number,
|
||||
allow_any_host=allow_any_host,
|
||||
max_namespaces=max_namespaces)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
self.refresh()
|
||||
self.get_root().create_nvmf_subsystem(nqn=nqn, serial_number=serial_number,
|
||||
allow_any_host=allow_any_host,
|
||||
max_namespaces=max_namespaces)
|
||||
|
||||
def ui_command_delete(self, subsystem_nqn):
|
||||
"""Delete subsystem with given nqn.
|
||||
@ -109,13 +99,11 @@ class UINVMfSubsystems(UINode):
|
||||
nqn_subsystem - Name of susbsytem to delete
|
||||
"""
|
||||
self.delete(subsystem_nqn)
|
||||
self.refresh()
|
||||
|
||||
def ui_command_delete_all(self):
|
||||
"""Delete all subsystems"""
|
||||
for child in self._children:
|
||||
self.delete(child.subsystem.nqn)
|
||||
self.refresh()
|
||||
|
||||
def summary(self):
|
||||
return "Subsystems: %s" % len(self.children), None
|
||||
@ -150,13 +138,8 @@ class UINVMfSubsystem(UINode):
|
||||
disable - Optional parameter. If false then enable, if true disable
|
||||
"""
|
||||
disable = self.ui_eval_param(disable, "bool", None)
|
||||
try:
|
||||
self.get_root().nvmf_subsystem_allow_any_host(
|
||||
nqn=self.subsystem.nqn, disable=disable)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
self.get_root().refresh()
|
||||
self.refresh_node()
|
||||
self.get_root().nvmf_subsystem_allow_any_host(
|
||||
nqn=self.subsystem.nqn, disable=disable)
|
||||
|
||||
def summary(self):
|
||||
sn = None
|
||||
@ -190,12 +173,9 @@ class UINVMfSubsystemListeners(UINode):
|
||||
self.refresh()
|
||||
|
||||
def delete(self, trtype, traddr, trsvcid, adrfam=None):
|
||||
try:
|
||||
self.get_root().nvmf_subsystem_remove_listener(
|
||||
nqn=self.parent.subsystem.nqn, trtype=trtype,
|
||||
traddr=traddr, trsvcid=trsvcid, adrfam=adrfam)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
self.get_root().nvmf_subsystem_remove_listener(
|
||||
nqn=self.parent.subsystem.nqn, trtype=trtype,
|
||||
traddr=traddr, trsvcid=trsvcid, adrfam=adrfam)
|
||||
|
||||
def ui_command_create(self, trtype, traddr, trsvcid, adrfam):
|
||||
"""Create address listener for subsystem.
|
||||
@ -206,14 +186,9 @@ class UINVMfSubsystemListeners(UINode):
|
||||
trsvcid - NVMe-oF transport service id: e.g., a port number.
|
||||
adrfam - NVMe-oF transport adrfam: e.g., ipv4, ipv6, ib, fc.
|
||||
"""
|
||||
try:
|
||||
self.get_root().nvmf_subsystem_add_listener(
|
||||
nqn=self.parent.subsystem.nqn, trtype=trtype, traddr=traddr,
|
||||
trsvcid=trsvcid, adrfam=adrfam)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
self.get_root().refresh()
|
||||
self.refresh_node()
|
||||
self.get_root().nvmf_subsystem_add_listener(
|
||||
nqn=self.parent.subsystem.nqn, trtype=trtype, traddr=traddr,
|
||||
trsvcid=trsvcid, adrfam=adrfam)
|
||||
|
||||
def ui_command_delete(self, trtype, traddr, trsvcid, adrfam=None):
|
||||
"""Remove address listener for subsystem.
|
||||
@ -225,15 +200,11 @@ class UINVMfSubsystemListeners(UINode):
|
||||
adrfam - Optional argument. Address family ("IPv4", "IPv6", "IB" or "FC").
|
||||
"""
|
||||
self.delete(trtype, traddr, trsvcid, adrfam)
|
||||
self.get_root().refresh()
|
||||
self.refresh_node()
|
||||
|
||||
def ui_command_delete_all(self):
|
||||
"""Remove all address listeners from subsystem."""
|
||||
for la in self.listen_addresses:
|
||||
self.delete(la['trtype'], la['traddr'], la['trsvcid'], la['adrfam'])
|
||||
self.get_root().refresh()
|
||||
self.refresh_node()
|
||||
|
||||
def summary(self):
|
||||
return "Addresses: %s" % len(self.listen_addresses), None
|
||||
@ -267,11 +238,8 @@ class UINVMfSubsystemHosts(UINode):
|
||||
self.refresh()
|
||||
|
||||
def delete(self, host):
|
||||
try:
|
||||
self.get_root().nvmf_subsystem_remove_host(
|
||||
nqn=self.parent.subsystem.nqn, host=host)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
self.get_root().nvmf_subsystem_remove_host(
|
||||
nqn=self.parent.subsystem.nqn, host=host)
|
||||
|
||||
def ui_command_create(self, host):
|
||||
"""Add a host NQN to the whitelist of allowed hosts.
|
||||
@ -279,13 +247,8 @@ class UINVMfSubsystemHosts(UINode):
|
||||
Args:
|
||||
host: Host NQN to add to the list of allowed host NQNs
|
||||
"""
|
||||
try:
|
||||
self.get_root().nvmf_subsystem_add_host(
|
||||
nqn=self.parent.subsystem.nqn, host=host)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
self.get_root().refresh()
|
||||
self.refresh_node()
|
||||
self.get_root().nvmf_subsystem_add_host(
|
||||
nqn=self.parent.subsystem.nqn, host=host)
|
||||
|
||||
def ui_command_delete(self, host):
|
||||
"""Delete host from subsystem.
|
||||
@ -294,15 +257,11 @@ class UINVMfSubsystemHosts(UINode):
|
||||
host - NQN of host to remove.
|
||||
"""
|
||||
self.delete(host)
|
||||
self.get_root().refresh()
|
||||
self.refresh_node()
|
||||
|
||||
def ui_command_delete_all(self):
|
||||
"""Delete host from subsystem"""
|
||||
for host in self.hosts:
|
||||
self.delete(host['nqn'])
|
||||
self.get_root().refresh()
|
||||
self.refresh_node()
|
||||
|
||||
def summary(self):
|
||||
return "Hosts: %s" % len(self.hosts), None
|
||||
@ -332,11 +291,8 @@ class UINVMfSubsystemNamespaces(UINode):
|
||||
self.refresh()
|
||||
|
||||
def delete(self, nsid):
|
||||
try:
|
||||
self.get_root().nvmf_subsystem_remove_ns(
|
||||
nqn=self.parent.subsystem.nqn, nsid=nsid)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
self.get_root().nvmf_subsystem_remove_ns(
|
||||
nqn=self.parent.subsystem.nqn, nsid=nsid)
|
||||
|
||||
def ui_command_create(self, bdev_name, nsid=None,
|
||||
nguid=None, eui64=None, uuid=None):
|
||||
@ -351,14 +307,9 @@ class UINVMfSubsystemNamespaces(UINode):
|
||||
uuid: Namespace UUID.
|
||||
"""
|
||||
nsid = self.ui_eval_param(nsid, "number", None)
|
||||
try:
|
||||
self.get_root().nvmf_subsystem_add_ns(
|
||||
nqn=self.parent.subsystem.nqn, bdev_name=bdev_name,
|
||||
nsid=nsid, nguid=nguid, eui64=eui64, uuid=uuid)
|
||||
except JSONRPCException as e:
|
||||
self.shell.log.error(e.message)
|
||||
self.get_root().refresh()
|
||||
self.refresh_node()
|
||||
self.get_root().nvmf_subsystem_add_ns(
|
||||
nqn=self.parent.subsystem.nqn, bdev_name=bdev_name,
|
||||
nsid=nsid, nguid=nguid, eui64=eui64, uuid=uuid)
|
||||
|
||||
def ui_command_delete(self, nsid):
|
||||
"""Delete namespace from subsystem.
|
||||
@ -368,15 +319,11 @@ class UINVMfSubsystemNamespaces(UINode):
|
||||
"""
|
||||
nsid = self.ui_eval_param(nsid, "number", None)
|
||||
self.delete(nsid)
|
||||
self.get_root().refresh()
|
||||
self.refresh_node()
|
||||
|
||||
def ui_command_delete_all(self):
|
||||
"""Delete all namespaces from subsystem."""
|
||||
for namespace in self.namespaces:
|
||||
self.delete(namespace['nsid'])
|
||||
self.get_root().refresh()
|
||||
self.refresh_node()
|
||||
|
||||
def summary(self):
|
||||
return "Namespaces: %s" % len(self.namespaces), None
|
||||
|
Loading…
Reference in New Issue
Block a user