diff --git a/doc/jsonrpc.md b/doc/jsonrpc.md index c52b48fce..4d6d8499b 100644 --- a/doc/jsonrpc.md +++ b/doc/jsonrpc.md @@ -263,7 +263,6 @@ Example response: "set_iscsi_options", "set_bdev_options", "set_bdev_qos_limit", - "delete_bdev", "get_bdevs", "get_bdevs_iostat", "get_subsystem_config", @@ -710,41 +709,6 @@ Note that histogram field is trimmed, actual encoded histogram length is ~80kb. } ~~~ -## delete_bdev {#rpc_delete_bdev} - -Unregister a block device. This RPC is deprecated. Users should instead use -the specific deletion RPC for the bdev type to be removed (i.e. -delete_malloc_bdev). - -### Parameters - -Name | Optional | Type | Description ------------------------ | -------- | ----------- | ----------- -name | Required | string | Block device name - -### Example - -Example request: -~~~ -{ - "jsonrpc": "2.0", - "id": 1, - "method": "delete_bdev", - "params": { - "name": "Malloc0" - } -} -~~~ - -Example response: -~~~ -{ - "jsonrpc": "2.0", - "id": 1, - "result": true -} -~~~ - ## set_bdev_qos_limit {#rpc_set_bdev_qos_limit} Set the quality of service rate limit on a bdev. diff --git a/lib/bdev/rpc/bdev_rpc.c b/lib/bdev/rpc/bdev_rpc.c index d96969b93..cea85b7a3 100644 --- a/lib/bdev/rpc/bdev_rpc.c +++ b/lib/bdev/rpc/bdev_rpc.c @@ -363,75 +363,6 @@ invalid: } SPDK_RPC_REGISTER("get_bdevs", spdk_rpc_get_bdevs, SPDK_RPC_RUNTIME) -struct rpc_delete_bdev { - char *name; -}; - -static void -free_rpc_delete_bdev(struct rpc_delete_bdev *r) -{ - free(r->name); -} - -static const struct spdk_json_object_decoder rpc_delete_bdev_decoders[] = { - {"name", offsetof(struct rpc_delete_bdev, name), spdk_json_decode_string}, -}; - -static void -_spdk_rpc_delete_bdev_cb(void *cb_arg, int bdeverrno) -{ - struct spdk_jsonrpc_request *request = cb_arg; - struct spdk_json_write_ctx *w; - - w = spdk_jsonrpc_begin_result(request); - if (w == NULL) { - return; - } - - spdk_json_write_bool(w, bdeverrno == 0); - spdk_jsonrpc_end_result(request, w); -} - -static void -spdk_rpc_delete_bdev(struct spdk_jsonrpc_request *request, - const struct spdk_json_val *params) -{ - struct rpc_delete_bdev req = {}; - struct spdk_bdev *bdev; - - SPDK_ERRLOG("The delete_bdev RPC is deprecated. Please use the RPC specific\n"); - SPDK_ERRLOG("to the bdev type being deleted.\n"); - - if (spdk_json_decode_object(params, rpc_delete_bdev_decoders, - SPDK_COUNTOF(rpc_delete_bdev_decoders), - &req)) { - SPDK_ERRLOG("spdk_json_decode_object failed\n"); - goto invalid; - } - - if (req.name == NULL) { - SPDK_ERRLOG("missing name param\n"); - goto invalid; - } - - bdev = spdk_bdev_get_by_name(req.name); - if (bdev == NULL) { - SPDK_ERRLOG("bdev '%s' does not exist\n", req.name); - goto invalid; - } - - spdk_bdev_unregister(bdev, _spdk_rpc_delete_bdev_cb, request); - - free_rpc_delete_bdev(&req); - - return; - -invalid: - spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INVALID_PARAMS, "Invalid parameters"); - free_rpc_delete_bdev(&req); -} -SPDK_RPC_REGISTER("delete_bdev", spdk_rpc_delete_bdev, SPDK_RPC_RUNTIME) - struct rpc_set_bdev_qd_sampling_period { char *name; uint64_t period; diff --git a/scripts/rpc.py b/scripts/rpc.py index 3bc67b15e..165312310 100755 --- a/scripts/rpc.py +++ b/scripts/rpc.py @@ -465,15 +465,6 @@ if __name__ == "__main__": p.add_argument('-b', '--name', help="Name of the Blockdev. Example: Nvme0n1", required=False) p.set_defaults(func=get_bdevs_iostat) - def delete_bdev(args): - rpc.bdev.delete_bdev(args.client, - bdev_name=args.bdev_name) - - p = subparsers.add_parser('delete_bdev', help='Delete a blockdev') - p.add_argument( - 'bdev_name', help='Blockdev name to be deleted. Example: Malloc0.') - p.set_defaults(func=delete_bdev) - def enable_bdev_histogram(args): rpc.bdev.enable_bdev_histogram(args.client, name=args.name, enable=args.enable) diff --git a/scripts/rpc/bdev.py b/scripts/rpc/bdev.py index 0e55c4368..514319b49 100644 --- a/scripts/rpc/bdev.py +++ b/scripts/rpc/bdev.py @@ -576,16 +576,6 @@ def get_bdevs_iostat(client, name=None): return client.call('get_bdevs_iostat', params) -def delete_bdev(client, bdev_name): - """Remove a bdev from the system. - - Args: - bdev_name: name of bdev to delete - """ - params = {'name': bdev_name} - return client.call('delete_bdev', params) - - def enable_bdev_histogram(client, name, enable): """Control whether histogram is enabled for specified bdev. diff --git a/scripts/spdkcli/ui_root.py b/scripts/spdkcli/ui_root.py index 11827ee94..e2bf080ad 100644 --- a/scripts/spdkcli/ui_root.py +++ b/scripts/spdkcli/ui_root.py @@ -125,10 +125,6 @@ class UIRoot(UINode): def destruct_split_bdev(self, **kwargs): rpc.bdev.destruct_split_vbdev(self.client, **kwargs) - @verbose - def delete_bdev(self, name): - rpc.bdev.delete_bdev(self.client, bdev_name=name) - @verbose def create_malloc_bdev(self, **kwargs): response = rpc.bdev.construct_malloc_bdev(self.client, **kwargs) diff --git a/test/lvol/rpc_commands_lib.py b/test/lvol/rpc_commands_lib.py index 9ebd55440..b87917cc1 100644 --- a/test/lvol/rpc_commands_lib.py +++ b/test/lvol/rpc_commands_lib.py @@ -149,11 +149,6 @@ class Commands_Rpc(object): output, rc = self.rpc.destroy_lvol_store(name_opt, uuid) return rc - def delete_bdev(self, base_name): - print("INFO: RPC COMMAND delete_bdev") - output, rc = self.rpc.delete_bdev(base_name) - return rc - def delete_malloc_bdev(self, base_name): print("INFO: RPC COMMAND delete_malloc_bdev") output, rc = self.rpc.delete_malloc_bdev(base_name) diff --git a/test/pmem/test_plan.md b/test/pmem/test_plan.md index 18e99f364..10150a51b 100644 --- a/test/pmem/test_plan.md +++ b/test/pmem/test_plan.md @@ -241,7 +241,7 @@ Steps & expected results: - call construct_pmem_bdev with with correct arguments to create a pmem bdev - return code = 0, no errors - using get_bdevs check that pmem bdev was created -- delete pmem bdev using delete_bdev +- delete pmem bdev using delete_pmem_bdev - return code = 0, no error code - delete previously created pmem pool - return code = 0, no error code @@ -258,15 +258,15 @@ Steps & expected results: - using get_bdevs check that pmem bdev was created - call construct_pmem_bdev again on the same pmem file - return code != 0, error code = EEXIST -- delete pmem bdev using delete_bdev +- delete pmem bdev using delete_pmem_bdev - return code = 0, no error code - delete previously created pmem pool - return code = 0, no error code -### delete_bdev +### delete_pmem_bdev #### delete_bdev_tc1 -Positive test for deleting pmem bdevs using common delete_bdev call. +Positive test for deleting pmem bdevs using delete_pmem_bdev call. Steps & expected results: - construct malloc and aio bdevs (also NVMe if possible) - all calls - return code = 0, no errors; bdevs created @@ -278,12 +278,12 @@ block size=512, total size=256M - call construct_pmem_bdev and create a pmem bdev - return code = 0, no errors - using get_bdevs check that pmem bdev was created -- delete pmem bdev using delete_bdev +- delete pmem bdev using delete_pmem_bdev - return code = 0, no errors - using get_bdevs confirm that pmem bdev was deleted and other bdevs were unaffected. -#### delete_bdev_tc2 +#### delete_pmem_bdev_tc2 Negative test for deleting pmem bdev twice. Steps & expected results: - call create_pmem_pool with correct path argument, @@ -294,10 +294,10 @@ block size=512, total size=256M - call construct_pmem_bdev and create a pmem bdev - return code = 0, no errors - using get_bdevs check that pmem bdev was created -- delete pmem bdev using delete_bdev +- delete pmem bdev using delete_pmem_bdev - return code = 0, no errors - using get_bdevs confirm that pmem bdev was deleted -- delete pmem bdev using delete_bdev second time +- delete pmem bdev using delete_pmem_bdev second time - return code != 0, error code = ENODEV