Commit db524432 authored by Jim Harris's avatar Jim Harris Committed by Darek Stojaczyk
Browse files

bdev: remove delete_bdev RPC



This RPC was deprecated a couple of releases ago.
bdev modules now each have their own RPC for deleting
bdevs.  Due to how bdevs are created differently on
different modules, it is simply not possible to
have one delete_bdev RPC that would work for all bdev
types.

Signed-off-by: default avatarJim Harris <james.r.harris@intel.com>
Change-Id: Ia46c95dce6e35f7557e8d41c41b8fea382924547

Reviewed-on: https://review.gerrithub.io/c/442615


Reviewed-by: default avatarShuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: default avatarDarek Stojaczyk <dariusz.stojaczyk@intel.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
parent 5f3c92c2
Loading
Loading
Loading
Loading
+0 −36
Original line number Diff line number Diff line
@@ -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.
+0 −69
Original line number Diff line number Diff line
@@ -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;
+0 −9
Original line number Diff line number Diff line
@@ -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)

+0 −10
Original line number Diff line number Diff line
@@ -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.

+0 −4
Original line number Diff line number Diff line
@@ -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)
Loading