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: Pawel Kaminski <pawelx.kaminski@intel.com> Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/466518 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Broadcom SPDK FC-NVMe CI <spdk-ci.pdl@broadcom.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
This commit is contained in:
parent
760ecb0a6f
commit
557f8ff9ec
@ -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.
|
||||
|
||||
|
@ -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
|
||||
}
|
||||
~~~
|
||||
|
@ -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);
|
||||
|
@ -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,
|
||||
const struct spdk_json_val *params)
|
||||
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 {
|
||||
|
@ -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,
|
||||
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',
|
||||
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('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,
|
||||
|
@ -100,7 +100,8 @@ def bdev_crypto_delete(client, name):
|
||||
return client.call('bdev_crypto_delete', params)
|
||||
|
||||
|
||||
def construct_ocf_bdev(client, name, mode, cache_bdev_name, core_bdev_name):
|
||||
@deprecated_alias('construct_ocf_bdev')
|
||||
def bdev_ocf_create(client, name, mode, cache_bdev_name, core_bdev_name):
|
||||
"""Add an OCF block device
|
||||
|
||||
Args:
|
||||
@ -114,10 +115,11 @@ def construct_ocf_bdev(client, name, mode, cache_bdev_name, core_bdev_name):
|
||||
"""
|
||||
params = {'name': name, 'mode': mode, 'cache_bdev_name': cache_bdev_name, 'core_bdev_name': core_bdev_name}
|
||||
|
||||
return client.call('construct_ocf_bdev', params)
|
||||
return client.call('bdev_ocf_create', params)
|
||||
|
||||
|
||||
def delete_ocf_bdev(client, name):
|
||||
@deprecated_alias('delete_ocf_bdev')
|
||||
def bdev_ocf_delete(client, name):
|
||||
"""Delete an OCF device
|
||||
|
||||
Args:
|
||||
@ -126,7 +128,7 @@ def delete_ocf_bdev(client, name):
|
||||
"""
|
||||
params = {'name': name}
|
||||
|
||||
return client.call('delete_ocf_bdev', params)
|
||||
return client.call('bdev_ocf_delete', params)
|
||||
|
||||
|
||||
def get_ocf_stats(client, name):
|
||||
|
@ -25,7 +25,7 @@ waitforlisten $spdk_pid
|
||||
$rpc_py bdev_malloc_create 101 512 -b Malloc0
|
||||
$rpc_py bdev_malloc_create 101 512 -b Malloc1
|
||||
|
||||
$rpc_py construct_ocf_bdev PartCache wt Malloc0 NonExisting
|
||||
$rpc_py bdev_ocf_create PartCache wt Malloc0 NonExisting
|
||||
|
||||
$rpc_py get_ocf_bdevs PartCache | jq -e \
|
||||
'.[0] | .started == false and .cache.attached and .core.attached == false'
|
||||
@ -38,13 +38,13 @@ if ! bdev_check_claimed Malloc0; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
$rpc_py delete_ocf_bdev PartCache
|
||||
$rpc_py bdev_ocf_delete PartCache
|
||||
if bdev_check_claimed Malloc0; then
|
||||
>&2 echo "Base device is not expected to be claimed now"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
$rpc_py construct_ocf_bdev FullCache wt Malloc0 Malloc1
|
||||
$rpc_py bdev_ocf_create FullCache wt Malloc0 Malloc1
|
||||
|
||||
$rpc_py get_ocf_bdevs FullCache | jq -e \
|
||||
'.[0] | .started and .cache.attached and .core.attached'
|
||||
@ -54,13 +54,13 @@ if ! (bdev_check_claimed Malloc0 && bdev_check_claimed Malloc1); then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
$rpc_py delete_ocf_bdev FullCache
|
||||
$rpc_py bdev_ocf_delete FullCache
|
||||
if bdev_check_claimed Malloc0 && bdev_check_claimed Malloc1; then
|
||||
>&2 echo "Base devices are not expected to be claimed now"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
$rpc_py construct_ocf_bdev HotCache wt Malloc0 Malloc1
|
||||
$rpc_py bdev_ocf_create HotCache wt Malloc0 Malloc1
|
||||
|
||||
if ! (bdev_check_claimed Malloc0 && bdev_check_claimed Malloc1); then
|
||||
>&2 echo "Base devices expected to be claimed now"
|
||||
@ -82,7 +82,7 @@ if [[ $gone == false ]]; then
|
||||
fi
|
||||
|
||||
# check if shutdown of running CAS bdev is ok
|
||||
$rpc_py construct_ocf_bdev PartCache wt NonExisting Malloc1
|
||||
$rpc_py bdev_ocf_create PartCache wt NonExisting Malloc1
|
||||
|
||||
trap - SIGINT SIGTERM EXIT
|
||||
|
||||
|
@ -27,8 +27,8 @@ start_spdk
|
||||
$rpc_py bdev_malloc_create 1 512 -b Core0
|
||||
$rpc_py bdev_malloc_create 1 512 -b Core1
|
||||
|
||||
$rpc_py construct_ocf_bdev C1 wt Cache Core0
|
||||
$rpc_py construct_ocf_bdev C2 wt Cache Core1
|
||||
$rpc_py bdev_ocf_create C1 wt Cache Core0
|
||||
$rpc_py bdev_ocf_create C2 wt Cache Core1
|
||||
|
||||
$rpc_py get_ocf_bdevs | jq -e \
|
||||
'any(select(.started)) == false'
|
||||
@ -40,12 +40,12 @@ $rpc_py get_ocf_bdevs | jq -e \
|
||||
|
||||
# Detaching cores
|
||||
|
||||
$rpc_py delete_ocf_bdev C2
|
||||
$rpc_py bdev_ocf_delete C2
|
||||
|
||||
$rpc_py get_ocf_bdevs C1 | jq -e \
|
||||
'.[0] | .started'
|
||||
|
||||
$rpc_py construct_ocf_bdev C2 wt Cache Core1
|
||||
$rpc_py bdev_ocf_create C2 wt Cache Core1
|
||||
|
||||
$rpc_py get_ocf_bdevs C2 | jq -e \
|
||||
'.[0] | .started'
|
||||
@ -61,8 +61,8 @@ $rpc_py bdev_malloc_create 101 512 -b Cache
|
||||
$rpc_py bdev_malloc_create 101 512 -b Malloc
|
||||
$rpc_py bdev_malloc_create 1 512 -b Core
|
||||
|
||||
$rpc_py construct_ocf_bdev C1 wt Cache Malloc
|
||||
$rpc_py construct_ocf_bdev C2 wt Cache Core
|
||||
$rpc_py bdev_ocf_create C1 wt Cache Malloc
|
||||
$rpc_py bdev_ocf_create C2 wt Cache Core
|
||||
|
||||
$rpc_py get_ocf_bdevs Cache | jq \
|
||||
'length == 2'
|
||||
@ -74,8 +74,8 @@ $rpc_py get_ocf_bdevs | jq -e \
|
||||
|
||||
# Not fully initialized shutdown
|
||||
|
||||
$rpc_py construct_ocf_bdev C1 wt Malloc NonExisting
|
||||
$rpc_py construct_ocf_bdev C2 wt Malloc NonExisting
|
||||
$rpc_py construct_ocf_bdev C3 wt Malloc Core
|
||||
$rpc_py bdev_ocf_create C1 wt Malloc NonExisting
|
||||
$rpc_py bdev_ocf_create C2 wt Malloc NonExisting
|
||||
$rpc_py bdev_ocf_create C3 wt Malloc Core
|
||||
|
||||
stop_spdk
|
||||
|
@ -44,10 +44,10 @@ waitforlisten $spdk_pid
|
||||
|
||||
# Create ocf on persistent storage
|
||||
|
||||
$rpc_py construct_ocf_bdev ocfWT wt Nvme0n1p0 Nvme0n1p1
|
||||
$rpc_py construct_ocf_bdev ocfPT pt Nvme0n1p2 Nvme0n1p3
|
||||
$rpc_py construct_ocf_bdev ocfWB0 wb Nvme0n1p4 Nvme0n1p5
|
||||
$rpc_py construct_ocf_bdev ocfWB1 wb Nvme0n1p4 Nvme0n1p6
|
||||
$rpc_py bdev_ocf_create ocfWT wt Nvme0n1p0 Nvme0n1p1
|
||||
$rpc_py bdev_ocf_create ocfPT pt Nvme0n1p2 Nvme0n1p3
|
||||
$rpc_py bdev_ocf_create ocfWB0 wb Nvme0n1p4 Nvme0n1p5
|
||||
$rpc_py bdev_ocf_create ocfWB1 wb Nvme0n1p4 Nvme0n1p6
|
||||
|
||||
# Sorting bdevs because we dont guarantee that they are going to be
|
||||
# in the same order after shutdown
|
||||
|
Loading…
Reference in New Issue
Block a user