From 160850f0a6051b80c59ba7c8662efc2696b8f937 Mon Sep 17 00:00:00 2001 From: Tomasz Zawadzki Date: Thu, 21 Jun 2018 06:46:59 -0400 Subject: [PATCH] rpc/bdev: construct RPC return a string instead array Construct calls that create single new bdev, now return a string instead of array with single element. Change-Id: Iad841b8e5eab0265693efb6be472354ea616c562 Signed-off-by: Tomasz Zawadzki Reviewed-on: https://review.gerrithub.io/416081 Tested-by: SPDK Automated Test System Reviewed-by: Maciej Szwed Reviewed-by: Shuhei Matsumoto Reviewed-by: Ben Walker Reviewed-by: Jim Harris --- lib/bdev/aio/bdev_aio_rpc.c | 2 - lib/bdev/iscsi/bdev_iscsi_rpc.c | 2 - lib/bdev/lvol/vbdev_lvol_rpc.c | 8 -- lib/bdev/malloc/bdev_malloc_rpc.c | 2 - lib/bdev/null/bdev_null_rpc.c | 2 - lib/bdev/passthru/vbdev_passthru_rpc.c | 2 - lib/bdev/pmem/bdev_pmem_rpc.c | 2 - lib/bdev/rbd/bdev_rbd_rpc.c | 2 - lib/bdev/virtio/bdev_virtio_rpc.c | 4 - scripts/rpc.py | 118 ++++++++++++------------- scripts/rpc/bdev.py | 18 ++-- scripts/rpc/lvol.py | 9 ++ 12 files changed, 77 insertions(+), 94 deletions(-) diff --git a/lib/bdev/aio/bdev_aio_rpc.c b/lib/bdev/aio/bdev_aio_rpc.c index 52b9ba7d1..10dd237a7 100644 --- a/lib/bdev/aio/bdev_aio_rpc.c +++ b/lib/bdev/aio/bdev_aio_rpc.c @@ -87,9 +87,7 @@ spdk_rpc_construct_aio_bdev(struct spdk_jsonrpc_request *request, return; } - spdk_json_write_array_begin(w); spdk_json_write_string(w, spdk_bdev_get_name(bdev)); - spdk_json_write_array_end(w); spdk_jsonrpc_end_result(request, w); return; diff --git a/lib/bdev/iscsi/bdev_iscsi_rpc.c b/lib/bdev/iscsi/bdev_iscsi_rpc.c index b163672f9..3682b6129 100644 --- a/lib/bdev/iscsi/bdev_iscsi_rpc.c +++ b/lib/bdev/iscsi/bdev_iscsi_rpc.c @@ -76,9 +76,7 @@ construct_iscsi_bdev_cb(void *cb_arg, struct spdk_bdev *bdev, int status) return; } - spdk_json_write_array_begin(w); spdk_json_write_string(w, spdk_bdev_get_name(bdev)); - spdk_json_write_array_end(w); spdk_jsonrpc_end_result(request, w); } } diff --git a/lib/bdev/lvol/vbdev_lvol_rpc.c b/lib/bdev/lvol/vbdev_lvol_rpc.c index 7786c5d5f..fe8c76b9e 100644 --- a/lib/bdev/lvol/vbdev_lvol_rpc.c +++ b/lib/bdev/lvol/vbdev_lvol_rpc.c @@ -107,9 +107,7 @@ _spdk_rpc_lvol_store_construct_cb(void *cb_arg, struct spdk_lvol_store *lvol_sto return; } - spdk_json_write_array_begin(w); spdk_json_write_string(w, lvol_store_uuid); - spdk_json_write_array_end(w); spdk_jsonrpc_end_result(request, w); return; @@ -358,9 +356,7 @@ _spdk_rpc_construct_lvol_bdev_cb(void *cb_arg, struct spdk_lvol *lvol, int lvole return; } - spdk_json_write_array_begin(w); spdk_json_write_string(w, lvol->bdev->name); - spdk_json_write_array_end(w); spdk_jsonrpc_end_result(request, w); return; @@ -447,9 +443,7 @@ _spdk_rpc_snapshot_lvol_bdev_cb(void *cb_arg, struct spdk_lvol *lvol, int lvoler return; } - spdk_json_write_array_begin(w); spdk_json_write_string(w, lvol->bdev->name); - spdk_json_write_array_end(w); spdk_jsonrpc_end_result(request, w); return; @@ -535,9 +529,7 @@ _spdk_rpc_clone_lvol_bdev_cb(void *cb_arg, struct spdk_lvol *lvol, int lvolerrno return; } - spdk_json_write_array_begin(w); spdk_json_write_string(w, lvol->bdev->name); - spdk_json_write_array_end(w); spdk_jsonrpc_end_result(request, w); return; diff --git a/lib/bdev/malloc/bdev_malloc_rpc.c b/lib/bdev/malloc/bdev_malloc_rpc.c index 6779df9bc..4066cf2fb 100644 --- a/lib/bdev/malloc/bdev_malloc_rpc.c +++ b/lib/bdev/malloc/bdev_malloc_rpc.c @@ -95,9 +95,7 @@ spdk_rpc_construct_malloc_bdev(struct spdk_jsonrpc_request *request, return; } - spdk_json_write_array_begin(w); spdk_json_write_string(w, spdk_bdev_get_name(bdev)); - spdk_json_write_array_end(w); spdk_jsonrpc_end_result(request, w); return; diff --git a/lib/bdev/null/bdev_null_rpc.c b/lib/bdev/null/bdev_null_rpc.c index 02cc2d3b1..e72c4992f 100644 --- a/lib/bdev/null/bdev_null_rpc.c +++ b/lib/bdev/null/bdev_null_rpc.c @@ -95,9 +95,7 @@ spdk_rpc_construct_null_bdev(struct spdk_jsonrpc_request *request, return; } - spdk_json_write_array_begin(w); spdk_json_write_string(w, bdev->name); - spdk_json_write_array_end(w); spdk_jsonrpc_end_result(request, w); free_rpc_construct_null(&req); return; diff --git a/lib/bdev/passthru/vbdev_passthru_rpc.c b/lib/bdev/passthru/vbdev_passthru_rpc.c index 898d62ba5..025deebb7 100644 --- a/lib/bdev/passthru/vbdev_passthru_rpc.c +++ b/lib/bdev/passthru/vbdev_passthru_rpc.c @@ -86,9 +86,7 @@ spdk_rpc_construct_passthru_bdev(struct spdk_jsonrpc_request *request, return; } - spdk_json_write_array_begin(w); spdk_json_write_string(w, req.passthru_bdev_name); - spdk_json_write_array_end(w); spdk_jsonrpc_end_result(request, w); free_rpc_construct_passthru(&req); return; diff --git a/lib/bdev/pmem/bdev_pmem_rpc.c b/lib/bdev/pmem/bdev_pmem_rpc.c index 3a70d3119..5a44002e0 100644 --- a/lib/bdev/pmem/bdev_pmem_rpc.c +++ b/lib/bdev/pmem/bdev_pmem_rpc.c @@ -86,9 +86,7 @@ spdk_rpc_construct_pmem_bdev(struct spdk_jsonrpc_request *request, return; } - spdk_json_write_array_begin(w); spdk_json_write_string(w, spdk_bdev_get_name(bdev)); - spdk_json_write_array_end(w); spdk_jsonrpc_end_result(request, w); free_rpc_construct_pmem_bdev(&req); diff --git a/lib/bdev/rbd/bdev_rbd_rpc.c b/lib/bdev/rbd/bdev_rbd_rpc.c index f293c7a8c..655a766e4 100644 --- a/lib/bdev/rbd/bdev_rbd_rpc.c +++ b/lib/bdev/rbd/bdev_rbd_rpc.c @@ -86,9 +86,7 @@ spdk_rpc_construct_rbd_bdev(struct spdk_jsonrpc_request *request, return; } - spdk_json_write_array_begin(w); spdk_json_write_string(w, spdk_bdev_get_name(bdev)); - spdk_json_write_array_end(w); spdk_jsonrpc_end_result(request, w); return; diff --git a/lib/bdev/virtio/bdev_virtio_rpc.c b/lib/bdev/virtio/bdev_virtio_rpc.c index 98a2ef5a6..2a561d156 100644 --- a/lib/bdev/virtio/bdev_virtio_rpc.c +++ b/lib/bdev/virtio/bdev_virtio_rpc.c @@ -348,9 +348,7 @@ spdk_rpc_create_virtio_user_blk_bdev(struct spdk_jsonrpc_request *request, return; } - spdk_json_write_array_begin(w); spdk_json_write_string(w, spdk_bdev_get_name(bdev)); - spdk_json_write_array_end(w); spdk_jsonrpc_end_result(request, w); return; @@ -405,9 +403,7 @@ spdk_rpc_create_virtio_pci_blk_bdev(struct spdk_jsonrpc_request *request, return; } - spdk_json_write_array_begin(w); spdk_json_write_string(w, spdk_bdev_get_name(bdev)); - spdk_json_write_array_end(w); spdk_jsonrpc_end_result(request, w); return; diff --git a/scripts/rpc.py b/scripts/rpc.py index 19622293d..fb7813f01 100755 --- a/scripts/rpc.py +++ b/scripts/rpc.py @@ -124,11 +124,11 @@ if __name__ == "__main__": @call_cmd def construct_malloc_bdev(args): num_blocks = (args.total_size * 1024 * 1024) // args.block_size - print_array(rpc.bdev.construct_malloc_bdev(args.client, - num_blocks=num_blocks, - block_size=args.block_size, - name=args.name, - uuid=args.uuid)) + print(rpc.bdev.construct_malloc_bdev(args.client, + num_blocks=num_blocks, + block_size=args.block_size, + name=args.name, + uuid=args.uuid)) p = subparsers.add_parser('construct_malloc_bdev', help='Add a bdev with malloc backend') @@ -151,11 +151,11 @@ if __name__ == "__main__": @call_cmd def construct_null_bdev(args): num_blocks = (args.total_size * 1024 * 1024) // args.block_size - print_array(rpc.bdev.construct_null_bdev(args.client, - num_blocks=num_blocks, - block_size=args.block_size, - name=args.name, - uuid=args.uuid)) + print(rpc.bdev.construct_null_bdev(args.client, + num_blocks=num_blocks, + block_size=args.block_size, + name=args.name, + uuid=args.uuid)) p = subparsers.add_parser('construct_null_bdev', help='Add a bdev with null backend') @@ -168,10 +168,10 @@ if __name__ == "__main__": @call_cmd def construct_aio_bdev(args): - print_array(rpc.bdev.construct_aio_bdev(args.client, - filename=args.filename, - name=args.name, - block_size=args.block_size)) + print(rpc.bdev.construct_aio_bdev(args.client, + filename=args.filename, + name=args.name, + block_size=args.block_size)) p = subparsers.add_parser('construct_aio_bdev', help='Add a bdev with aio backend') @@ -215,11 +215,11 @@ if __name__ == "__main__": @call_cmd def construct_rbd_bdev(args): - print_array(rpc.bdev.construct_rbd_bdev(args.client, - name=args.name, - pool_name=args.pool_name, - rbd_name=args.rbd_name, - block_size=args.block_size)) + print(rpc.bdev.construct_rbd_bdev(args.client, + name=args.name, + pool_name=args.pool_name, + rbd_name=args.rbd_name, + block_size=args.block_size)) p = subparsers.add_parser('construct_rbd_bdev', help='Add a bdev with ceph rbd backend') @@ -231,8 +231,8 @@ if __name__ == "__main__": @call_cmd def construct_error_bdev(args): - rpc.bdev.construct_error_bdev(args.client, - base_name=args.base_name) + print(rpc.bdev.construct_error_bdev(args.client, + base_name=args.base_name)) p = subparsers.add_parser('construct_error_bdev', help='Add bdev with error injection backend') @@ -250,10 +250,10 @@ if __name__ == "__main__": @call_cmd def construct_iscsi_bdev(args): - rpc.bdev.construct_iscsi_bdev(args.client, - name=args.name, - url=args.url, - initiator_iqn=args.initiator_iqn) + print(rpc.bdev.construct_iscsi_bdev(args.client, + name=args.name, + url=args.url, + initiator_iqn=args.initiator_iqn)) p = subparsers.add_parser('construct_iscsi_bdev', help='Add bdev with iSCSI initiator backend') @@ -273,9 +273,9 @@ if __name__ == "__main__": @call_cmd def construct_pmem_bdev(args): - print_array(rpc.bdev.construct_pmem_bdev(args.client, - pmem_file=args.pmem_file, - name=args.name)) + print(rpc.bdev.construct_pmem_bdev(args.client, + pmem_file=args.pmem_file, + name=args.name)) p = subparsers.add_parser('construct_pmem_bdev', help='Add a bdev with pmem backend') p.add_argument('pmem_file', help='Path to pmemblk pool file') @@ -284,9 +284,9 @@ if __name__ == "__main__": @call_cmd def construct_passthru_bdev(args): - print_array(rpc.bdev.construct_passthru_bdev(args.client, - base_bdev_name=args.base_bdev_name, - passthru_bdev_name=args.passthru_bdev_name)) + print(rpc.bdev.construct_passthru_bdev(args.client, + base_bdev_name=args.base_bdev_name, + passthru_bdev_name=args.passthru_bdev_name)) p = subparsers.add_parser('construct_passthru_bdev', help='Add a pass through bdev on existing bdev') @@ -659,10 +659,10 @@ if __name__ == "__main__": # lvol @call_cmd def construct_lvol_store(args): - print_array(rpc.lvol.construct_lvol_store(args.client, - bdev_name=args.bdev_name, - lvs_name=args.lvs_name, - cluster_sz=args.cluster_sz)) + print(rpc.lvol.construct_lvol_store(args.client, + bdev_name=args.bdev_name, + lvs_name=args.lvs_name, + cluster_sz=args.cluster_sz)) p = subparsers.add_parser('construct_lvol_store', help='Add logical volume store on base bdev') p.add_argument('bdev_name', help='base bdev name') @@ -683,12 +683,12 @@ if __name__ == "__main__": @call_cmd def construct_lvol_bdev(args): - print_array(rpc.lvol.construct_lvol_bdev(args.client, - lvol_name=args.lvol_name, - size=args.size * 1024 * 1024, - thin_provision=args.thin_provision, - uuid=args.uuid, - lvs_name=args.lvs_name)) + print(rpc.lvol.construct_lvol_bdev(args.client, + lvol_name=args.lvol_name, + size=args.size * 1024 * 1024, + thin_provision=args.thin_provision, + uuid=args.uuid, + lvs_name=args.lvs_name)) p = subparsers.add_parser('construct_lvol_bdev', help='Add a bdev with an logical volume backend') p.add_argument('-u', '--uuid', help='lvol store UUID', required=False) @@ -700,9 +700,9 @@ if __name__ == "__main__": @call_cmd def snapshot_lvol_bdev(args): - rpc.lvol.snapshot_lvol_bdev(args.client, - lvol_name=args.lvol_name, - snapshot_name=args.snapshot_name) + print(rpc.lvol.snapshot_lvol_bdev(args.client, + lvol_name=args.lvol_name, + snapshot_name=args.snapshot_name)) p = subparsers.add_parser('snapshot_lvol_bdev', help='Create a snapshot of an lvol bdev') p.add_argument('lvol_name', help='lvol bdev name') @@ -711,9 +711,9 @@ if __name__ == "__main__": @call_cmd def clone_lvol_bdev(args): - rpc.lvol.clone_lvol_bdev(args.client, - snapshot_name=args.snapshot_name, - clone_name=args.clone_name) + print(rpc.lvol.clone_lvol_bdev(args.client, + snapshot_name=args.snapshot_name, + clone_name=args.clone_name)) p = subparsers.add_parser('clone_lvol_bdev', help='Create a clone of an lvol snapshot') p.add_argument('snapshot_name', help='lvol snapshot name') @@ -794,10 +794,10 @@ if __name__ == "__main__": # split @call_cmd def construct_split_vbdev(args): - print_dict(rpc.bdev.construct_split_vbdev(args.client, - base_bdev=args.base_bdev, - split_count=args.split_count, - split_size_mb=args.split_size_mb)) + print_array(rpc.bdev.construct_split_vbdev(args.client, + base_bdev=args.base_bdev, + split_count=args.split_count, + split_size_mb=args.split_size_mb)) p = subparsers.add_parser('construct_split_vbdev', help="""Add given disk name to split config. If bdev with base_name name exist the split bdevs will be created right away, if not split bdevs will be created when base bdev became @@ -1312,11 +1312,11 @@ if __name__ == "__main__": @call_cmd def construct_virtio_user_blk_bdev(args): - print_dict(rpc.vhost.construct_virtio_user_blk_bdev(args.client, - path=args.path, - name=args.name, - vq_count=args.vq_count, - vq_size=args.vq_size)) + print(rpc.vhost.construct_virtio_user_blk_bdev(args.client, + path=args.path, + name=args.name, + vq_count=args.vq_count, + vq_size=args.vq_size)) p = subparsers.add_parser('construct_virtio_user_blk_bdev', help='Connect to a virtio user blk device.') p.add_argument('path', help='Path to Virtio BLK socket') @@ -1327,9 +1327,9 @@ if __name__ == "__main__": @call_cmd def construct_virtio_pci_blk_bdev(args): - print_dict(rpc.vhost.construct_virtio_pci_blk_bdev(args.client, - pci_address=args.pci_address, - name=args.name)) + print(rpc.vhost.construct_virtio_pci_blk_bdev(args.client, + pci_address=args.pci_address, + name=args.name)) p = subparsers.add_parser('construct_virtio_pci_blk_bdev', help='Create a Virtio Blk device from a virtio-pci device.') p.add_argument('pci_address', help="""PCI address in domain:bus:device.function format or diff --git a/scripts/rpc/bdev.py b/scripts/rpc/bdev.py index 4cd024d91..312af022c 100755 --- a/scripts/rpc/bdev.py +++ b/scripts/rpc/bdev.py @@ -25,7 +25,7 @@ def construct_malloc_bdev(client, num_blocks, block_size, name=None, uuid=None): uuid: UUID of block device (optional) Returns: - List of created block devices. + Name of created block device. """ params = {'num_blocks': num_blocks, 'block_size': block_size} if name: @@ -55,7 +55,7 @@ def construct_null_bdev(client, num_blocks, block_size, name, uuid=None): uuid: UUID of block device (optional) Returns: - List of created block devices. + Name of created block device. """ params = {'name': name, 'num_blocks': num_blocks, 'block_size': block_size} @@ -73,7 +73,7 @@ def construct_aio_bdev(client, filename, name, block_size=None): block_size: block size of device (optional; autodetected if omitted) Returns: - List of created block devices. + Name of created block device. """ params = {'name': name, 'filename': filename} @@ -95,7 +95,7 @@ def delete_aio_bdev(client, name): def construct_nvme_bdev(client, name, trtype, traddr, adrfam=None, trsvcid=None, subnqn=None): - """Construct NVMe namespace block devices. + """Construct NVMe namespace block device. Args: name: bdev name prefix; "n" + namespace ID will be appended to create unique names @@ -106,7 +106,7 @@ def construct_nvme_bdev(client, name, trtype, traddr, adrfam=None, trsvcid=None, subnqn: subsystem NQN to connect to (optional) Returns: - List of created block devices. + Name of created block device. """ params = {'name': name, 'trtype': trtype, @@ -134,7 +134,7 @@ def construct_rbd_bdev(client, pool_name, rbd_name, block_size, name=None): name: name of block device (optional) Returns: - List of created block devices. + Name of created block device. """ params = { 'pool_name': pool_name, @@ -177,7 +177,7 @@ def construct_iscsi_bdev(client, name, url, initiator_iqn): initiator_iqn: IQN name to be used by initiator Returns: - List of created block devices. + Name of created block device. """ params = { 'name': name, @@ -205,7 +205,7 @@ def construct_pmem_bdev(client, pmem_file, name): name: name of block device Returns: - List of created block devices. + Name of created block device. """ params = { 'pmem_file': pmem_file, @@ -222,7 +222,7 @@ def construct_passthru_bdev(client, base_bdev_name, passthru_bdev_name): passthru_bdev_name: name of block device Returns: - List of created block devices. + Name of created block device. """ params = { 'base_bdev_name': base_bdev_name, diff --git a/scripts/rpc/lvol.py b/scripts/rpc/lvol.py index 11251f526..e7e05a3b2 100755 --- a/scripts/rpc/lvol.py +++ b/scripts/rpc/lvol.py @@ -40,6 +40,9 @@ def construct_lvol_bdev(client, lvol_name, size, thin_provision=False, uuid=None lvs_name: name of logical volume store to create logical volume on (optional) Either uuid or lvs_name must be specified, but not both. + + Returns: + Name of created logical volume block device. """ if (uuid and lvs_name) or (not uuid and not lvs_name): raise ValueError("Either uuid or lvs_name must be specified, but not both") @@ -60,6 +63,9 @@ def snapshot_lvol_bdev(client, lvol_name, snapshot_name): Args: lvol_name: logical volume to create a snapshot from snapshot_name: name for the newly created snapshot + + Returns: + Name of created logical volume snapshot. """ params = { 'lvol_name': lvol_name, @@ -74,6 +80,9 @@ def clone_lvol_bdev(client, snapshot_name, clone_name): Args: snapshot_name: snapshot to clone clone_name: name of logical volume to create + + Returns: + Name of created logical volume clone. """ params = { 'snapshot_name': snapshot_name,