diff --git a/doc/bdev.md b/doc/bdev.md index c06654bcb..350dc2e06 100644 --- a/doc/bdev.md +++ b/doc/bdev.md @@ -497,9 +497,9 @@ and demonstrates some other basic features such as the use of per I/O context. Example commands -`rpc.py construct_passthru_bdev -b aio -p pt` +`rpc.py bdev_passthru_create -b aio -p pt` -`rpc.py delete_passthru_bdev pt` +`rpc.py bdev_passthru_delete pt` # Pmem {#bdev_config_pmem} diff --git a/doc/jsonrpc.md b/doc/jsonrpc.md index 4fd8d52d0..2def5c116 100644 --- a/doc/jsonrpc.md +++ b/doc/jsonrpc.md @@ -290,7 +290,8 @@ Example response: "bdev_error_inject_error", "bdev_error_delete", "bdev_error_create", - "construct_passthru_bdev", + "bdev_passthru_create", + "bdev_passthru_delete" "bdev_nvme_apply_firmware", "delete_nvme_controller", "bdev_nvme_attach_controller", @@ -2315,7 +2316,7 @@ Example response: } ~~~ -## construct_passthru_bdev {#rpc_construct_passthru_bdev} +## bdev_passthru_create {#rpc_bdev_passthru_create} Create passthru bdev. This bdev type redirects all IO to it's base bdev. It has no other purpose than being an example and a starting point in development of new bdev type. @@ -2342,7 +2343,7 @@ Example request: "name": "Passsthru0" }, "jsonrpc": "2.0", - "method": "construct_passthru_bdev", + "method": "bdev_passthru_create", "id": 1 } ~~~ @@ -2357,7 +2358,7 @@ Example response: } ~~~ -## delete_passthru_bdev {#rpc_delete_passthru_bdev} +## bdev_passthru_delete {#rpc_bdev_passthru_delete} Delete passthru bdev. @@ -2377,7 +2378,7 @@ Example request: "name": "Passsthru0" }, "jsonrpc": "2.0", - "method": "delete_passthru_bdev", + "method": "bdev_passthru_delete", "id": 1 } diff --git a/module/bdev/passthru/vbdev_passthru.c b/module/bdev/passthru/vbdev_passthru.c index 0070d2b09..35e0146c1 100644 --- a/module/bdev/passthru/vbdev_passthru.c +++ b/module/bdev/passthru/vbdev_passthru.c @@ -385,7 +385,7 @@ vbdev_passthru_config_json(struct spdk_json_write_ctx *w) TAILQ_FOREACH(pt_node, &g_pt_nodes, link) { spdk_json_write_object_begin(w); - spdk_json_write_named_string(w, "method", "construct_passthru_bdev"); + spdk_json_write_named_string(w, "method", "bdev_passthru_create"); spdk_json_write_named_object_begin(w, "params"); spdk_json_write_named_string(w, "base_bdev_name", spdk_bdev_get_name(pt_node->base_bdev)); spdk_json_write_named_string(w, "name", spdk_bdev_get_name(&pt_node->pt_bdev)); @@ -687,7 +687,7 @@ vbdev_passthru_register(struct spdk_bdev *bdev) /* Create the passthru disk from the given bdev and vbdev name. */ int -create_passthru_disk(const char *bdev_name, const char *vbdev_name) +bdev_passthru_create_disk(const char *bdev_name, const char *vbdev_name) { struct spdk_bdev *bdev = NULL; int rc = 0; @@ -713,7 +713,7 @@ create_passthru_disk(const char *bdev_name, const char *vbdev_name) } void -delete_passthru_disk(struct spdk_bdev *bdev, spdk_bdev_unregister_cb cb_fn, void *cb_arg) +bdev_passthru_delete_disk(struct spdk_bdev *bdev, spdk_bdev_unregister_cb cb_fn, void *cb_arg) { struct bdev_names *name; diff --git a/module/bdev/passthru/vbdev_passthru.h b/module/bdev/passthru/vbdev_passthru.h index 7d8868e82..716e187c1 100644 --- a/module/bdev/passthru/vbdev_passthru.h +++ b/module/bdev/passthru/vbdev_passthru.h @@ -46,7 +46,7 @@ * \param vbdev_name Name of the pass through bdev. * \return 0 on success, other on failure. */ -int create_passthru_disk(const char *bdev_name, const char *vbdev_name); +int bdev_passthru_create_disk(const char *bdev_name, const char *vbdev_name); /** * Delete passthru bdev. @@ -55,7 +55,7 @@ int create_passthru_disk(const char *bdev_name, const char *vbdev_name); * \param cb_fn Function to call after deletion. * \param cb_arg Argument to pass to cb_fn. */ -void delete_passthru_disk(struct spdk_bdev *bdev, spdk_bdev_unregister_cb cb_fn, - void *cb_arg); +void bdev_passthru_delete_disk(struct spdk_bdev *bdev, spdk_bdev_unregister_cb cb_fn, + void *cb_arg); #endif /* SPDK_VBDEV_PASSTHRU_H */ diff --git a/module/bdev/passthru/vbdev_passthru_rpc.c b/module/bdev/passthru/vbdev_passthru_rpc.c index a551b8c44..f0f1c318f 100644 --- a/module/bdev/passthru/vbdev_passthru_rpc.c +++ b/module/bdev/passthru/vbdev_passthru_rpc.c @@ -38,38 +38,38 @@ #include "spdk_internal/log.h" /* Structure to hold the parameters for this RPC method. */ -struct rpc_construct_passthru { +struct rpc_bdev_passthru_create { char *base_bdev_name; char *name; }; /* Free the allocated memory resource after the RPC handling. */ static void -free_rpc_construct_passthru(struct rpc_construct_passthru *r) +free_rpc_bdev_passthru_create(struct rpc_bdev_passthru_create *r) { free(r->base_bdev_name); free(r->name); } /* Structure to decode the input parameters for this RPC method. */ -static const struct spdk_json_object_decoder rpc_construct_passthru_decoders[] = { - {"base_bdev_name", offsetof(struct rpc_construct_passthru, base_bdev_name), spdk_json_decode_string}, - {"name", offsetof(struct rpc_construct_passthru, name), spdk_json_decode_string}, +static const struct spdk_json_object_decoder rpc_bdev_passthru_create_decoders[] = { + {"base_bdev_name", offsetof(struct rpc_bdev_passthru_create, base_bdev_name), spdk_json_decode_string}, + {"name", offsetof(struct rpc_bdev_passthru_create, name), spdk_json_decode_string}, }; /* Decode the parameters for this RPC method and properly construct the passthru * device. Error status returned in the failed cases. */ static void -spdk_rpc_construct_passthru_bdev(struct spdk_jsonrpc_request *request, - const struct spdk_json_val *params) +spdk_rpc_bdev_passthru_create(struct spdk_jsonrpc_request *request, + const struct spdk_json_val *params) { - struct rpc_construct_passthru req = {NULL}; + struct rpc_bdev_passthru_create req = {NULL}; struct spdk_json_write_ctx *w; int rc; - if (spdk_json_decode_object(params, rpc_construct_passthru_decoders, - SPDK_COUNTOF(rpc_construct_passthru_decoders), + if (spdk_json_decode_object(params, rpc_bdev_passthru_create_decoders, + SPDK_COUNTOF(rpc_bdev_passthru_create_decoders), &req)) { SPDK_DEBUGLOG(SPDK_LOG_VBDEV_PASSTHRU, "spdk_json_decode_object failed\n"); spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INTERNAL_ERROR, @@ -77,7 +77,7 @@ spdk_rpc_construct_passthru_bdev(struct spdk_jsonrpc_request *request, goto cleanup; } - rc = create_passthru_disk(req.base_bdev_name, req.name); + rc = bdev_passthru_create_disk(req.base_bdev_name, req.name); if (rc != 0) { spdk_jsonrpc_send_error_response(request, rc, spdk_strerror(-rc)); goto cleanup; @@ -88,26 +88,27 @@ spdk_rpc_construct_passthru_bdev(struct spdk_jsonrpc_request *request, spdk_jsonrpc_end_result(request, w); cleanup: - free_rpc_construct_passthru(&req); + free_rpc_bdev_passthru_create(&req); } -SPDK_RPC_REGISTER("construct_passthru_bdev", spdk_rpc_construct_passthru_bdev, SPDK_RPC_RUNTIME) +SPDK_RPC_REGISTER("bdev_passthru_create", spdk_rpc_bdev_passthru_create, SPDK_RPC_RUNTIME) +SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_passthru_create, construct_passthru_bdev) -struct rpc_delete_passthru { +struct rpc_bdev_passthru_delete { char *name; }; static void -free_rpc_delete_passthru(struct rpc_delete_passthru *req) +free_rpc_bdev_passthru_delete(struct rpc_bdev_passthru_delete *req) { free(req->name); } -static const struct spdk_json_object_decoder rpc_delete_passthru_decoders[] = { - {"name", offsetof(struct rpc_delete_passthru, name), spdk_json_decode_string}, +static const struct spdk_json_object_decoder rpc_bdev_passthru_delete_decoders[] = { + {"name", offsetof(struct rpc_bdev_passthru_delete, name), spdk_json_decode_string}, }; static void -_spdk_rpc_delete_passthru_bdev_cb(void *cb_arg, int bdeverrno) +_spdk_rpc_bdev_passthru_delete_cb(void *cb_arg, int bdeverrno) { struct spdk_jsonrpc_request *request = cb_arg; struct spdk_json_write_ctx *w; @@ -118,14 +119,14 @@ _spdk_rpc_delete_passthru_bdev_cb(void *cb_arg, int bdeverrno) } static void -spdk_rpc_delete_passthru_bdev(struct spdk_jsonrpc_request *request, +spdk_rpc_bdev_passthru_delete(struct spdk_jsonrpc_request *request, const struct spdk_json_val *params) { - struct rpc_delete_passthru req = {NULL}; + struct rpc_bdev_passthru_delete req = {NULL}; struct spdk_bdev *bdev; - if (spdk_json_decode_object(params, rpc_delete_passthru_decoders, - SPDK_COUNTOF(rpc_delete_passthru_decoders), + if (spdk_json_decode_object(params, rpc_bdev_passthru_delete_decoders, + SPDK_COUNTOF(rpc_bdev_passthru_delete_decoders), &req)) { spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INTERNAL_ERROR, "spdk_json_decode_object failed"); @@ -138,9 +139,10 @@ spdk_rpc_delete_passthru_bdev(struct spdk_jsonrpc_request *request, goto cleanup; } - delete_passthru_disk(bdev, _spdk_rpc_delete_passthru_bdev_cb, request); + bdev_passthru_delete_disk(bdev, _spdk_rpc_bdev_passthru_delete_cb, request); cleanup: - free_rpc_delete_passthru(&req); + free_rpc_bdev_passthru_delete(&req); } -SPDK_RPC_REGISTER("delete_passthru_bdev", spdk_rpc_delete_passthru_bdev, SPDK_RPC_RUNTIME) +SPDK_RPC_REGISTER("bdev_passthru_delete", spdk_rpc_bdev_passthru_delete, SPDK_RPC_RUNTIME) +SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_passthru_delete, delete_passthru_bdev) diff --git a/scripts/rpc.py b/scripts/rpc.py index 46f0adc4a..5e4af3f3c 100755 --- a/scripts/rpc.py +++ b/scripts/rpc.py @@ -551,24 +551,25 @@ if __name__ == "__main__": p.add_argument('name', help='pmem bdev name') p.set_defaults(func=bdev_pmem_delete) - def construct_passthru_bdev(args): - print_json(rpc.bdev.construct_passthru_bdev(args.client, - base_bdev_name=args.base_bdev_name, - name=args.name)) + def bdev_passthru_create(args): + print_json(rpc.bdev.bdev_passthru_create(args.client, + base_bdev_name=args.base_bdev_name, + name=args.name)) - p = subparsers.add_parser('construct_passthru_bdev', + p = subparsers.add_parser('bdev_passthru_create', aliases=['construct_passthru_bdev'], help='Add a pass through bdev on existing bdev') p.add_argument('-b', '--base-bdev-name', help="Name of the existing 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=bdev_passthru_create) - def delete_passthru_bdev(args): - rpc.bdev.delete_passthru_bdev(args.client, + def bdev_passthru_delete(args): + rpc.bdev.bdev_passthru_delete(args.client, name=args.name) - p = subparsers.add_parser('delete_passthru_bdev', help='Delete a pass through bdev') + p = subparsers.add_parser('bdev_passthru_delete', aliases=['delete_passthru_bdev'], + help='Delete a pass through bdev') p.add_argument('name', help='pass through bdev name') - p.set_defaults(func=delete_passthru_bdev) + p.set_defaults(func=bdev_passthru_delete) def bdev_get_bdevs(args): print_dict(rpc.bdev.bdev_get_bdevs(args.client, diff --git a/scripts/rpc/bdev.py b/scripts/rpc/bdev.py index 172de2aa2..c2c0635f0 100644 --- a/scripts/rpc/bdev.py +++ b/scripts/rpc/bdev.py @@ -611,7 +611,8 @@ def bdev_pmem_delete(client, name): return client.call('bdev_pmem_delete', params) -def construct_passthru_bdev(client, base_bdev_name, name): +@deprecated_alias('construct_passthru_bdev') +def bdev_passthru_create(client, base_bdev_name, name): """Construct a pass-through block device. Args: @@ -625,17 +626,18 @@ def construct_passthru_bdev(client, base_bdev_name, name): 'base_bdev_name': base_bdev_name, 'name': name, } - return client.call('construct_passthru_bdev', params) + return client.call('bdev_passthru_create', params) -def delete_passthru_bdev(client, name): +@deprecated_alias('delete_passthru_bdev') +def bdev_passthru_delete(client, name): """Remove pass through bdev from the system. Args: name: name of pass through bdev to delete """ params = {'name': name} - return client.call('delete_passthru_bdev', params) + return client.call('bdev_passthru_delete', params) def construct_split_vbdev(client, base_bdev, split_count, split_size_mb=None): diff --git a/test/bdev/blockdev.sh b/test/bdev/blockdev.sh index 77e85a405..053cee230 100755 --- a/test/bdev/blockdev.sh +++ b/test/bdev/blockdev.sh @@ -42,7 +42,7 @@ function nbd_function_test() { nbd_rpc_start_stop_verify $rpc_server "${bdev_list[*]}" nbd_rpc_data_verify $rpc_server "${bdev_list[*]}" "${nbd_list[*]}" - $rpc_py -s $rpc_server delete_passthru_bdev TestPT + $rpc_py -s $rpc_server bdev_passthru_delete TestPT killprocess $nbd_pid trap - SIGINT SIGTERM EXIT diff --git a/test/json_config/clear_config.py b/test/json_config/clear_config.py index 8a9ad6fb1..af4be3b37 100755 --- a/test/json_config/clear_config.py +++ b/test/json_config/clear_config.py @@ -41,7 +41,7 @@ def get_bdev_delete_method(bdev): 'construct_virtio_dev': "remove_virtio_bdev", 'bdev_crypto_create': "bdev_crypto_delete", 'bdev_delay_create': "bdev_delay_delete", - 'construct_passthru_bdev': "delete_passthru_bdev", + 'bdev_passthru_create': "bdev_passthru_delete", 'bdev_compress_create': 'bdev_compress_delete', } destroy_method = None diff --git a/test/json_config/json_config.sh b/test/json_config/json_config.sh index 25986ebe6..60ef1c594 100755 --- a/test/json_config/json_config.sh +++ b/test/json_config/json_config.sh @@ -169,7 +169,7 @@ function create_bdev_subsystem_config() { tgt_rpc construct_split_vbdev $lvol_store_base_bdev 2 tgt_rpc construct_split_vbdev Malloc0 3 tgt_rpc bdev_malloc_create 8 4096 --name Malloc3 - tgt_rpc construct_passthru_bdev -b Malloc3 -p PTBdevFromMalloc3 + tgt_rpc bdev_passthru_create -b Malloc3 -p PTBdevFromMalloc3 tgt_rpc bdev_null_create Null0 32 512