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 <pawelx.wodkowski@intel.com>
Reviewed-on: https://review.gerrithub.io/435469
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
Pawel Wodkowski 2018-11-29 12:08:31 +01:00 committed by Ben Walker
parent a404d9aa23
commit f7cb69cb60

View File

@ -16,16 +16,6 @@ def print_array(a):
print(" ".join((quote(v) for v in 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__": if __name__ == "__main__":
parser = argparse.ArgumentParser( parser = argparse.ArgumentParser(
description='SPDK RPC command line interface') description='SPDK RPC command line interface')
@ -41,21 +31,18 @@ if __name__ == "__main__":
help='Verbose mode', action='store_true') help='Verbose mode', action='store_true')
subparsers = parser.add_subparsers(help='RPC methods') subparsers = parser.add_subparsers(help='RPC methods')
@call_cmd
def start_subsystem_init(args): def start_subsystem_init(args):
rpc.start_subsystem_init(args.client) rpc.start_subsystem_init(args.client)
p = subparsers.add_parser('start_subsystem_init', help='Start initialization of subsystems') p = subparsers.add_parser('start_subsystem_init', help='Start initialization of subsystems')
p.set_defaults(func=start_subsystem_init) p.set_defaults(func=start_subsystem_init)
@call_cmd
def wait_subsystem_init(args): def wait_subsystem_init(args):
rpc.wait_subsystem_init(args.client) rpc.wait_subsystem_init(args.client)
p = subparsers.add_parser('wait_subsystem_init', help='Block until subsystems have been initialized') p = subparsers.add_parser('wait_subsystem_init', help='Block until subsystems have been initialized')
p.set_defaults(func=wait_subsystem_init) p.set_defaults(func=wait_subsystem_init)
@call_cmd
def get_rpc_methods(args): def get_rpc_methods(args):
print_dict(rpc.get_rpc_methods(args.client, print_dict(rpc.get_rpc_methods(args.client,
current=args.current)) 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.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) p.set_defaults(func=get_rpc_methods)
@call_cmd
def save_config(args): def save_config(args):
rpc.save_config(args.client, rpc.save_config(args.client,
sys.stdout, sys.stdout,
@ -76,14 +62,12 @@ if __name__ == "__main__":
""", type=int, default=2) """, type=int, default=2)
p.set_defaults(func=save_config) p.set_defaults(func=save_config)
@call_cmd
def load_config(args): def load_config(args):
rpc.load_config(args.client, sys.stdin) 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 = subparsers.add_parser('load_config', help="""Configure SPDK subsystems and targets using JSON RPC read from stdin.""")
p.set_defaults(func=load_config) p.set_defaults(func=load_config)
@call_cmd
def save_subsystem_config(args): def save_subsystem_config(args):
rpc.save_subsystem_config(args.client, rpc.save_subsystem_config(args.client,
sys.stdout, sys.stdout,
@ -97,7 +81,6 @@ if __name__ == "__main__":
p.add_argument('-n', '--name', help='Name of subsystem', required=True) p.add_argument('-n', '--name', help='Name of subsystem', required=True)
p.set_defaults(func=save_subsystem_config) p.set_defaults(func=save_subsystem_config)
@call_cmd
def load_subsystem_config(args): def load_subsystem_config(args):
rpc.load_subsystem_config(args.client, rpc.load_subsystem_config(args.client,
sys.stdin) sys.stdin)
@ -106,7 +89,6 @@ if __name__ == "__main__":
p.set_defaults(func=load_subsystem_config) p.set_defaults(func=load_subsystem_config)
# app # app
@call_cmd
def kill_instance(args): def kill_instance(args):
rpc.app.kill_instance(args.client, rpc.app.kill_instance(args.client,
sig_name=args.sig_name) 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.add_argument('sig_name', help='signal will be sent to server.')
p.set_defaults(func=kill_instance) p.set_defaults(func=kill_instance)
@call_cmd
def context_switch_monitor(args): def context_switch_monitor(args):
enabled = None enabled = None
if args.enable: if args.enable:
@ -131,7 +112,6 @@ if __name__ == "__main__":
p.set_defaults(func=context_switch_monitor) p.set_defaults(func=context_switch_monitor)
# bdev # bdev
@call_cmd
def set_bdev_options(args): def set_bdev_options(args):
rpc.bdev.set_bdev_options(args.client, rpc.bdev.set_bdev_options(args.client,
bdev_io_pool_size=args.bdev_io_pool_size, 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.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) p.set_defaults(func=set_bdev_options)
@call_cmd
def construct_crypto_bdev(args): def construct_crypto_bdev(args):
print(rpc.bdev.construct_crypto_bdev(args.client, print(rpc.bdev.construct_crypto_bdev(args.client,
base_bdev_name=args.base_bdev_name, base_bdev_name=args.base_bdev_name,
@ -157,7 +136,6 @@ if __name__ == "__main__":
p.add_argument('-k', '--key', help="Key") p.add_argument('-k', '--key', help="Key")
p.set_defaults(func=construct_crypto_bdev) p.set_defaults(func=construct_crypto_bdev)
@call_cmd
def delete_crypto_bdev(args): def delete_crypto_bdev(args):
rpc.bdev.delete_crypto_bdev(args.client, rpc.bdev.delete_crypto_bdev(args.client,
name=args.name) name=args.name)
@ -166,7 +144,6 @@ if __name__ == "__main__":
p.add_argument('name', help='crypto bdev name') p.add_argument('name', help='crypto bdev name')
p.set_defaults(func=delete_crypto_bdev) p.set_defaults(func=delete_crypto_bdev)
@call_cmd
def construct_malloc_bdev(args): def construct_malloc_bdev(args):
num_blocks = (args.total_size * 1024 * 1024) // args.block_size num_blocks = (args.total_size * 1024 * 1024) // args.block_size
print(rpc.bdev.construct_malloc_bdev(args.client, 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.add_argument('block_size', help='Block size for this bdev', type=int)
p.set_defaults(func=construct_malloc_bdev) p.set_defaults(func=construct_malloc_bdev)
@call_cmd
def delete_malloc_bdev(args): def delete_malloc_bdev(args):
rpc.bdev.delete_malloc_bdev(args.client, rpc.bdev.delete_malloc_bdev(args.client,
name=args.name) name=args.name)
@ -192,7 +168,6 @@ if __name__ == "__main__":
p.add_argument('name', help='malloc bdev name') p.add_argument('name', help='malloc bdev name')
p.set_defaults(func=delete_malloc_bdev) p.set_defaults(func=delete_malloc_bdev)
@call_cmd
def construct_null_bdev(args): def construct_null_bdev(args):
num_blocks = (args.total_size * 1024 * 1024) // args.block_size num_blocks = (args.total_size * 1024 * 1024) // args.block_size
print(rpc.bdev.construct_null_bdev(args.client, 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.add_argument('block_size', help='Block size for this bdev', type=int)
p.set_defaults(func=construct_null_bdev) p.set_defaults(func=construct_null_bdev)
@call_cmd
def delete_null_bdev(args): def delete_null_bdev(args):
rpc.bdev.delete_null_bdev(args.client, rpc.bdev.delete_null_bdev(args.client,
name=args.name) name=args.name)
@ -219,7 +193,6 @@ if __name__ == "__main__":
p.add_argument('name', help='null bdev name') p.add_argument('name', help='null bdev name')
p.set_defaults(func=delete_null_bdev) p.set_defaults(func=delete_null_bdev)
@call_cmd
def construct_aio_bdev(args): def construct_aio_bdev(args):
print(rpc.bdev.construct_aio_bdev(args.client, print(rpc.bdev.construct_aio_bdev(args.client,
filename=args.filename, 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.add_argument('block_size', help='Block size for this bdev', type=int, nargs='?', default=0)
p.set_defaults(func=construct_aio_bdev) p.set_defaults(func=construct_aio_bdev)
@call_cmd
def delete_aio_bdev(args): def delete_aio_bdev(args):
rpc.bdev.delete_aio_bdev(args.client, rpc.bdev.delete_aio_bdev(args.client,
name=args.name) name=args.name)
@ -242,7 +214,6 @@ if __name__ == "__main__":
p.add_argument('name', help='aio bdev name') p.add_argument('name', help='aio bdev name')
p.set_defaults(func=delete_aio_bdev) p.set_defaults(func=delete_aio_bdev)
@call_cmd
def set_bdev_nvme_options(args): def set_bdev_nvme_options(args):
rpc.bdev.set_bdev_nvme_options(args.client, rpc.bdev.set_bdev_nvme_options(args.client,
action_on_timeout=args.action_on_timeout, 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) help='How often the admin queue is polled for asynchronous events', type=int)
p.set_defaults(func=set_bdev_nvme_options) p.set_defaults(func=set_bdev_nvme_options)
@call_cmd
def set_bdev_nvme_hotplug(args): def set_bdev_nvme_hotplug(args):
rpc.bdev.set_bdev_nvme_hotplug(args.client, enable=args.enable, period_us=args.period_us) 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) help='How often the hotplug is processed for insert and remove events', type=int)
p.set_defaults(func=set_bdev_nvme_hotplug) p.set_defaults(func=set_bdev_nvme_hotplug)
@call_cmd
def construct_nvme_bdev(args): def construct_nvme_bdev(args):
print_array(rpc.bdev.construct_nvme_bdev(args.client, print_array(rpc.bdev.construct_nvme_bdev(args.client,
name=args.name, name=args.name,
@ -298,7 +267,6 @@ if __name__ == "__main__":
p.add_argument('-n', '--subnqn', help='NVMe-oF target subnqn') p.add_argument('-n', '--subnqn', help='NVMe-oF target subnqn')
p.set_defaults(func=construct_nvme_bdev) p.set_defaults(func=construct_nvme_bdev)
@call_cmd
def get_nvme_controllers(args): def get_nvme_controllers(args):
print_dict(rpc.nvme.get_nvme_controllers(args.client, print_dict(rpc.nvme.get_nvme_controllers(args.client,
name=args.name)) 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.add_argument('-n', '--name', help="Name of the NVMe controller. Example: Nvme0", required=False)
p.set_defaults(func=get_nvme_controllers) p.set_defaults(func=get_nvme_controllers)
@call_cmd
def delete_nvme_controller(args): def delete_nvme_controller(args):
rpc.bdev.delete_nvme_controller(args.client, rpc.bdev.delete_nvme_controller(args.client,
name=args.name) name=args.name)
@ -318,7 +285,6 @@ if __name__ == "__main__":
p.add_argument('name', help="Name of the controller") p.add_argument('name', help="Name of the controller")
p.set_defaults(func=delete_nvme_controller) p.set_defaults(func=delete_nvme_controller)
@call_cmd
def construct_rbd_bdev(args): def construct_rbd_bdev(args):
print(rpc.bdev.construct_rbd_bdev(args.client, print(rpc.bdev.construct_rbd_bdev(args.client,
name=args.name, name=args.name,
@ -334,7 +300,6 @@ if __name__ == "__main__":
p.add_argument('block_size', help='rbd block size', type=int) p.add_argument('block_size', help='rbd block size', type=int)
p.set_defaults(func=construct_rbd_bdev) p.set_defaults(func=construct_rbd_bdev)
@call_cmd
def delete_rbd_bdev(args): def delete_rbd_bdev(args):
rpc.bdev.delete_rbd_bdev(args.client, rpc.bdev.delete_rbd_bdev(args.client,
name=args.name) name=args.name)
@ -343,7 +308,6 @@ if __name__ == "__main__":
p.add_argument('name', help='rbd bdev name') p.add_argument('name', help='rbd bdev name')
p.set_defaults(func=delete_rbd_bdev) p.set_defaults(func=delete_rbd_bdev)
@call_cmd
def construct_error_bdev(args): def construct_error_bdev(args):
print(rpc.bdev.construct_error_bdev(args.client, print(rpc.bdev.construct_error_bdev(args.client,
base_name=args.base_name)) base_name=args.base_name))
@ -353,7 +317,6 @@ if __name__ == "__main__":
p.add_argument('base_name', help='base bdev name') p.add_argument('base_name', help='base bdev name')
p.set_defaults(func=construct_error_bdev) p.set_defaults(func=construct_error_bdev)
@call_cmd
def delete_error_bdev(args): def delete_error_bdev(args):
rpc.bdev.delete_error_bdev(args.client, rpc.bdev.delete_error_bdev(args.client,
name=args.name) name=args.name)
@ -362,7 +325,6 @@ if __name__ == "__main__":
p.add_argument('name', help='error bdev name') p.add_argument('name', help='error bdev name')
p.set_defaults(func=delete_error_bdev) p.set_defaults(func=delete_error_bdev)
@call_cmd
def construct_iscsi_bdev(args): def construct_iscsi_bdev(args):
print(rpc.bdev.construct_iscsi_bdev(args.client, print(rpc.bdev.construct_iscsi_bdev(args.client,
name=args.name, name=args.name,
@ -376,7 +338,6 @@ if __name__ == "__main__":
p.add_argument('--url', help="iSCSI Lun URL", required=True) p.add_argument('--url', help="iSCSI Lun URL", required=True)
p.set_defaults(func=construct_iscsi_bdev) p.set_defaults(func=construct_iscsi_bdev)
@call_cmd
def delete_iscsi_bdev(args): def delete_iscsi_bdev(args):
rpc.bdev.delete_iscsi_bdev(args.client, rpc.bdev.delete_iscsi_bdev(args.client,
name=args.name) name=args.name)
@ -385,7 +346,6 @@ if __name__ == "__main__":
p.add_argument('name', help='iSCSI bdev name') p.add_argument('name', help='iSCSI bdev name')
p.set_defaults(func=delete_iscsi_bdev) p.set_defaults(func=delete_iscsi_bdev)
@call_cmd
def construct_pmem_bdev(args): def construct_pmem_bdev(args):
print(rpc.bdev.construct_pmem_bdev(args.client, print(rpc.bdev.construct_pmem_bdev(args.client,
pmem_file=args.pmem_file, pmem_file=args.pmem_file,
@ -396,7 +356,6 @@ if __name__ == "__main__":
p.add_argument('-n', '--name', help='Block device name', required=True) p.add_argument('-n', '--name', help='Block device name', required=True)
p.set_defaults(func=construct_pmem_bdev) p.set_defaults(func=construct_pmem_bdev)
@call_cmd
def delete_pmem_bdev(args): def delete_pmem_bdev(args):
rpc.bdev.delete_pmem_bdev(args.client, rpc.bdev.delete_pmem_bdev(args.client,
name=args.name) name=args.name)
@ -405,7 +364,6 @@ if __name__ == "__main__":
p.add_argument('name', help='pmem bdev name') p.add_argument('name', help='pmem bdev name')
p.set_defaults(func=delete_pmem_bdev) p.set_defaults(func=delete_pmem_bdev)
@call_cmd
def construct_passthru_bdev(args): def construct_passthru_bdev(args):
print(rpc.bdev.construct_passthru_bdev(args.client, print(rpc.bdev.construct_passthru_bdev(args.client,
base_bdev_name=args.base_bdev_name, 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.add_argument('-p', '--name', help="Name of the pass through bdev", required=True)
p.set_defaults(func=construct_passthru_bdev) p.set_defaults(func=construct_passthru_bdev)
@call_cmd
def delete_passthru_bdev(args): def delete_passthru_bdev(args):
rpc.bdev.delete_passthru_bdev(args.client, rpc.bdev.delete_passthru_bdev(args.client,
name=args.name) name=args.name)
@ -426,7 +383,6 @@ if __name__ == "__main__":
p.add_argument('name', help='pass through bdev name') p.add_argument('name', help='pass through bdev name')
p.set_defaults(func=delete_passthru_bdev) p.set_defaults(func=delete_passthru_bdev)
@call_cmd
def get_bdevs(args): def get_bdevs(args):
print_dict(rpc.bdev.get_bdevs(args.client, print_dict(rpc.bdev.get_bdevs(args.client,
name=args.name)) 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.add_argument('-b', '--name', help="Name of the Blockdev. Example: Nvme0n1", required=False)
p.set_defaults(func=get_bdevs) p.set_defaults(func=get_bdevs)
@call_cmd
def get_bdevs_iostat(args): def get_bdevs_iostat(args):
print_dict(rpc.bdev.get_bdevs_iostat(args.client, print_dict(rpc.bdev.get_bdevs_iostat(args.client,
name=args.name)) 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.add_argument('-b', '--name', help="Name of the Blockdev. Example: Nvme0n1", required=False)
p.set_defaults(func=get_bdevs_iostat) p.set_defaults(func=get_bdevs_iostat)
@call_cmd
def delete_bdev(args): def delete_bdev(args):
rpc.bdev.delete_bdev(args.client, rpc.bdev.delete_bdev(args.client,
bdev_name=args.bdev_name) bdev_name=args.bdev_name)
@ -456,7 +410,6 @@ if __name__ == "__main__":
'bdev_name', help='Blockdev name to be deleted. Example: Malloc0.') 'bdev_name', help='Blockdev name to be deleted. Example: Malloc0.')
p.set_defaults(func=delete_bdev) p.set_defaults(func=delete_bdev)
@call_cmd
def set_bdev_qd_sampling_period(args): def set_bdev_qd_sampling_period(args):
rpc.bdev.set_bdev_qd_sampling_period(args.client, rpc.bdev.set_bdev_qd_sampling_period(args.client,
name=args.name, name=args.name,
@ -469,7 +422,6 @@ if __name__ == "__main__":
type=int) type=int)
p.set_defaults(func=set_bdev_qd_sampling_period) p.set_defaults(func=set_bdev_qd_sampling_period)
@call_cmd
def set_bdev_qos_limit(args): def set_bdev_qos_limit(args):
rpc.bdev.set_bdev_qos_limit(args.client, rpc.bdev.set_bdev_qos_limit(args.client,
name=args.name, name=args.name,
@ -486,7 +438,6 @@ if __name__ == "__main__":
type=int, required=False) type=int, required=False)
p.set_defaults(func=set_bdev_qos_limit) p.set_defaults(func=set_bdev_qos_limit)
@call_cmd
def bdev_inject_error(args): def bdev_inject_error(args):
rpc.bdev.bdev_inject_error(args.client, rpc.bdev.bdev_inject_error(args.client,
name=args.name, 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) '-n', '--num', help='the number of commands you want to fail', type=int, default=1)
p.set_defaults(func=bdev_inject_error) p.set_defaults(func=bdev_inject_error)
@call_cmd
def apply_firmware(args): def apply_firmware(args):
print_dict(rpc.bdev.apply_firmware(args.client, print_dict(rpc.bdev.apply_firmware(args.client,
bdev_name=args.bdev_name, bdev_name=args.bdev_name,
@ -514,7 +464,6 @@ if __name__ == "__main__":
p.set_defaults(func=apply_firmware) p.set_defaults(func=apply_firmware)
# iSCSI # iSCSI
@call_cmd
def set_iscsi_options(args): def set_iscsi_options(args):
rpc.iscsi.set_iscsi_options( rpc.iscsi.set_iscsi_options(
args.client, 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.add_argument('-u', '--min-connections-per-core', help='Allocation unit of connections per core', type=int)
p.set_defaults(func=set_iscsi_options) p.set_defaults(func=set_iscsi_options)
@call_cmd
def set_iscsi_discovery_auth(args): def set_iscsi_discovery_auth(args):
rpc.iscsi.set_iscsi_discovery_auth( rpc.iscsi.set_iscsi_discovery_auth(
args.client, 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) 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) p.set_defaults(func=add_iscsi_auth_group)
@call_cmd
def delete_iscsi_auth_group(args): def delete_iscsi_auth_group(args):
rpc.iscsi.delete_iscsi_auth_group(args.client, tag=args.tag) 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.add_argument('tag', help='Authentication group tag', type=int)
p.set_defaults(func=delete_iscsi_auth_group) p.set_defaults(func=delete_iscsi_auth_group)
@call_cmd
def add_secret_to_iscsi_auth_group(args): def add_secret_to_iscsi_auth_group(args):
rpc.iscsi.add_secret_to_iscsi_auth_group( rpc.iscsi.add_secret_to_iscsi_auth_group(
args.client, 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.add_argument('-r', '--msecret', help='Secret for mutual CHAP authentication')
p.set_defaults(func=add_secret_to_iscsi_auth_group) p.set_defaults(func=add_secret_to_iscsi_auth_group)
@call_cmd
def delete_secret_from_iscsi_auth_group(args): def delete_secret_from_iscsi_auth_group(args):
rpc.iscsi.delete_secret_from_iscsi_auth_group(args.client, tag=args.tag, user=args.user) 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.add_argument('-u', '--user', help='User name for one-way CHAP authentication', required=True)
p.set_defaults(func=delete_secret_from_iscsi_auth_group) p.set_defaults(func=delete_secret_from_iscsi_auth_group)
@call_cmd
def get_iscsi_auth_groups(args): def get_iscsi_auth_groups(args):
print_dict(rpc.iscsi.get_iscsi_auth_groups(args.client)) 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') help='Display current authentication group configuration')
p.set_defaults(func=get_iscsi_auth_groups) p.set_defaults(func=get_iscsi_auth_groups)
@call_cmd
def get_portal_groups(args): def get_portal_groups(args):
print_dict(rpc.iscsi.get_portal_groups(args.client)) 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') 'get_portal_groups', help='Display current portal group configuration')
p.set_defaults(func=get_portal_groups) p.set_defaults(func=get_portal_groups)
@call_cmd
def get_initiator_groups(args): def get_initiator_groups(args):
print_dict(rpc.iscsi.get_initiator_groups(args.client)) 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') help='Display current initiator group configuration')
p.set_defaults(func=get_initiator_groups) p.set_defaults(func=get_initiator_groups)
@call_cmd
def get_target_nodes(args): def get_target_nodes(args):
print_dict(rpc.iscsi.get_target_nodes(args.client)) print_dict(rpc.iscsi.get_target_nodes(args.client))
p = subparsers.add_parser('get_target_nodes', help='Display target nodes') p = subparsers.add_parser('get_target_nodes', help='Display target nodes')
p.set_defaults(func=get_target_nodes) p.set_defaults(func=get_target_nodes)
@call_cmd
def construct_target_node(args): def construct_target_node(args):
luns = [] luns = []
for u in args.bdev_name_id_pairs.strip().split(" "): 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') help='Data Digest should be required for this target node.', action='store_true')
p.set_defaults(func=construct_target_node) p.set_defaults(func=construct_target_node)
@call_cmd
def target_node_add_lun(args): def target_node_add_lun(args):
rpc.iscsi.target_node_add_lun( rpc.iscsi.target_node_add_lun(
args.client, 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) *** 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) p.set_defaults(func=target_node_add_lun)
@call_cmd
def set_iscsi_target_node_auth(args): def set_iscsi_target_node_auth(args):
rpc.iscsi.set_iscsi_target_node_auth( rpc.iscsi.set_iscsi_target_node_auth(
args.client, 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') action='store_true')
p.set_defaults(func=set_iscsi_target_node_auth) p.set_defaults(func=set_iscsi_target_node_auth)
@call_cmd
def add_pg_ig_maps(args): def add_pg_ig_maps(args):
pg_ig_maps = [] pg_ig_maps = []
for u in args.pg_ig_mappings.strip().split(" "): 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 ***""") *** The Portal/Initiator Groups must be precreated ***""")
p.set_defaults(func=add_pg_ig_maps) p.set_defaults(func=add_pg_ig_maps)
@call_cmd
def delete_pg_ig_maps(args): def delete_pg_ig_maps(args):
pg_ig_maps = [] pg_ig_maps = []
for u in args.pg_ig_mappings.strip().split(" "): 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 ***""") *** The Portal/Initiator Groups must be precreated ***""")
p.set_defaults(func=delete_pg_ig_maps) p.set_defaults(func=delete_pg_ig_maps)
@call_cmd
def add_portal_group(args): def add_portal_group(args):
portals = [] portals = []
for p in args.portal_list: 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""") Example: '192.168.100.100:3260' '192.168.100.100:3261' '192.168.100.100:3262@0x1""")
p.set_defaults(func=add_portal_group) p.set_defaults(func=add_portal_group)
@call_cmd
def add_initiator_group(args): def add_initiator_group(args):
initiators = [] initiators = []
netmasks = [] 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""") Example: '255.255.0.0 255.248.0.0' etc""")
p.set_defaults(func=add_initiator_group) p.set_defaults(func=add_initiator_group)
@call_cmd
def add_initiators_to_initiator_group(args): def add_initiators_to_initiator_group(args):
initiators = None initiators = None
netmasks = 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) 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) p.set_defaults(func=add_initiators_to_initiator_group)
@call_cmd
def delete_initiators_from_initiator_group(args): def delete_initiators_from_initiator_group(args):
initiators = None initiators = None
netmasks = 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) 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) p.set_defaults(func=delete_initiators_from_initiator_group)
@call_cmd
def delete_target_node(args): def delete_target_node(args):
rpc.iscsi.delete_target_node( rpc.iscsi.delete_target_node(
args.client, target_node_name=args.target_node_name) 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.') help='Target node name to be deleted. Example: iqn.2016-06.io.spdk:disk1.')
p.set_defaults(func=delete_target_node) p.set_defaults(func=delete_target_node)
@call_cmd
def delete_portal_group(args): def delete_portal_group(args):
rpc.iscsi.delete_portal_group(args.client, tag=args.tag) 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) 'tag', help='Portal group tag (unique, integer > 0)', type=int)
p.set_defaults(func=delete_portal_group) p.set_defaults(func=delete_portal_group)
@call_cmd
def delete_initiator_group(args): def delete_initiator_group(args):
rpc.iscsi.delete_initiator_group(args.client, tag=args.tag) 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) 'tag', help='Initiator group tag (unique, integer > 0)', type=int)
p.set_defaults(func=delete_initiator_group) p.set_defaults(func=delete_initiator_group)
@call_cmd
def get_iscsi_connections(args): def get_iscsi_connections(args):
print_dict(rpc.iscsi.get_iscsi_connections(args.client)) 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') help='Display iSCSI connections')
p.set_defaults(func=get_iscsi_connections) p.set_defaults(func=get_iscsi_connections)
@call_cmd
def get_iscsi_global_params(args): def get_iscsi_global_params(args):
print_dict(rpc.iscsi.get_iscsi_global_params(args.client)) print_dict(rpc.iscsi.get_iscsi_global_params(args.client))
p = subparsers.add_parser('get_iscsi_global_params', help='Display iSCSI global parameters') p = subparsers.add_parser('get_iscsi_global_params', help='Display iSCSI global parameters')
p.set_defaults(func=get_iscsi_global_params) p.set_defaults(func=get_iscsi_global_params)
@call_cmd
def get_scsi_devices(args): def get_scsi_devices(args):
print_dict(rpc.iscsi.get_scsi_devices(args.client)) 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) p.set_defaults(func=get_scsi_devices)
# log # log
@call_cmd
def set_log_flag(args): def set_log_flag(args):
rpc.log.set_log_flag(args.client, flag=args.flag) 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").') 'flag', help='log flag we want to set. (for example "nvme").')
p.set_defaults(func=set_log_flag) p.set_defaults(func=set_log_flag)
@call_cmd
def set_trace_flag(args): def set_trace_flag(args):
print("set_trace_flag is deprecated - use set_log_flag instead") print("set_trace_flag is deprecated - use set_log_flag instead")
rpc.log.set_trace_flag(args.client, flag=args.flag) 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").') 'flag', help='trace mask we want to set. (for example "nvme").')
p.set_defaults(func=set_trace_flag) p.set_defaults(func=set_trace_flag)
@call_cmd
def clear_log_flag(args): def clear_log_flag(args):
rpc.log.clear_log_flag(args.client, flag=args.flag) 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").') 'flag', help='log flag we want to clear. (for example "nvme").')
p.set_defaults(func=clear_log_flag) p.set_defaults(func=clear_log_flag)
@call_cmd
def clear_trace_flag(args): def clear_trace_flag(args):
print("clear_trace_flag is deprecated - use clear_log_flag instead") print("clear_trace_flag is deprecated - use clear_log_flag instead")
rpc.log.clear_trace_flag(args.client, flag=args.flag) 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").') 'flag', help='trace mask we want to clear. (for example "nvme").')
p.set_defaults(func=clear_trace_flag) p.set_defaults(func=clear_trace_flag)
@call_cmd
def get_log_flags(args): def get_log_flags(args):
print_dict(rpc.log.get_log_flags(args.client)) print_dict(rpc.log.get_log_flags(args.client))
p = subparsers.add_parser('get_log_flags', help='get log flags') p = subparsers.add_parser('get_log_flags', help='get log flags')
p.set_defaults(func=get_log_flags) p.set_defaults(func=get_log_flags)
@call_cmd
def get_trace_flags(args): def get_trace_flags(args):
print("get_trace_flags is deprecated - use get_log_flags instead") print("get_trace_flags is deprecated - use get_log_flags instead")
print_dict(rpc.log.get_trace_flags(args.client)) 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 = subparsers.add_parser('get_trace_flags', help='get trace flags')
p.set_defaults(func=get_trace_flags) p.set_defaults(func=get_trace_flags)
@call_cmd
def set_log_level(args): def set_log_level(args):
rpc.log.set_log_level(args.client, level=args.level) 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.add_argument('level', help='log level we want to set. (for example "DEBUG").')
p.set_defaults(func=set_log_level) p.set_defaults(func=set_log_level)
@call_cmd
def get_log_level(args): def get_log_level(args):
print_dict(rpc.log.get_log_level(args.client)) print_dict(rpc.log.get_log_level(args.client))
p = subparsers.add_parser('get_log_level', help='get log level') p = subparsers.add_parser('get_log_level', help='get log level')
p.set_defaults(func=get_log_level) p.set_defaults(func=get_log_level)
@call_cmd
def set_log_print_level(args): def set_log_print_level(args):
rpc.log.set_log_print_level(args.client, level=args.level) 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.add_argument('level', help='log print level we want to set. (for example "DEBUG").')
p.set_defaults(func=set_log_print_level) p.set_defaults(func=set_log_print_level)
@call_cmd
def get_log_print_level(args): def get_log_print_level(args):
print_dict(rpc.log.get_log_print_level(args.client)) 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) p.set_defaults(func=get_log_print_level)
# lvol # lvol
@call_cmd
def construct_lvol_store(args): def construct_lvol_store(args):
print(rpc.lvol.construct_lvol_store(args.client, print(rpc.lvol.construct_lvol_store(args.client,
bdev_name=args.bdev_name, 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.add_argument('-c', '--cluster-sz', help='size of cluster (in bytes)', type=int, required=False)
p.set_defaults(func=construct_lvol_store) p.set_defaults(func=construct_lvol_store)
@call_cmd
def rename_lvol_store(args): def rename_lvol_store(args):
rpc.lvol.rename_lvol_store(args.client, rpc.lvol.rename_lvol_store(args.client,
old_name=args.old_name, 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.add_argument('new_name', help='new name')
p.set_defaults(func=rename_lvol_store) p.set_defaults(func=rename_lvol_store)
@call_cmd
def construct_lvol_bdev(args): def construct_lvol_bdev(args):
print(rpc.lvol.construct_lvol_bdev(args.client, print(rpc.lvol.construct_lvol_bdev(args.client,
lvol_name=args.lvol_name, 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.add_argument('size', help='size in MiB for this bdev', type=int)
p.set_defaults(func=construct_lvol_bdev) p.set_defaults(func=construct_lvol_bdev)
@call_cmd
def snapshot_lvol_bdev(args): def snapshot_lvol_bdev(args):
print(rpc.lvol.snapshot_lvol_bdev(args.client, print(rpc.lvol.snapshot_lvol_bdev(args.client,
lvol_name=args.lvol_name, 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.add_argument('snapshot_name', help='lvol snapshot name')
p.set_defaults(func=snapshot_lvol_bdev) p.set_defaults(func=snapshot_lvol_bdev)
@call_cmd
def clone_lvol_bdev(args): def clone_lvol_bdev(args):
print(rpc.lvol.clone_lvol_bdev(args.client, print(rpc.lvol.clone_lvol_bdev(args.client,
snapshot_name=args.snapshot_name, 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.add_argument('clone_name', help='lvol clone name')
p.set_defaults(func=clone_lvol_bdev) p.set_defaults(func=clone_lvol_bdev)
@call_cmd
def rename_lvol_bdev(args): def rename_lvol_bdev(args):
rpc.lvol.rename_lvol_bdev(args.client, rpc.lvol.rename_lvol_bdev(args.client,
old_name=args.old_name, 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.add_argument('new_name', help='new lvol name')
p.set_defaults(func=rename_lvol_bdev) p.set_defaults(func=rename_lvol_bdev)
@call_cmd
def inflate_lvol_bdev(args): def inflate_lvol_bdev(args):
rpc.lvol.inflate_lvol_bdev(args.client, rpc.lvol.inflate_lvol_bdev(args.client,
name=args.name) 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.add_argument('name', help='lvol bdev name')
p.set_defaults(func=inflate_lvol_bdev) p.set_defaults(func=inflate_lvol_bdev)
@call_cmd
def decouple_parent_lvol_bdev(args): def decouple_parent_lvol_bdev(args):
rpc.lvol.decouple_parent_lvol_bdev(args.client, rpc.lvol.decouple_parent_lvol_bdev(args.client,
name=args.name) 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.add_argument('name', help='lvol bdev name')
p.set_defaults(func=decouple_parent_lvol_bdev) p.set_defaults(func=decouple_parent_lvol_bdev)
@call_cmd
def resize_lvol_bdev(args): def resize_lvol_bdev(args):
rpc.lvol.resize_lvol_bdev(args.client, rpc.lvol.resize_lvol_bdev(args.client,
name=args.name, 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.add_argument('size', help='new size in MiB for this bdev', type=int)
p.set_defaults(func=resize_lvol_bdev) p.set_defaults(func=resize_lvol_bdev)
@call_cmd
def destroy_lvol_bdev(args): def destroy_lvol_bdev(args):
rpc.lvol.destroy_lvol_bdev(args.client, rpc.lvol.destroy_lvol_bdev(args.client,
name=args.name) 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.add_argument('name', help='lvol bdev name')
p.set_defaults(func=destroy_lvol_bdev) p.set_defaults(func=destroy_lvol_bdev)
@call_cmd
def destroy_lvol_store(args): def destroy_lvol_store(args):
rpc.lvol.destroy_lvol_store(args.client, rpc.lvol.destroy_lvol_store(args.client,
uuid=args.uuid, 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.add_argument('-l', '--lvs-name', help='lvol store name', required=False)
p.set_defaults(func=destroy_lvol_store) p.set_defaults(func=destroy_lvol_store)
@call_cmd
def get_lvol_stores(args): def get_lvol_stores(args):
print_dict(rpc.lvol.get_lvol_stores(args.client, print_dict(rpc.lvol.get_lvol_stores(args.client,
uuid=args.uuid, 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.add_argument('-l', '--lvs-name', help='lvol store name', required=False)
p.set_defaults(func=get_lvol_stores) p.set_defaults(func=get_lvol_stores)
@call_cmd
def get_raid_bdevs(args): def get_raid_bdevs(args):
print_array(rpc.bdev.get_raid_bdevs(args.client, print_array(rpc.bdev.get_raid_bdevs(args.client,
category=args.category)) 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.add_argument('category', help='all or online or configuring or offline')
p.set_defaults(func=get_raid_bdevs) p.set_defaults(func=get_raid_bdevs)
@call_cmd
def construct_raid_bdev(args): def construct_raid_bdev(args):
base_bdevs = [] base_bdevs = []
for u in args.base_bdevs.strip().split(" "): 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.add_argument('-b', '--base-bdevs', help='base bdevs name, whitespace separated list in quotes', required=True)
p.set_defaults(func=construct_raid_bdev) p.set_defaults(func=construct_raid_bdev)
@call_cmd
def destroy_raid_bdev(args): def destroy_raid_bdev(args):
rpc.bdev.destroy_raid_bdev(args.client, rpc.bdev.destroy_raid_bdev(args.client,
name=args.name) 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) p.set_defaults(func=destroy_raid_bdev)
# split # split
@call_cmd
def construct_split_vbdev(args): def construct_split_vbdev(args):
print_array(rpc.bdev.construct_split_vbdev(args.client, print_array(rpc.bdev.construct_split_vbdev(args.client,
base_bdev=args.base_bdev, 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) exceed the base bdev size.""", type=int)
p.set_defaults(func=construct_split_vbdev) p.set_defaults(func=construct_split_vbdev)
@call_cmd
def destruct_split_vbdev(args): def destruct_split_vbdev(args):
rpc.bdev.destruct_split_vbdev(args.client, rpc.bdev.destruct_split_vbdev(args.client,
base_bdev=args.base_bdev) 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) p.set_defaults(func=destruct_split_vbdev)
# nbd # nbd
@call_cmd
def start_nbd_disk(args): def start_nbd_disk(args):
print(rpc.nbd.start_nbd_disk(args.client, print(rpc.nbd.start_nbd_disk(args.client,
bdev_name=args.bdev_name, 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.add_argument('nbd_device', help='Nbd device name to be assigned. Example: /dev/nbd0.')
p.set_defaults(func=start_nbd_disk) p.set_defaults(func=start_nbd_disk)
@call_cmd
def stop_nbd_disk(args): def stop_nbd_disk(args):
rpc.nbd.stop_nbd_disk(args.client, rpc.nbd.stop_nbd_disk(args.client,
nbd_device=args.nbd_device) 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.add_argument('nbd_device', help='Nbd device name to be stopped. Example: /dev/nbd0.')
p.set_defaults(func=stop_nbd_disk) p.set_defaults(func=stop_nbd_disk)
@call_cmd
def get_nbd_disks(args): def get_nbd_disks(args):
print_dict(rpc.nbd.get_nbd_disks(args.client, print_dict(rpc.nbd.get_nbd_disks(args.client,
nbd_device=args.nbd_device)) 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) p.set_defaults(func=get_nbd_disks)
# net # net
@call_cmd
def add_ip_address(args): def add_ip_address(args):
rpc.net.add_ip_address(args.client, ifc_index=args.ifc_index, ip_addr=args.ip_addr) 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.add_argument('ip_addr', help='ip address will be added.')
p.set_defaults(func=add_ip_address) p.set_defaults(func=add_ip_address)
@call_cmd
def delete_ip_address(args): def delete_ip_address(args):
rpc.net.delete_ip_address(args.client, ifc_index=args.ifc_index, ip_addr=args.ip_addr) 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.add_argument('ip_addr', help='ip address will be deleted.')
p.set_defaults(func=delete_ip_address) p.set_defaults(func=delete_ip_address)
@call_cmd
def get_interfaces(args): def get_interfaces(args):
print_dict(rpc.net.get_interfaces(args.client)) 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) p.set_defaults(func=get_interfaces)
# NVMe-oF # NVMe-oF
@call_cmd
def set_nvmf_target_options(args): def set_nvmf_target_options(args):
rpc.nvmf.set_nvmf_target_options(args.client, rpc.nvmf.set_nvmf_target_options(args.client,
max_queue_depth=args.max_queue_depth, 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.add_argument('-u', '--io-unit-size', help='I/O unit size (bytes)', type=int)
p.set_defaults(func=set_nvmf_target_options) p.set_defaults(func=set_nvmf_target_options)
@call_cmd
def set_nvmf_target_max_subsystems(args): def set_nvmf_target_max_subsystems(args):
rpc.nvmf.set_nvmf_target_max_subsystems(args.client, rpc.nvmf.set_nvmf_target_max_subsystems(args.client,
max_subsystems=args.max_subsystems) 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.add_argument('-x', '--max-subsystems', help='Max number of NVMf subsystems', type=int, required=True)
p.set_defaults(func=set_nvmf_target_max_subsystems) p.set_defaults(func=set_nvmf_target_max_subsystems)
@call_cmd
def set_nvmf_target_config(args): def set_nvmf_target_config(args):
rpc.nvmf.set_nvmf_target_config(args.client, rpc.nvmf.set_nvmf_target_config(args.client,
acceptor_poll_rate=args.acceptor_poll_rate, 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""") robin manner""")
p.set_defaults(func=set_nvmf_target_config) p.set_defaults(func=set_nvmf_target_config)
@call_cmd
def nvmf_create_transport(args): def nvmf_create_transport(args):
rpc.nvmf.nvmf_create_transport(args.client, rpc.nvmf.nvmf_create_transport(args.client,
trtype=args.trtype, 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.add_argument('-a', '--max-aq-depth', help='Max number of admin cmds per AQ', type=int)
p.set_defaults(func=nvmf_create_transport) p.set_defaults(func=nvmf_create_transport)
@call_cmd
def get_nvmf_transports(args): def get_nvmf_transports(args):
print_dict(rpc.nvmf.get_nvmf_transports(args.client)) 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') help='Display nvmf transports')
p.set_defaults(func=get_nvmf_transports) p.set_defaults(func=get_nvmf_transports)
@call_cmd
def get_nvmf_subsystems(args): def get_nvmf_subsystems(args):
print_dict(rpc.nvmf.get_nvmf_subsystems(args.client)) 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') help='Display nvmf subsystems')
p.set_defaults(func=get_nvmf_subsystems) p.set_defaults(func=get_nvmf_subsystems)
@call_cmd
def construct_nvmf_subsystem(args): def construct_nvmf_subsystem(args):
listen_addresses = None listen_addresses = None
hosts = 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) type=int, default=0)
p.set_defaults(func=construct_nvmf_subsystem) p.set_defaults(func=construct_nvmf_subsystem)
@call_cmd
def nvmf_subsystem_create(args): def nvmf_subsystem_create(args):
rpc.nvmf.nvmf_subsystem_create(args.client, rpc.nvmf.nvmf_subsystem_create(args.client,
nqn=args.nqn, 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) type=int, default=0)
p.set_defaults(func=nvmf_subsystem_create) p.set_defaults(func=nvmf_subsystem_create)
@call_cmd
def delete_nvmf_subsystem(args): def delete_nvmf_subsystem(args):
rpc.nvmf.delete_nvmf_subsystem(args.client, rpc.nvmf.delete_nvmf_subsystem(args.client,
nqn=args.subsystem_nqn) 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.') help='subsystem nqn to be deleted. Example: nqn.2016-06.io.spdk:cnode1.')
p.set_defaults(func=delete_nvmf_subsystem) p.set_defaults(func=delete_nvmf_subsystem)
@call_cmd
def nvmf_subsystem_add_listener(args): def nvmf_subsystem_add_listener(args):
rpc.nvmf.nvmf_subsystem_add_listener(args.client, rpc.nvmf.nvmf_subsystem_add_listener(args.client,
nqn=args.nqn, 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.add_argument('-s', '--trsvcid', help='NVMe-oF transport service id: e.g., a port number')
p.set_defaults(func=nvmf_subsystem_add_listener) p.set_defaults(func=nvmf_subsystem_add_listener)
@call_cmd
def nvmf_subsystem_remove_listener(args): def nvmf_subsystem_remove_listener(args):
rpc.nvmf.nvmf_subsystem_remove_listener(args.client, rpc.nvmf.nvmf_subsystem_remove_listener(args.client,
nqn=args.nqn, 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.add_argument('-s', '--trsvcid', help='NVMe-oF transport service id: e.g., a port number')
p.set_defaults(func=nvmf_subsystem_remove_listener) p.set_defaults(func=nvmf_subsystem_remove_listener)
@call_cmd
def nvmf_subsystem_add_ns(args): def nvmf_subsystem_add_ns(args):
rpc.nvmf.nvmf_subsystem_add_ns(args.client, rpc.nvmf.nvmf_subsystem_add_ns(args.client,
nqn=args.nqn, 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.add_argument('-u', '--uuid', help='Namespace UUID (optional)')
p.set_defaults(func=nvmf_subsystem_add_ns) p.set_defaults(func=nvmf_subsystem_add_ns)
@call_cmd
def nvmf_subsystem_remove_ns(args): def nvmf_subsystem_remove_ns(args):
rpc.nvmf.nvmf_subsystem_remove_ns(args.client, rpc.nvmf.nvmf_subsystem_remove_ns(args.client,
nqn=args.nqn, 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.add_argument('nsid', help='The requested NSID', type=int)
p.set_defaults(func=nvmf_subsystem_remove_ns) p.set_defaults(func=nvmf_subsystem_remove_ns)
@call_cmd
def nvmf_subsystem_add_host(args): def nvmf_subsystem_add_host(args):
rpc.nvmf.nvmf_subsystem_add_host(args.client, rpc.nvmf.nvmf_subsystem_add_host(args.client,
nqn=args.nqn, 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.add_argument('host', help='Host NQN to allow')
p.set_defaults(func=nvmf_subsystem_add_host) p.set_defaults(func=nvmf_subsystem_add_host)
@call_cmd
def nvmf_subsystem_remove_host(args): def nvmf_subsystem_remove_host(args):
rpc.nvmf.nvmf_subsystem_remove_host(args.client, rpc.nvmf.nvmf_subsystem_remove_host(args.client,
nqn=args.nqn, 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.add_argument('host', help='Host NQN to remove')
p.set_defaults(func=nvmf_subsystem_remove_host) p.set_defaults(func=nvmf_subsystem_remove_host)
@call_cmd
def nvmf_subsystem_allow_any_host(args): def nvmf_subsystem_allow_any_host(args):
rpc.nvmf.nvmf_subsystem_allow_any_host(args.client, rpc.nvmf.nvmf_subsystem_allow_any_host(args.client,
nqn=args.nqn, 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) p.set_defaults(func=nvmf_subsystem_allow_any_host)
# pmem # pmem
@call_cmd
def create_pmem_pool(args): def create_pmem_pool(args):
num_blocks = int((args.total_size * 1024 * 1024) / args.block_size) num_blocks = int((args.total_size * 1024 * 1024) / args.block_size)
rpc.pmem.create_pmem_pool(args.client, 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.add_argument('block_size', help='Block size for this pmem pool', type=int)
p.set_defaults(func=create_pmem_pool) p.set_defaults(func=create_pmem_pool)
@call_cmd
def pmem_pool_info(args): def pmem_pool_info(args):
print_dict(rpc.pmem.pmem_pool_info(args.client, print_dict(rpc.pmem.pmem_pool_info(args.client,
pmem_file=args.pmem_file)) 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.add_argument('pmem_file', help='Path to pmemblk pool file')
p.set_defaults(func=pmem_pool_info) p.set_defaults(func=pmem_pool_info)
@call_cmd
def delete_pmem_pool(args): def delete_pmem_pool(args):
rpc.pmem.delete_pmem_pool(args.client, rpc.pmem.delete_pmem_pool(args.client,
pmem_file=args.pmem_file) 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) p.set_defaults(func=delete_pmem_pool)
# subsystem # subsystem
@call_cmd
def get_subsystems(args): def get_subsystems(args):
print_dict(rpc.subsystem.get_subsystems(args.client)) 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.""") entry contain (unsorted) array of subsystems it depends on.""")
p.set_defaults(func=get_subsystems) p.set_defaults(func=get_subsystems)
@call_cmd
def get_subsystem_config(args): def get_subsystem_config(args):
print_dict(rpc.subsystem.get_subsystem_config(args.client, args.name)) 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) p.set_defaults(func=get_subsystem_config)
# vhost # vhost
@call_cmd
def set_vhost_controller_coalescing(args): def set_vhost_controller_coalescing(args):
rpc.vhost.set_vhost_controller_coalescing(args.client, rpc.vhost.set_vhost_controller_coalescing(args.client,
ctrlr=args.ctrlr, 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.add_argument('iops_threshold', help='IOPS threshold when coalescing is enabled', type=int)
p.set_defaults(func=set_vhost_controller_coalescing) p.set_defaults(func=set_vhost_controller_coalescing)
@call_cmd
def construct_vhost_scsi_controller(args): def construct_vhost_scsi_controller(args):
rpc.vhost.construct_vhost_scsi_controller(args.client, rpc.vhost.construct_vhost_scsi_controller(args.client,
ctrlr=args.ctrlr, 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.add_argument('--cpumask', help='cpu mask for this controller')
p.set_defaults(func=construct_vhost_scsi_controller) p.set_defaults(func=construct_vhost_scsi_controller)
@call_cmd
def add_vhost_scsi_lun(args): def add_vhost_scsi_lun(args):
rpc.vhost.add_vhost_scsi_lun(args.client, rpc.vhost.add_vhost_scsi_lun(args.client,
ctrlr=args.ctrlr, 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.add_argument('bdev_name', help='bdev name')
p.set_defaults(func=add_vhost_scsi_lun) p.set_defaults(func=add_vhost_scsi_lun)
@call_cmd
def remove_vhost_scsi_target(args): def remove_vhost_scsi_target(args):
rpc.vhost.remove_vhost_scsi_target(args.client, rpc.vhost.remove_vhost_scsi_target(args.client,
ctrlr=args.ctrlr, 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.add_argument('scsi_target_num', help='scsi_target_num', type=int)
p.set_defaults(func=remove_vhost_scsi_target) p.set_defaults(func=remove_vhost_scsi_target)
@call_cmd
def construct_vhost_blk_controller(args): def construct_vhost_blk_controller(args):
rpc.vhost.construct_vhost_blk_controller(args.client, rpc.vhost.construct_vhost_blk_controller(args.client,
ctrlr=args.ctrlr, 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.add_argument("-r", "--readonly", action='store_true', help='Set controller as read-only')
p.set_defaults(func=construct_vhost_blk_controller) p.set_defaults(func=construct_vhost_blk_controller)
@call_cmd
def construct_vhost_nvme_controller(args): def construct_vhost_nvme_controller(args):
rpc.vhost.construct_vhost_nvme_controller(args.client, rpc.vhost.construct_vhost_nvme_controller(args.client,
ctrlr=args.ctrlr, 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.add_argument('--cpumask', help='cpu mask for this controller')
p.set_defaults(func=construct_vhost_nvme_controller) p.set_defaults(func=construct_vhost_nvme_controller)
@call_cmd
def add_vhost_nvme_ns(args): def add_vhost_nvme_ns(args):
rpc.vhost.add_vhost_nvme_ns(args.client, rpc.vhost.add_vhost_nvme_ns(args.client,
ctrlr=args.ctrlr, 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.add_argument('bdev_name', help='block device name for a new Namespace')
p.set_defaults(func=add_vhost_nvme_ns) p.set_defaults(func=add_vhost_nvme_ns)
@call_cmd
def get_vhost_controllers(args): def get_vhost_controllers(args):
print_dict(rpc.vhost.get_vhost_controllers(args.client, args.name)) 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.add_argument('-n', '--name', help="Name of vhost controller", required=False)
p.set_defaults(func=get_vhost_controllers) p.set_defaults(func=get_vhost_controllers)
@call_cmd
def remove_vhost_controller(args): def remove_vhost_controller(args):
rpc.vhost.remove_vhost_controller(args.client, rpc.vhost.remove_vhost_controller(args.client,
ctrlr=args.ctrlr) 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.add_argument('ctrlr', help='controller name')
p.set_defaults(func=remove_vhost_controller) p.set_defaults(func=remove_vhost_controller)
@call_cmd
def construct_virtio_dev(args): def construct_virtio_dev(args):
print_array(rpc.vhost.construct_virtio_dev(args.client, print_array(rpc.vhost.construct_virtio_dev(args.client,
name=args.name, 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.add_argument('--vq-size', help='Size of each queue', type=int)
p.set_defaults(func=construct_virtio_dev) p.set_defaults(func=construct_virtio_dev)
@call_cmd
def construct_virtio_user_scsi_bdev(args): def construct_virtio_user_scsi_bdev(args):
print_array(rpc.vhost.construct_virtio_user_scsi_bdev(args.client, print_array(rpc.vhost.construct_virtio_user_scsi_bdev(args.client,
path=args.path, 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.add_argument('--vq-size', help='Size of each queue', type=int)
p.set_defaults(func=construct_virtio_user_scsi_bdev) p.set_defaults(func=construct_virtio_user_scsi_bdev)
@call_cmd
def construct_virtio_pci_scsi_bdev(args): def construct_virtio_pci_scsi_bdev(args):
print_array(rpc.vhost.construct_virtio_pci_scsi_bdev(args.client, print_array(rpc.vhost.construct_virtio_pci_scsi_bdev(args.client,
pci_address=args.pci_address, 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: <name>t<target_id>""") It will be inhereted by all created bdevs, which are named n the following format: <name>t<target_id>""")
p.set_defaults(func=construct_virtio_pci_scsi_bdev) p.set_defaults(func=construct_virtio_pci_scsi_bdev)
@call_cmd
def get_virtio_scsi_devs(args): def get_virtio_scsi_devs(args):
print_dict(rpc.vhost.get_virtio_scsi_devs(args.client)) 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 = subparsers.add_parser('get_virtio_scsi_devs', help='List all Virtio-SCSI devices.')
p.set_defaults(func=get_virtio_scsi_devs) p.set_defaults(func=get_virtio_scsi_devs)
@call_cmd
def remove_virtio_scsi_bdev(args): def remove_virtio_scsi_bdev(args):
rpc.vhost.remove_virtio_scsi_bdev(args.client, rpc.vhost.remove_virtio_scsi_bdev(args.client,
name=args.name) 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.add_argument('name', help='Virtio device name. E.g. VirtioUser0')
p.set_defaults(func=remove_virtio_scsi_bdev) p.set_defaults(func=remove_virtio_scsi_bdev)
@call_cmd
def remove_virtio_bdev(args): def remove_virtio_bdev(args):
rpc.vhost.remove_virtio_bdev(args.client, rpc.vhost.remove_virtio_bdev(args.client,
name=args.name) 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.add_argument('name', help='Virtio device name. E.g. VirtioUser0')
p.set_defaults(func=remove_virtio_bdev) p.set_defaults(func=remove_virtio_bdev)
@call_cmd
def construct_virtio_user_blk_bdev(args): def construct_virtio_user_blk_bdev(args):
print(rpc.vhost.construct_virtio_user_blk_bdev(args.client, print(rpc.vhost.construct_virtio_user_blk_bdev(args.client,
path=args.path, 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.add_argument('--vq-size', help='Size of each queue', type=int)
p.set_defaults(func=construct_virtio_user_blk_bdev) p.set_defaults(func=construct_virtio_user_blk_bdev)
@call_cmd
def construct_virtio_pci_blk_bdev(args): def construct_virtio_pci_blk_bdev(args):
print(rpc.vhost.construct_virtio_pci_blk_bdev(args.client, print(rpc.vhost.construct_virtio_pci_blk_bdev(args.client,
pci_address=args.pci_address, 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) p.set_defaults(func=construct_virtio_pci_blk_bdev)
# ioat # ioat
@call_cmd
def scan_ioat_copy_engine(args): def scan_ioat_copy_engine(args):
pci_whitelist = [] pci_whitelist = []
if 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) p.set_defaults(func=scan_ioat_copy_engine)
# send_nvme_cmd # send_nvme_cmd
@call_cmd
def send_nvme_cmd(args): def send_nvme_cmd(args):
print_dict(rpc.nvme.send_nvme_cmd(args.client, print_dict(rpc.nvme.send_nvme_cmd(args.client,
name=args.nvme_name, 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: try:
args.client = rpc.client.JSONRPCClient(args.server_addr, args.port, args.verbose, args.timeout) args.client = rpc.client.JSONRPCClient(args.server_addr, args.port, args.verbose, args.timeout)
args.func(args)
except JSONRPCException as ex: except JSONRPCException as ex:
print("Exception:")
print(ex.message) print(ex.message)
exit(1) exit(1)
args.func(args)