From f7cb69cb604cca4dc14e688efe21bafe887ea4ce Mon Sep 17 00:00:00 2001 From: Pawel Wodkowski Date: Thu, 29 Nov 2018 12:08:31 +0100 Subject: [PATCH] scripts/rpc: remove call_cmd decorator This decorator is not needed. This also removes one exit point in case of exception. Change-Id: I7e1492cf9cccdb891dd70494652e0bc86a8bbcca Signed-off-by: Pawel Wodkowski Reviewed-on: https://review.gerrithub.io/435469 Tested-by: SPDK CI Jenkins Chandler-Test-Pool: SPDK Automated Test System Reviewed-by: Jim Harris Reviewed-by: Shuhei Matsumoto Reviewed-by: Ben Walker --- scripts/rpc.py | 150 +------------------------------------------------ 1 file changed, 2 insertions(+), 148 deletions(-) diff --git a/scripts/rpc.py b/scripts/rpc.py index 9c1f108c0..28e0d0a2d 100755 --- a/scripts/rpc.py +++ b/scripts/rpc.py @@ -16,16 +16,6 @@ def print_array(a): print(" ".join((quote(v) for v in a))) -def call_cmd(func): - def rpc_cmd(*args, **kwargs): - try: - func(*args, **kwargs) - except JSONRPCException as ex: - print(ex.message) - exit(1) - return rpc_cmd - - if __name__ == "__main__": parser = argparse.ArgumentParser( description='SPDK RPC command line interface') @@ -41,21 +31,18 @@ if __name__ == "__main__": help='Verbose mode', action='store_true') subparsers = parser.add_subparsers(help='RPC methods') - @call_cmd def start_subsystem_init(args): rpc.start_subsystem_init(args.client) p = subparsers.add_parser('start_subsystem_init', help='Start initialization of subsystems') p.set_defaults(func=start_subsystem_init) - @call_cmd def wait_subsystem_init(args): rpc.wait_subsystem_init(args.client) p = subparsers.add_parser('wait_subsystem_init', help='Block until subsystems have been initialized') p.set_defaults(func=wait_subsystem_init) - @call_cmd def get_rpc_methods(args): print_dict(rpc.get_rpc_methods(args.client, current=args.current)) @@ -64,7 +51,6 @@ if __name__ == "__main__": p.add_argument('-c', '--current', help='Get list of RPC methods only callable in the current state.', action='store_true') p.set_defaults(func=get_rpc_methods) - @call_cmd def save_config(args): rpc.save_config(args.client, sys.stdout, @@ -76,14 +62,12 @@ if __name__ == "__main__": """, type=int, default=2) p.set_defaults(func=save_config) - @call_cmd def load_config(args): rpc.load_config(args.client, sys.stdin) p = subparsers.add_parser('load_config', help="""Configure SPDK subsystems and targets using JSON RPC read from stdin.""") p.set_defaults(func=load_config) - @call_cmd def save_subsystem_config(args): rpc.save_subsystem_config(args.client, sys.stdout, @@ -97,7 +81,6 @@ if __name__ == "__main__": p.add_argument('-n', '--name', help='Name of subsystem', required=True) p.set_defaults(func=save_subsystem_config) - @call_cmd def load_subsystem_config(args): rpc.load_subsystem_config(args.client, sys.stdin) @@ -106,7 +89,6 @@ if __name__ == "__main__": p.set_defaults(func=load_subsystem_config) # app - @call_cmd def kill_instance(args): rpc.app.kill_instance(args.client, sig_name=args.sig_name) @@ -115,7 +97,6 @@ if __name__ == "__main__": p.add_argument('sig_name', help='signal will be sent to server.') p.set_defaults(func=kill_instance) - @call_cmd def context_switch_monitor(args): enabled = None if args.enable: @@ -131,7 +112,6 @@ if __name__ == "__main__": p.set_defaults(func=context_switch_monitor) # bdev - @call_cmd def set_bdev_options(args): rpc.bdev.set_bdev_options(args.client, bdev_io_pool_size=args.bdev_io_pool_size, @@ -142,7 +122,6 @@ if __name__ == "__main__": p.add_argument('-c', '--bdev-io-cache-size', help='Maximum number of bdev_io structures cached per thread', type=int) p.set_defaults(func=set_bdev_options) - @call_cmd def construct_crypto_bdev(args): print(rpc.bdev.construct_crypto_bdev(args.client, base_bdev_name=args.base_bdev_name, @@ -157,7 +136,6 @@ if __name__ == "__main__": p.add_argument('-k', '--key', help="Key") p.set_defaults(func=construct_crypto_bdev) - @call_cmd def delete_crypto_bdev(args): rpc.bdev.delete_crypto_bdev(args.client, name=args.name) @@ -166,7 +144,6 @@ if __name__ == "__main__": p.add_argument('name', help='crypto bdev name') p.set_defaults(func=delete_crypto_bdev) - @call_cmd def construct_malloc_bdev(args): num_blocks = (args.total_size * 1024 * 1024) // args.block_size print(rpc.bdev.construct_malloc_bdev(args.client, @@ -183,7 +160,6 @@ if __name__ == "__main__": p.add_argument('block_size', help='Block size for this bdev', type=int) p.set_defaults(func=construct_malloc_bdev) - @call_cmd def delete_malloc_bdev(args): rpc.bdev.delete_malloc_bdev(args.client, name=args.name) @@ -192,7 +168,6 @@ if __name__ == "__main__": p.add_argument('name', help='malloc bdev name') p.set_defaults(func=delete_malloc_bdev) - @call_cmd def construct_null_bdev(args): num_blocks = (args.total_size * 1024 * 1024) // args.block_size print(rpc.bdev.construct_null_bdev(args.client, @@ -210,7 +185,6 @@ if __name__ == "__main__": p.add_argument('block_size', help='Block size for this bdev', type=int) p.set_defaults(func=construct_null_bdev) - @call_cmd def delete_null_bdev(args): rpc.bdev.delete_null_bdev(args.client, name=args.name) @@ -219,7 +193,6 @@ if __name__ == "__main__": p.add_argument('name', help='null bdev name') p.set_defaults(func=delete_null_bdev) - @call_cmd def construct_aio_bdev(args): print(rpc.bdev.construct_aio_bdev(args.client, filename=args.filename, @@ -233,7 +206,6 @@ if __name__ == "__main__": p.add_argument('block_size', help='Block size for this bdev', type=int, nargs='?', default=0) p.set_defaults(func=construct_aio_bdev) - @call_cmd def delete_aio_bdev(args): rpc.bdev.delete_aio_bdev(args.client, name=args.name) @@ -242,7 +214,6 @@ if __name__ == "__main__": p.add_argument('name', help='aio bdev name') p.set_defaults(func=delete_aio_bdev) - @call_cmd def set_bdev_nvme_options(args): rpc.bdev.set_bdev_nvme_options(args.client, action_on_timeout=args.action_on_timeout, @@ -262,7 +233,6 @@ if __name__ == "__main__": help='How often the admin queue is polled for asynchronous events', type=int) p.set_defaults(func=set_bdev_nvme_options) - @call_cmd def set_bdev_nvme_hotplug(args): rpc.bdev.set_bdev_nvme_hotplug(args.client, enable=args.enable, period_us=args.period_us) @@ -274,7 +244,6 @@ if __name__ == "__main__": help='How often the hotplug is processed for insert and remove events', type=int) p.set_defaults(func=set_bdev_nvme_hotplug) - @call_cmd def construct_nvme_bdev(args): print_array(rpc.bdev.construct_nvme_bdev(args.client, name=args.name, @@ -298,7 +267,6 @@ if __name__ == "__main__": p.add_argument('-n', '--subnqn', help='NVMe-oF target subnqn') p.set_defaults(func=construct_nvme_bdev) - @call_cmd def get_nvme_controllers(args): print_dict(rpc.nvme.get_nvme_controllers(args.client, name=args.name)) @@ -308,7 +276,6 @@ if __name__ == "__main__": p.add_argument('-n', '--name', help="Name of the NVMe controller. Example: Nvme0", required=False) p.set_defaults(func=get_nvme_controllers) - @call_cmd def delete_nvme_controller(args): rpc.bdev.delete_nvme_controller(args.client, name=args.name) @@ -318,7 +285,6 @@ if __name__ == "__main__": p.add_argument('name', help="Name of the controller") p.set_defaults(func=delete_nvme_controller) - @call_cmd def construct_rbd_bdev(args): print(rpc.bdev.construct_rbd_bdev(args.client, name=args.name, @@ -334,7 +300,6 @@ if __name__ == "__main__": p.add_argument('block_size', help='rbd block size', type=int) p.set_defaults(func=construct_rbd_bdev) - @call_cmd def delete_rbd_bdev(args): rpc.bdev.delete_rbd_bdev(args.client, name=args.name) @@ -343,7 +308,6 @@ if __name__ == "__main__": p.add_argument('name', help='rbd bdev name') p.set_defaults(func=delete_rbd_bdev) - @call_cmd def construct_error_bdev(args): print(rpc.bdev.construct_error_bdev(args.client, base_name=args.base_name)) @@ -353,7 +317,6 @@ if __name__ == "__main__": p.add_argument('base_name', help='base bdev name') p.set_defaults(func=construct_error_bdev) - @call_cmd def delete_error_bdev(args): rpc.bdev.delete_error_bdev(args.client, name=args.name) @@ -362,7 +325,6 @@ if __name__ == "__main__": p.add_argument('name', help='error bdev name') p.set_defaults(func=delete_error_bdev) - @call_cmd def construct_iscsi_bdev(args): print(rpc.bdev.construct_iscsi_bdev(args.client, name=args.name, @@ -376,7 +338,6 @@ if __name__ == "__main__": p.add_argument('--url', help="iSCSI Lun URL", required=True) p.set_defaults(func=construct_iscsi_bdev) - @call_cmd def delete_iscsi_bdev(args): rpc.bdev.delete_iscsi_bdev(args.client, name=args.name) @@ -385,7 +346,6 @@ if __name__ == "__main__": p.add_argument('name', help='iSCSI bdev name') p.set_defaults(func=delete_iscsi_bdev) - @call_cmd def construct_pmem_bdev(args): print(rpc.bdev.construct_pmem_bdev(args.client, pmem_file=args.pmem_file, @@ -396,7 +356,6 @@ if __name__ == "__main__": p.add_argument('-n', '--name', help='Block device name', required=True) p.set_defaults(func=construct_pmem_bdev) - @call_cmd def delete_pmem_bdev(args): rpc.bdev.delete_pmem_bdev(args.client, name=args.name) @@ -405,7 +364,6 @@ if __name__ == "__main__": p.add_argument('name', help='pmem bdev name') p.set_defaults(func=delete_pmem_bdev) - @call_cmd def construct_passthru_bdev(args): print(rpc.bdev.construct_passthru_bdev(args.client, base_bdev_name=args.base_bdev_name, @@ -417,7 +375,6 @@ if __name__ == "__main__": p.add_argument('-p', '--name', help="Name of the pass through bdev", required=True) p.set_defaults(func=construct_passthru_bdev) - @call_cmd def delete_passthru_bdev(args): rpc.bdev.delete_passthru_bdev(args.client, name=args.name) @@ -426,7 +383,6 @@ if __name__ == "__main__": p.add_argument('name', help='pass through bdev name') p.set_defaults(func=delete_passthru_bdev) - @call_cmd def get_bdevs(args): print_dict(rpc.bdev.get_bdevs(args.client, name=args.name)) @@ -436,7 +392,6 @@ if __name__ == "__main__": p.add_argument('-b', '--name', help="Name of the Blockdev. Example: Nvme0n1", required=False) p.set_defaults(func=get_bdevs) - @call_cmd def get_bdevs_iostat(args): print_dict(rpc.bdev.get_bdevs_iostat(args.client, name=args.name)) @@ -446,7 +401,6 @@ if __name__ == "__main__": p.add_argument('-b', '--name', help="Name of the Blockdev. Example: Nvme0n1", required=False) p.set_defaults(func=get_bdevs_iostat) - @call_cmd def delete_bdev(args): rpc.bdev.delete_bdev(args.client, bdev_name=args.bdev_name) @@ -456,7 +410,6 @@ if __name__ == "__main__": 'bdev_name', help='Blockdev name to be deleted. Example: Malloc0.') p.set_defaults(func=delete_bdev) - @call_cmd def set_bdev_qd_sampling_period(args): rpc.bdev.set_bdev_qd_sampling_period(args.client, name=args.name, @@ -469,7 +422,6 @@ if __name__ == "__main__": type=int) p.set_defaults(func=set_bdev_qd_sampling_period) - @call_cmd def set_bdev_qos_limit(args): rpc.bdev.set_bdev_qos_limit(args.client, name=args.name, @@ -486,7 +438,6 @@ if __name__ == "__main__": type=int, required=False) p.set_defaults(func=set_bdev_qos_limit) - @call_cmd def bdev_inject_error(args): rpc.bdev.bdev_inject_error(args.client, name=args.name, @@ -502,7 +453,6 @@ if __name__ == "__main__": '-n', '--num', help='the number of commands you want to fail', type=int, default=1) p.set_defaults(func=bdev_inject_error) - @call_cmd def apply_firmware(args): print_dict(rpc.bdev.apply_firmware(args.client, bdev_name=args.bdev_name, @@ -514,7 +464,6 @@ if __name__ == "__main__": p.set_defaults(func=apply_firmware) # iSCSI - @call_cmd def set_iscsi_options(args): rpc.iscsi.set_iscsi_options( args.client, @@ -561,7 +510,6 @@ if __name__ == "__main__": p.add_argument('-u', '--min-connections-per-core', help='Allocation unit of connections per core', type=int) p.set_defaults(func=set_iscsi_options) - @call_cmd def set_iscsi_discovery_auth(args): rpc.iscsi.set_iscsi_discovery_auth( args.client, @@ -594,7 +542,6 @@ if __name__ == "__main__": Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 msecret:ms2'""", required=False) p.set_defaults(func=add_iscsi_auth_group) - @call_cmd def delete_iscsi_auth_group(args): rpc.iscsi.delete_iscsi_auth_group(args.client, tag=args.tag) @@ -602,7 +549,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('tag', help='Authentication group tag', type=int) p.set_defaults(func=delete_iscsi_auth_group) - @call_cmd def add_secret_to_iscsi_auth_group(args): rpc.iscsi.add_secret_to_iscsi_auth_group( args.client, @@ -620,7 +566,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('-r', '--msecret', help='Secret for mutual CHAP authentication') p.set_defaults(func=add_secret_to_iscsi_auth_group) - @call_cmd def delete_secret_from_iscsi_auth_group(args): rpc.iscsi.delete_secret_from_iscsi_auth_group(args.client, tag=args.tag, user=args.user) @@ -629,7 +574,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('-u', '--user', help='User name for one-way CHAP authentication', required=True) p.set_defaults(func=delete_secret_from_iscsi_auth_group) - @call_cmd def get_iscsi_auth_groups(args): print_dict(rpc.iscsi.get_iscsi_auth_groups(args.client)) @@ -637,7 +581,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse help='Display current authentication group configuration') p.set_defaults(func=get_iscsi_auth_groups) - @call_cmd def get_portal_groups(args): print_dict(rpc.iscsi.get_portal_groups(args.client)) @@ -645,7 +588,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse 'get_portal_groups', help='Display current portal group configuration') p.set_defaults(func=get_portal_groups) - @call_cmd def get_initiator_groups(args): print_dict(rpc.iscsi.get_initiator_groups(args.client)) @@ -653,14 +595,12 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse help='Display current initiator group configuration') p.set_defaults(func=get_initiator_groups) - @call_cmd def get_target_nodes(args): print_dict(rpc.iscsi.get_target_nodes(args.client)) p = subparsers.add_parser('get_target_nodes', help='Display target nodes') p.set_defaults(func=get_target_nodes) - @call_cmd def construct_target_node(args): luns = [] for u in args.bdev_name_id_pairs.strip().split(" "): @@ -716,7 +656,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse help='Data Digest should be required for this target node.', action='store_true') p.set_defaults(func=construct_target_node) - @call_cmd def target_node_add_lun(args): rpc.iscsi.target_node_add_lun( args.client, @@ -732,7 +671,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse *** If LUN ID is omitted or -1, the lowest free one is assigned ***""", type=int, required=False) p.set_defaults(func=target_node_add_lun) - @call_cmd def set_iscsi_target_node_auth(args): rpc.iscsi.set_iscsi_target_node_auth( args.client, @@ -754,7 +692,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse action='store_true') p.set_defaults(func=set_iscsi_target_node_auth) - @call_cmd def add_pg_ig_maps(args): pg_ig_maps = [] for u in args.pg_ig_mappings.strip().split(" "): @@ -774,7 +711,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse *** The Portal/Initiator Groups must be precreated ***""") p.set_defaults(func=add_pg_ig_maps) - @call_cmd def delete_pg_ig_maps(args): pg_ig_maps = [] for u in args.pg_ig_mappings.strip().split(" "): @@ -792,7 +728,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse *** The Portal/Initiator Groups must be precreated ***""") p.set_defaults(func=delete_pg_ig_maps) - @call_cmd def add_portal_group(args): portals = [] for p in args.portal_list: @@ -818,7 +753,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse Example: '192.168.100.100:3260' '192.168.100.100:3261' '192.168.100.100:3262@0x1""") p.set_defaults(func=add_portal_group) - @call_cmd def add_initiator_group(args): initiators = [] netmasks = [] @@ -842,7 +776,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse Example: '255.255.0.0 255.248.0.0' etc""") p.set_defaults(func=add_initiator_group) - @call_cmd def add_initiators_to_initiator_group(args): initiators = None netmasks = None @@ -870,7 +803,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse This parameter can be omitted. Example: '255.255.0.0 255.248.0.0' etc""", required=False) p.set_defaults(func=add_initiators_to_initiator_group) - @call_cmd def delete_initiators_from_initiator_group(args): initiators = None netmasks = None @@ -898,7 +830,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse This parameter can be omitted. Example: '255.255.0.0 255.248.0.0' etc""", required=False) p.set_defaults(func=delete_initiators_from_initiator_group) - @call_cmd def delete_target_node(args): rpc.iscsi.delete_target_node( args.client, target_node_name=args.target_node_name) @@ -909,7 +840,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse help='Target node name to be deleted. Example: iqn.2016-06.io.spdk:disk1.') p.set_defaults(func=delete_target_node) - @call_cmd def delete_portal_group(args): rpc.iscsi.delete_portal_group(args.client, tag=args.tag) @@ -919,7 +849,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse 'tag', help='Portal group tag (unique, integer > 0)', type=int) p.set_defaults(func=delete_portal_group) - @call_cmd def delete_initiator_group(args): rpc.iscsi.delete_initiator_group(args.client, tag=args.tag) @@ -929,7 +858,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse 'tag', help='Initiator group tag (unique, integer > 0)', type=int) p.set_defaults(func=delete_initiator_group) - @call_cmd def get_iscsi_connections(args): print_dict(rpc.iscsi.get_iscsi_connections(args.client)) @@ -937,14 +865,12 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse help='Display iSCSI connections') p.set_defaults(func=get_iscsi_connections) - @call_cmd def get_iscsi_global_params(args): print_dict(rpc.iscsi.get_iscsi_global_params(args.client)) p = subparsers.add_parser('get_iscsi_global_params', help='Display iSCSI global parameters') p.set_defaults(func=get_iscsi_global_params) - @call_cmd def get_scsi_devices(args): print_dict(rpc.iscsi.get_scsi_devices(args.client)) @@ -952,7 +878,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.set_defaults(func=get_scsi_devices) # log - @call_cmd def set_log_flag(args): rpc.log.set_log_flag(args.client, flag=args.flag) @@ -961,7 +886,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse 'flag', help='log flag we want to set. (for example "nvme").') p.set_defaults(func=set_log_flag) - @call_cmd def set_trace_flag(args): print("set_trace_flag is deprecated - use set_log_flag instead") rpc.log.set_trace_flag(args.client, flag=args.flag) @@ -971,7 +895,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse 'flag', help='trace mask we want to set. (for example "nvme").') p.set_defaults(func=set_trace_flag) - @call_cmd def clear_log_flag(args): rpc.log.clear_log_flag(args.client, flag=args.flag) @@ -980,7 +903,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse 'flag', help='log flag we want to clear. (for example "nvme").') p.set_defaults(func=clear_log_flag) - @call_cmd def clear_trace_flag(args): print("clear_trace_flag is deprecated - use clear_log_flag instead") rpc.log.clear_trace_flag(args.client, flag=args.flag) @@ -990,14 +912,12 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse 'flag', help='trace mask we want to clear. (for example "nvme").') p.set_defaults(func=clear_trace_flag) - @call_cmd def get_log_flags(args): print_dict(rpc.log.get_log_flags(args.client)) p = subparsers.add_parser('get_log_flags', help='get log flags') p.set_defaults(func=get_log_flags) - @call_cmd def get_trace_flags(args): print("get_trace_flags is deprecated - use get_log_flags instead") print_dict(rpc.log.get_trace_flags(args.client)) @@ -1005,7 +925,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p = subparsers.add_parser('get_trace_flags', help='get trace flags') p.set_defaults(func=get_trace_flags) - @call_cmd def set_log_level(args): rpc.log.set_log_level(args.client, level=args.level) @@ -1013,14 +932,12 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('level', help='log level we want to set. (for example "DEBUG").') p.set_defaults(func=set_log_level) - @call_cmd def get_log_level(args): print_dict(rpc.log.get_log_level(args.client)) p = subparsers.add_parser('get_log_level', help='get log level') p.set_defaults(func=get_log_level) - @call_cmd def set_log_print_level(args): rpc.log.set_log_print_level(args.client, level=args.level) @@ -1028,7 +945,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('level', help='log print level we want to set. (for example "DEBUG").') p.set_defaults(func=set_log_print_level) - @call_cmd def get_log_print_level(args): print_dict(rpc.log.get_log_print_level(args.client)) @@ -1036,7 +952,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.set_defaults(func=get_log_print_level) # lvol - @call_cmd def construct_lvol_store(args): print(rpc.lvol.construct_lvol_store(args.client, bdev_name=args.bdev_name, @@ -1049,7 +964,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('-c', '--cluster-sz', help='size of cluster (in bytes)', type=int, required=False) p.set_defaults(func=construct_lvol_store) - @call_cmd def rename_lvol_store(args): rpc.lvol.rename_lvol_store(args.client, old_name=args.old_name, @@ -1060,7 +974,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('new_name', help='new name') p.set_defaults(func=rename_lvol_store) - @call_cmd def construct_lvol_bdev(args): print(rpc.lvol.construct_lvol_bdev(args.client, lvol_name=args.lvol_name, @@ -1077,7 +990,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('size', help='size in MiB for this bdev', type=int) p.set_defaults(func=construct_lvol_bdev) - @call_cmd def snapshot_lvol_bdev(args): print(rpc.lvol.snapshot_lvol_bdev(args.client, lvol_name=args.lvol_name, @@ -1088,7 +1000,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('snapshot_name', help='lvol snapshot name') p.set_defaults(func=snapshot_lvol_bdev) - @call_cmd def clone_lvol_bdev(args): print(rpc.lvol.clone_lvol_bdev(args.client, snapshot_name=args.snapshot_name, @@ -1099,7 +1010,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('clone_name', help='lvol clone name') p.set_defaults(func=clone_lvol_bdev) - @call_cmd def rename_lvol_bdev(args): rpc.lvol.rename_lvol_bdev(args.client, old_name=args.old_name, @@ -1110,7 +1020,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('new_name', help='new lvol name') p.set_defaults(func=rename_lvol_bdev) - @call_cmd def inflate_lvol_bdev(args): rpc.lvol.inflate_lvol_bdev(args.client, name=args.name) @@ -1119,7 +1028,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('name', help='lvol bdev name') p.set_defaults(func=inflate_lvol_bdev) - @call_cmd def decouple_parent_lvol_bdev(args): rpc.lvol.decouple_parent_lvol_bdev(args.client, name=args.name) @@ -1128,7 +1036,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('name', help='lvol bdev name') p.set_defaults(func=decouple_parent_lvol_bdev) - @call_cmd def resize_lvol_bdev(args): rpc.lvol.resize_lvol_bdev(args.client, name=args.name, @@ -1139,7 +1046,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('size', help='new size in MiB for this bdev', type=int) p.set_defaults(func=resize_lvol_bdev) - @call_cmd def destroy_lvol_bdev(args): rpc.lvol.destroy_lvol_bdev(args.client, name=args.name) @@ -1148,7 +1054,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('name', help='lvol bdev name') p.set_defaults(func=destroy_lvol_bdev) - @call_cmd def destroy_lvol_store(args): rpc.lvol.destroy_lvol_store(args.client, uuid=args.uuid, @@ -1159,7 +1064,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('-l', '--lvs-name', help='lvol store name', required=False) p.set_defaults(func=destroy_lvol_store) - @call_cmd def get_lvol_stores(args): print_dict(rpc.lvol.get_lvol_stores(args.client, uuid=args.uuid, @@ -1170,7 +1074,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('-l', '--lvs-name', help='lvol store name', required=False) p.set_defaults(func=get_lvol_stores) - @call_cmd def get_raid_bdevs(args): print_array(rpc.bdev.get_raid_bdevs(args.client, category=args.category)) @@ -1183,7 +1086,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('category', help='all or online or configuring or offline') p.set_defaults(func=get_raid_bdevs) - @call_cmd def construct_raid_bdev(args): base_bdevs = [] for u in args.base_bdevs.strip().split(" "): @@ -1201,7 +1103,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('-b', '--base-bdevs', help='base bdevs name, whitespace separated list in quotes', required=True) p.set_defaults(func=construct_raid_bdev) - @call_cmd def destroy_raid_bdev(args): rpc.bdev.destroy_raid_bdev(args.client, name=args.name) @@ -1210,7 +1111,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.set_defaults(func=destroy_raid_bdev) # split - @call_cmd def construct_split_vbdev(args): print_array(rpc.bdev.construct_split_vbdev(args.client, base_bdev=args.base_bdev, @@ -1226,7 +1126,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse exceed the base bdev size.""", type=int) p.set_defaults(func=construct_split_vbdev) - @call_cmd def destruct_split_vbdev(args): rpc.bdev.destruct_split_vbdev(args.client, base_bdev=args.base_bdev) @@ -1236,7 +1135,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.set_defaults(func=destruct_split_vbdev) # nbd - @call_cmd def start_nbd_disk(args): print(rpc.nbd.start_nbd_disk(args.client, bdev_name=args.bdev_name, @@ -1247,7 +1145,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('nbd_device', help='Nbd device name to be assigned. Example: /dev/nbd0.') p.set_defaults(func=start_nbd_disk) - @call_cmd def stop_nbd_disk(args): rpc.nbd.stop_nbd_disk(args.client, nbd_device=args.nbd_device) @@ -1256,7 +1153,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('nbd_device', help='Nbd device name to be stopped. Example: /dev/nbd0.') p.set_defaults(func=stop_nbd_disk) - @call_cmd def get_nbd_disks(args): print_dict(rpc.nbd.get_nbd_disks(args.client, nbd_device=args.nbd_device)) @@ -1266,7 +1162,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.set_defaults(func=get_nbd_disks) # net - @call_cmd def add_ip_address(args): rpc.net.add_ip_address(args.client, ifc_index=args.ifc_index, ip_addr=args.ip_addr) @@ -1275,7 +1170,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('ip_addr', help='ip address will be added.') p.set_defaults(func=add_ip_address) - @call_cmd def delete_ip_address(args): rpc.net.delete_ip_address(args.client, ifc_index=args.ifc_index, ip_addr=args.ip_addr) @@ -1284,7 +1178,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('ip_addr', help='ip address will be deleted.') p.set_defaults(func=delete_ip_address) - @call_cmd def get_interfaces(args): print_dict(rpc.net.get_interfaces(args.client)) @@ -1293,7 +1186,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.set_defaults(func=get_interfaces) # NVMe-oF - @call_cmd def set_nvmf_target_options(args): rpc.nvmf.set_nvmf_target_options(args.client, max_queue_depth=args.max_queue_depth, @@ -1312,7 +1204,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('-u', '--io-unit-size', help='I/O unit size (bytes)', type=int) p.set_defaults(func=set_nvmf_target_options) - @call_cmd def set_nvmf_target_max_subsystems(args): rpc.nvmf.set_nvmf_target_max_subsystems(args.client, max_subsystems=args.max_subsystems) @@ -1321,7 +1212,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('-x', '--max-subsystems', help='Max number of NVMf subsystems', type=int, required=True) p.set_defaults(func=set_nvmf_target_max_subsystems) - @call_cmd def set_nvmf_target_config(args): rpc.nvmf.set_nvmf_target_config(args.client, acceptor_poll_rate=args.acceptor_poll_rate, @@ -1335,7 +1225,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse robin manner""") p.set_defaults(func=set_nvmf_target_config) - @call_cmd def nvmf_create_transport(args): rpc.nvmf.nvmf_create_transport(args.client, trtype=args.trtype, @@ -1356,7 +1245,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('-a', '--max-aq-depth', help='Max number of admin cmds per AQ', type=int) p.set_defaults(func=nvmf_create_transport) - @call_cmd def get_nvmf_transports(args): print_dict(rpc.nvmf.get_nvmf_transports(args.client)) @@ -1364,7 +1252,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse help='Display nvmf transports') p.set_defaults(func=get_nvmf_transports) - @call_cmd def get_nvmf_subsystems(args): print_dict(rpc.nvmf.get_nvmf_subsystems(args.client)) @@ -1372,7 +1259,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse help='Display nvmf subsystems') p.set_defaults(func=get_nvmf_subsystems) - @call_cmd def construct_nvmf_subsystem(args): listen_addresses = None hosts = None @@ -1434,7 +1320,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse type=int, default=0) p.set_defaults(func=construct_nvmf_subsystem) - @call_cmd def nvmf_subsystem_create(args): rpc.nvmf.nvmf_subsystem_create(args.client, nqn=args.nqn, @@ -1452,7 +1337,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse type=int, default=0) p.set_defaults(func=nvmf_subsystem_create) - @call_cmd def delete_nvmf_subsystem(args): rpc.nvmf.delete_nvmf_subsystem(args.client, nqn=args.subsystem_nqn) @@ -1463,7 +1347,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse help='subsystem nqn to be deleted. Example: nqn.2016-06.io.spdk:cnode1.') p.set_defaults(func=delete_nvmf_subsystem) - @call_cmd def nvmf_subsystem_add_listener(args): rpc.nvmf.nvmf_subsystem_add_listener(args.client, nqn=args.nqn, @@ -1480,7 +1363,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('-s', '--trsvcid', help='NVMe-oF transport service id: e.g., a port number') p.set_defaults(func=nvmf_subsystem_add_listener) - @call_cmd def nvmf_subsystem_remove_listener(args): rpc.nvmf.nvmf_subsystem_remove_listener(args.client, nqn=args.nqn, @@ -1497,7 +1379,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('-s', '--trsvcid', help='NVMe-oF transport service id: e.g., a port number') p.set_defaults(func=nvmf_subsystem_remove_listener) - @call_cmd def nvmf_subsystem_add_ns(args): rpc.nvmf.nvmf_subsystem_add_ns(args.client, nqn=args.nqn, @@ -1516,7 +1397,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('-u', '--uuid', help='Namespace UUID (optional)') p.set_defaults(func=nvmf_subsystem_add_ns) - @call_cmd def nvmf_subsystem_remove_ns(args): rpc.nvmf.nvmf_subsystem_remove_ns(args.client, nqn=args.nqn, @@ -1527,7 +1407,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('nsid', help='The requested NSID', type=int) p.set_defaults(func=nvmf_subsystem_remove_ns) - @call_cmd def nvmf_subsystem_add_host(args): rpc.nvmf.nvmf_subsystem_add_host(args.client, nqn=args.nqn, @@ -1538,7 +1417,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('host', help='Host NQN to allow') p.set_defaults(func=nvmf_subsystem_add_host) - @call_cmd def nvmf_subsystem_remove_host(args): rpc.nvmf.nvmf_subsystem_remove_host(args.client, nqn=args.nqn, @@ -1549,7 +1427,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('host', help='Host NQN to remove') p.set_defaults(func=nvmf_subsystem_remove_host) - @call_cmd def nvmf_subsystem_allow_any_host(args): rpc.nvmf.nvmf_subsystem_allow_any_host(args.client, nqn=args.nqn, @@ -1562,7 +1439,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.set_defaults(func=nvmf_subsystem_allow_any_host) # pmem - @call_cmd def create_pmem_pool(args): num_blocks = int((args.total_size * 1024 * 1024) / args.block_size) rpc.pmem.create_pmem_pool(args.client, @@ -1576,7 +1452,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('block_size', help='Block size for this pmem pool', type=int) p.set_defaults(func=create_pmem_pool) - @call_cmd def pmem_pool_info(args): print_dict(rpc.pmem.pmem_pool_info(args.client, pmem_file=args.pmem_file)) @@ -1585,7 +1460,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('pmem_file', help='Path to pmemblk pool file') p.set_defaults(func=pmem_pool_info) - @call_cmd def delete_pmem_pool(args): rpc.pmem.delete_pmem_pool(args.client, pmem_file=args.pmem_file) @@ -1595,7 +1469,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.set_defaults(func=delete_pmem_pool) # subsystem - @call_cmd def get_subsystems(args): print_dict(rpc.subsystem.get_subsystems(args.client)) @@ -1603,7 +1476,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse entry contain (unsorted) array of subsystems it depends on.""") p.set_defaults(func=get_subsystems) - @call_cmd def get_subsystem_config(args): print_dict(rpc.subsystem.get_subsystem_config(args.client, args.name)) @@ -1612,7 +1484,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.set_defaults(func=get_subsystem_config) # vhost - @call_cmd def set_vhost_controller_coalescing(args): rpc.vhost.set_vhost_controller_coalescing(args.client, ctrlr=args.ctrlr, @@ -1625,7 +1496,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('iops_threshold', help='IOPS threshold when coalescing is enabled', type=int) p.set_defaults(func=set_vhost_controller_coalescing) - @call_cmd def construct_vhost_scsi_controller(args): rpc.vhost.construct_vhost_scsi_controller(args.client, ctrlr=args.ctrlr, @@ -1637,7 +1507,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('--cpumask', help='cpu mask for this controller') p.set_defaults(func=construct_vhost_scsi_controller) - @call_cmd def add_vhost_scsi_lun(args): rpc.vhost.add_vhost_scsi_lun(args.client, ctrlr=args.ctrlr, @@ -1651,7 +1520,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('bdev_name', help='bdev name') p.set_defaults(func=add_vhost_scsi_lun) - @call_cmd def remove_vhost_scsi_target(args): rpc.vhost.remove_vhost_scsi_target(args.client, ctrlr=args.ctrlr, @@ -1662,7 +1530,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('scsi_target_num', help='scsi_target_num', type=int) p.set_defaults(func=remove_vhost_scsi_target) - @call_cmd def construct_vhost_blk_controller(args): rpc.vhost.construct_vhost_blk_controller(args.client, ctrlr=args.ctrlr, @@ -1677,7 +1544,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument("-r", "--readonly", action='store_true', help='Set controller as read-only') p.set_defaults(func=construct_vhost_blk_controller) - @call_cmd def construct_vhost_nvme_controller(args): rpc.vhost.construct_vhost_nvme_controller(args.client, ctrlr=args.ctrlr, @@ -1690,7 +1556,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('--cpumask', help='cpu mask for this controller') p.set_defaults(func=construct_vhost_nvme_controller) - @call_cmd def add_vhost_nvme_ns(args): rpc.vhost.add_vhost_nvme_ns(args.client, ctrlr=args.ctrlr, @@ -1701,7 +1566,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('bdev_name', help='block device name for a new Namespace') p.set_defaults(func=add_vhost_nvme_ns) - @call_cmd def get_vhost_controllers(args): print_dict(rpc.vhost.get_vhost_controllers(args.client, args.name)) @@ -1709,7 +1573,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('-n', '--name', help="Name of vhost controller", required=False) p.set_defaults(func=get_vhost_controllers) - @call_cmd def remove_vhost_controller(args): rpc.vhost.remove_vhost_controller(args.client, ctrlr=args.ctrlr) @@ -1718,7 +1581,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('ctrlr', help='controller name') p.set_defaults(func=remove_vhost_controller) - @call_cmd def construct_virtio_dev(args): print_array(rpc.vhost.construct_virtio_dev(args.client, name=args.name, @@ -1742,7 +1604,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('--vq-size', help='Size of each queue', type=int) p.set_defaults(func=construct_virtio_dev) - @call_cmd def construct_virtio_user_scsi_bdev(args): print_array(rpc.vhost.construct_virtio_user_scsi_bdev(args.client, path=args.path, @@ -1760,7 +1621,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('--vq-size', help='Size of each queue', type=int) p.set_defaults(func=construct_virtio_user_scsi_bdev) - @call_cmd def construct_virtio_pci_scsi_bdev(args): print_array(rpc.vhost.construct_virtio_pci_scsi_bdev(args.client, pci_address=args.pci_address, @@ -1774,14 +1634,12 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse It will be inhereted by all created bdevs, which are named n the following format: t""") p.set_defaults(func=construct_virtio_pci_scsi_bdev) - @call_cmd def get_virtio_scsi_devs(args): print_dict(rpc.vhost.get_virtio_scsi_devs(args.client)) p = subparsers.add_parser('get_virtio_scsi_devs', help='List all Virtio-SCSI devices.') p.set_defaults(func=get_virtio_scsi_devs) - @call_cmd def remove_virtio_scsi_bdev(args): rpc.vhost.remove_virtio_scsi_bdev(args.client, name=args.name) @@ -1791,7 +1649,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('name', help='Virtio device name. E.g. VirtioUser0') p.set_defaults(func=remove_virtio_scsi_bdev) - @call_cmd def remove_virtio_bdev(args): rpc.vhost.remove_virtio_bdev(args.client, name=args.name) @@ -1801,7 +1658,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('name', help='Virtio device name. E.g. VirtioUser0') p.set_defaults(func=remove_virtio_bdev) - @call_cmd def construct_virtio_user_blk_bdev(args): print(rpc.vhost.construct_virtio_user_blk_bdev(args.client, path=args.path, @@ -1816,7 +1672,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.add_argument('--vq-size', help='Size of each queue', type=int) p.set_defaults(func=construct_virtio_user_blk_bdev) - @call_cmd def construct_virtio_pci_blk_bdev(args): print(rpc.vhost.construct_virtio_pci_blk_bdev(args.client, pci_address=args.pci_address, @@ -1829,7 +1684,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.set_defaults(func=construct_virtio_pci_blk_bdev) # ioat - @call_cmd def scan_ioat_copy_engine(args): pci_whitelist = [] if args.pci_whitelist: @@ -1843,7 +1697,6 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse p.set_defaults(func=scan_ioat_copy_engine) # send_nvme_cmd - @call_cmd def send_nvme_cmd(args): print_dict(rpc.nvme.send_nvme_cmd(args.client, name=args.nvme_name, @@ -1873,7 +1726,8 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse try: args.client = rpc.client.JSONRPCClient(args.server_addr, args.port, args.verbose, args.timeout) + args.func(args) except JSONRPCException as ex: + print("Exception:") print(ex.message) exit(1) - args.func(args)