Commit 557f8ff9 authored by Pawel Kaminski's avatar Pawel Kaminski Committed by Jim Harris
Browse files

rpc: Rename ocf create and delete related rpcs



Rename construct_ocf_bdev to bdev_ocf_create.
Rename delete_ocf_bdev to bdev_ocf_delete.

Change-Id: Iec456c2004cc7e6c61d29439e1b7a9b5dfe7dfaa
Signed-off-by: default avatarPawel Kaminski <pawelx.kaminski@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/466518


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarBroadcom SPDK FC-NVMe CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: default avatarShuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
parent 760ecb0a
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -347,7 +347,7 @@ OCF bdev can be used to enable caching for any underlying bdev.

Below is an example command for creating OCF bdev:

`rpc.py construct_ocf_bdev Cache1 wt Malloc0 Nvme0n1`
`rpc.py bdev_ocf_create Cache1 wt Malloc0 Nvme0n1`

This command will create new OCF bdev `Cache1` having bdev `Malloc0` as caching-device
and `Nvme0n1` as core-device and initial cache mode `Write-Through`.
@@ -358,7 +358,7 @@ and non-volatile metadata will be disabled.

To remove `Cache1`:

`rpc.py delete_ocf_bdev Cache1`
`rpc.py bdev_ocf_delete Cache1`

During removal OCF-cache will be stopped and all cached data will be written to the core device.

+4 −4
Original line number Diff line number Diff line
@@ -816,7 +816,7 @@ Example response:
}
~~~

## construct_ocf_bdev {#rpc_construct_ocf_bdev}
## bdev_ocf_create {#rpc_bdev_ocf_create}

Construct new OCF bdev.
Command accepts cache mode that is going to be used.
@@ -848,7 +848,7 @@ Example request:
    "core_bdev_name": "aio0"
  },
  "jsonrpc": "2.0",
  "method": "construct_ocf_bdev",
  "method": "bdev_ocf_create",
  "id": 1
}
~~~
@@ -863,7 +863,7 @@ Example response:
}
~~~

## delete_ocf_bdev {#rpc_delete_ocf_bdev}
## bdev_ocf_delete {#rpc_bdev_ocf_delete}

Delete the OCF bdev

@@ -883,7 +883,7 @@ Example request:
    "name": "ocf0"
  },
  "jsonrpc": "2.0",
  "method": "delete_ocf_bdev",
  "method": "bdev_ocf_delete",
  "id": 1
}
~~~
+1 −1
Original line number Diff line number Diff line
@@ -668,7 +668,7 @@ vbdev_ocf_write_json_config(struct spdk_bdev *bdev, struct spdk_json_write_ctx *

	spdk_json_write_object_begin(w);

	spdk_json_write_named_string(w, "method", "construct_ocf_bdev");
	spdk_json_write_named_string(w, "method", "bdev_ocf_create");

	spdk_json_write_named_object_begin(w, "params");
	spdk_json_write_named_string(w, "name", vbdev->name);
+27 −25
Original line number Diff line number Diff line
@@ -38,7 +38,7 @@
#include "spdk/string.h"

/* Structure to hold the parameters for this RPC method. */
struct rpc_construct_ocf_bdev {
struct rpc_bdev_ocf_create {
	char *name;             /* master vbdev */
	char *mode;             /* OCF mode (choose one) */
	char *cache_bdev_name;  /* sub bdev */
@@ -46,7 +46,7 @@ struct rpc_construct_ocf_bdev {
};

static void
free_rpc_construct_ocf_bdev(struct rpc_construct_ocf_bdev *r)
free_rpc_bdev_ocf_create(struct rpc_bdev_ocf_create *r)
{
	free(r->name);
	free(r->core_bdev_name);
@@ -55,11 +55,11 @@ free_rpc_construct_ocf_bdev(struct rpc_construct_ocf_bdev *r)
}

/* Structure to decode the input parameters for this RPC method. */
static const struct spdk_json_object_decoder rpc_construct_ocf_bdev_decoders[] = {
	{"name", offsetof(struct rpc_construct_ocf_bdev, name), spdk_json_decode_string},
	{"mode", offsetof(struct rpc_construct_ocf_bdev, mode), spdk_json_decode_string},
	{"cache_bdev_name", offsetof(struct rpc_construct_ocf_bdev, cache_bdev_name), spdk_json_decode_string},
	{"core_bdev_name", offsetof(struct rpc_construct_ocf_bdev, core_bdev_name), spdk_json_decode_string},
static const struct spdk_json_object_decoder rpc_bdev_ocf_create_decoders[] = {
	{"name", offsetof(struct rpc_bdev_ocf_create, name), spdk_json_decode_string},
	{"mode", offsetof(struct rpc_bdev_ocf_create, mode), spdk_json_decode_string},
	{"cache_bdev_name", offsetof(struct rpc_bdev_ocf_create, cache_bdev_name), spdk_json_decode_string},
	{"core_bdev_name", offsetof(struct rpc_bdev_ocf_create, core_bdev_name), spdk_json_decode_string},
};

static void
@@ -80,42 +80,43 @@ construct_cb(int status, struct vbdev_ocf *vbdev, void *cb_arg)
}

static void
spdk_rpc_construct_ocf_bdev(struct spdk_jsonrpc_request *request,
spdk_rpc_bdev_ocf_create(struct spdk_jsonrpc_request *request,
			 const struct spdk_json_val *params)
{
	struct rpc_construct_ocf_bdev req = {NULL};
	struct rpc_bdev_ocf_create req = {NULL};
	int ret;

	ret = spdk_json_decode_object(params, rpc_construct_ocf_bdev_decoders,
				      SPDK_COUNTOF(rpc_construct_ocf_bdev_decoders),
	ret = spdk_json_decode_object(params, rpc_bdev_ocf_create_decoders,
				      SPDK_COUNTOF(rpc_bdev_ocf_create_decoders),
				      &req);
	if (ret) {
		spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INVALID_PARAMS,
						 "Invalid parameters");
		free_rpc_construct_ocf_bdev(&req);
		free_rpc_bdev_ocf_create(&req);
		return;
	}

	vbdev_ocf_construct(req.name, req.mode, req.cache_bdev_name, req.core_bdev_name, false,
			    construct_cb, request);
	free_rpc_construct_ocf_bdev(&req);
	free_rpc_bdev_ocf_create(&req);
}
SPDK_RPC_REGISTER("construct_ocf_bdev", spdk_rpc_construct_ocf_bdev, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER("bdev_ocf_create", spdk_rpc_bdev_ocf_create, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_ocf_create, construct_ocf_bdev)

/* Structure to hold the parameters for this RPC method. */
struct rpc_delete_ocf_bdev {
struct rpc_bdev_ocf_delete {
	char *name;             /* master vbdev name */
};

static void
free_rpc_delete_ocf_bdev(struct rpc_delete_ocf_bdev *r)
free_rpc_bdev_ocf_delete(struct rpc_bdev_ocf_delete *r)
{
	free(r->name);
}

/* Structure to decode the input parameters for this RPC method. */
static const struct spdk_json_object_decoder rpc_delete_ocf_bdev_decoders[] = {
	{"name", offsetof(struct rpc_delete_ocf_bdev, name), spdk_json_decode_string},
static const struct spdk_json_object_decoder rpc_bdev_ocf_delete_decoders[] = {
	{"name", offsetof(struct rpc_bdev_ocf_delete, name), spdk_json_decode_string},
};

static void
@@ -136,15 +137,15 @@ delete_cb(void *cb_arg, int status)
}

static void
spdk_rpc_delete_ocf_bdev(struct spdk_jsonrpc_request *request,
spdk_rpc_bdev_ocf_delete(struct spdk_jsonrpc_request *request,
			 const struct spdk_json_val *params)
{
	struct rpc_delete_ocf_bdev req = {NULL};
	struct rpc_bdev_ocf_delete req = {NULL};
	struct vbdev_ocf *vbdev;
	int status;

	status = spdk_json_decode_object(params, rpc_delete_ocf_bdev_decoders,
					 SPDK_COUNTOF(rpc_delete_ocf_bdev_decoders),
	status = spdk_json_decode_object(params, rpc_bdev_ocf_delete_decoders,
					 SPDK_COUNTOF(rpc_bdev_ocf_delete_decoders),
					 &req);
	if (status) {
		spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INVALID_PARAMS,
@@ -168,9 +169,10 @@ spdk_rpc_delete_ocf_bdev(struct spdk_jsonrpc_request *request,
	}

end:
	free_rpc_delete_ocf_bdev(&req);
	free_rpc_bdev_ocf_delete(&req);
}
SPDK_RPC_REGISTER("delete_ocf_bdev", spdk_rpc_delete_ocf_bdev, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER("bdev_ocf_delete", spdk_rpc_bdev_ocf_delete, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_ocf_delete, delete_ocf_bdev)

/* Structure to hold the parameters for this RPC method. */
struct rpc_get_ocf_stats {
+12 −12
Original line number Diff line number Diff line
@@ -198,28 +198,28 @@ if __name__ == "__main__":
    p.add_argument('name', help='crypto bdev name')
    p.set_defaults(func=bdev_crypto_delete)

    def construct_ocf_bdev(args):
        print_json(rpc.bdev.construct_ocf_bdev(args.client,
    def bdev_ocf_create(args):
        print_json(rpc.bdev.bdev_ocf_create(args.client,
                                            name=args.name,
                                            mode=args.mode,
                                            cache_bdev_name=args.cache_bdev_name,
                                            core_bdev_name=args.core_bdev_name))
    p = subparsers.add_parser('construct_ocf_bdev',
    p = subparsers.add_parser('bdev_ocf_create', aliases=['construct_ocf_bdev'],
                              help='Add an OCF block device')
    p.add_argument('name', help='Name of resulting OCF bdev')
    p.add_argument('mode', help='OCF cache mode', choices=['wb', 'wt', 'pt'])
    p.add_argument('cache_bdev_name', help='Name of underlying cache bdev')
    p.add_argument('core_bdev_name', help='Name of unerlying core bdev')
    p.set_defaults(func=construct_ocf_bdev)
    p.set_defaults(func=bdev_ocf_create)

    def delete_ocf_bdev(args):
        rpc.bdev.delete_ocf_bdev(args.client,
    def bdev_ocf_delete(args):
        rpc.bdev.bdev_ocf_delete(args.client,
                                 name=args.name)

    p = subparsers.add_parser('delete_ocf_bdev',
    p = subparsers.add_parser('bdev_ocf_delete', aliases=['delete_ocf_bdev'],
                              help='Delete an OCF block device')
    p.add_argument('name', help='Name of OCF bdev')
    p.set_defaults(func=delete_ocf_bdev)
    p.set_defaults(func=bdev_ocf_delete)

    def get_ocf_stats(args):
        print_dict(rpc.bdev.get_ocf_stats(args.client,
Loading