diff --git a/scripts/spdkcli/ui_node.py b/scripts/spdkcli/ui_node.py index 051c4d31c..d5f323066 100644 --- a/scripts/spdkcli/ui_node.py +++ b/scripts/spdkcli/ui_node.py @@ -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 diff --git a/scripts/spdkcli/ui_node_iscsi.py b/scripts/spdkcli/ui_node_iscsi.py index 5208d8419..d3e153675 100644 --- a/scripts/spdkcli/ui_node_iscsi.py +++ b/scripts/spdkcli/ui_node_iscsi.py @@ -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 diff --git a/scripts/spdkcli/ui_node_nvmf.py b/scripts/spdkcli/ui_node_nvmf.py index c979c2478..b689e23d0 100644 --- a/scripts/spdkcli/ui_node_nvmf.py +++ b/scripts/spdkcli/ui_node_nvmf.py @@ -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