RPC: rename rpc clone_lvol_bdev to bdev_lvol_clone

Signed-off-by: Maciej Wawryk <maciejx.wawryk@intel.com>
Change-Id: I11b1625e31227bd0952fd6e1816f6dbf862c94f1
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/466119
Reviewed-by: Broadcom SPDK FC-NVMe CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: Pawel Kaminski <pawelx.kaminski@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
Maciej Wawryk 2019-08-23 11:35:34 +02:00 committed by Ben Walker
parent 493ce2cbbf
commit 827b266717
9 changed files with 44 additions and 38 deletions

View File

@ -306,7 +306,7 @@ Example response:
"decouple_parent_lvol_bdev",
"inflate_lvol_bdev",
"rename_lvol_bdev",
"clone_lvol_bdev",
"bdev_lvol_clone",
"snapshot_lvol_bdev",
"construct_lvol_bdev",
"destroy_lvol_store",
@ -5026,7 +5026,7 @@ Example response:
}
~~~
## clone_lvol_bdev {#rpc_clone_lvol_bdev}
## bdev_lvol_clone {#rpc_bdev_lvol_clone}
Create a logical volume based on a snapshot.
@ -5048,7 +5048,7 @@ Example request:
~~~
{
"jsonrpc": "2.0"
"method": "clone_lvol_bdev",
"method": "bdev_lvol_clone",
"id": 1,
"params": {
"snapshot_name": "cc8d7fdf-7865-4d1f-9fc6-35da8e368670",

View File

@ -133,7 +133,7 @@ snapshot_lvol_bdev [-h] lvol_name snapshot_name
Create a snapshot with snapshot_name of a given lvol bdev.
optional arguments:
-h, --help show help
clone_lvol_bdev [-h] snapshot_name clone_name
bdev_lvol_clone [-h] snapshot_name clone_name
Create a clone with clone_name of a given lvol snapshot.
optional arguments:
-h, --help show help

View File

@ -483,25 +483,25 @@ cleanup:
SPDK_RPC_REGISTER("snapshot_lvol_bdev", spdk_rpc_snapshot_lvol_bdev, SPDK_RPC_RUNTIME)
struct rpc_clone_lvol_bdev {
struct rpc_bdev_lvol_clone {
char *snapshot_name;
char *clone_name;
};
static void
free_rpc_clone_lvol_bdev(struct rpc_clone_lvol_bdev *req)
free_rpc_bdev_lvol_clone(struct rpc_bdev_lvol_clone *req)
{
free(req->snapshot_name);
free(req->clone_name);
}
static const struct spdk_json_object_decoder rpc_clone_lvol_bdev_decoders[] = {
{"snapshot_name", offsetof(struct rpc_clone_lvol_bdev, snapshot_name), spdk_json_decode_string},
{"clone_name", offsetof(struct rpc_clone_lvol_bdev, clone_name), spdk_json_decode_string, true},
static const struct spdk_json_object_decoder rpc_bdev_lvol_clone_decoders[] = {
{"snapshot_name", offsetof(struct rpc_bdev_lvol_clone, snapshot_name), spdk_json_decode_string},
{"clone_name", offsetof(struct rpc_bdev_lvol_clone, clone_name), spdk_json_decode_string, true},
};
static void
_spdk_rpc_clone_lvol_bdev_cb(void *cb_arg, struct spdk_lvol *lvol, int lvolerrno)
_spdk_rpc_bdev_lvol_clone_cb(void *cb_arg, struct spdk_lvol *lvol, int lvolerrno)
{
struct spdk_json_write_ctx *w;
struct spdk_jsonrpc_request *request = cb_arg;
@ -521,17 +521,17 @@ invalid:
}
static void
spdk_rpc_clone_lvol_bdev(struct spdk_jsonrpc_request *request,
spdk_rpc_bdev_lvol_clone(struct spdk_jsonrpc_request *request,
const struct spdk_json_val *params)
{
struct rpc_clone_lvol_bdev req = {};
struct rpc_bdev_lvol_clone req = {};
struct spdk_bdev *bdev;
struct spdk_lvol *lvol;
SPDK_INFOLOG(SPDK_LOG_LVOL_RPC, "Cloning blob\n");
if (spdk_json_decode_object(params, rpc_clone_lvol_bdev_decoders,
SPDK_COUNTOF(rpc_clone_lvol_bdev_decoders),
if (spdk_json_decode_object(params, rpc_bdev_lvol_clone_decoders,
SPDK_COUNTOF(rpc_bdev_lvol_clone_decoders),
&req)) {
SPDK_INFOLOG(SPDK_LOG_LVOL_RPC, "spdk_json_decode_object failed\n");
spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INTERNAL_ERROR,
@ -553,13 +553,14 @@ spdk_rpc_clone_lvol_bdev(struct spdk_jsonrpc_request *request,
goto cleanup;
}
vbdev_lvol_create_clone(lvol, req.clone_name, _spdk_rpc_clone_lvol_bdev_cb, request);
vbdev_lvol_create_clone(lvol, req.clone_name, _spdk_rpc_bdev_lvol_clone_cb, request);
cleanup:
free_rpc_clone_lvol_bdev(&req);
free_rpc_bdev_lvol_clone(&req);
}
SPDK_RPC_REGISTER("clone_lvol_bdev", spdk_rpc_clone_lvol_bdev, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER("bdev_lvol_clone", spdk_rpc_bdev_lvol_clone, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_lvol_clone, clone_lvol_bdev)
struct rpc_rename_lvol_bdev {
char *old_name;

View File

@ -1184,15 +1184,16 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse
p.add_argument('snapshot_name', help='lvol snapshot name')
p.set_defaults(func=snapshot_lvol_bdev)
def clone_lvol_bdev(args):
print_json(rpc.lvol.clone_lvol_bdev(args.client,
def bdev_lvol_clone(args):
print_json(rpc.lvol.bdev_lvol_clone(args.client,
snapshot_name=args.snapshot_name,
clone_name=args.clone_name))
p = subparsers.add_parser('clone_lvol_bdev', help='Create a clone of an lvol snapshot')
p = subparsers.add_parser('bdev_lvol_clone', aliases=['clone_lvol_bdev'],
help='Create a clone of an lvol snapshot')
p.add_argument('snapshot_name', help='lvol snapshot name')
p.add_argument('clone_name', help='lvol clone name')
p.set_defaults(func=clone_lvol_bdev)
p.set_defaults(func=bdev_lvol_clone)
def rename_lvol_bdev(args):
rpc.lvol.rename_lvol_bdev(args.client,

View File

@ -1,3 +1,6 @@
from .helpers import deprecated_alias
def construct_lvol_store(client, bdev_name, lvs_name, cluster_sz=None, clear_method=None):
"""Construct a logical volume store.
@ -79,7 +82,8 @@ def snapshot_lvol_bdev(client, lvol_name, snapshot_name):
return client.call('snapshot_lvol_bdev', params)
def clone_lvol_bdev(client, snapshot_name, clone_name):
@deprecated_alias('clone_lvol_bdev')
def bdev_lvol_clone(client, snapshot_name, clone_name):
"""Create a logical volume based on a snapshot.
Args:
@ -93,7 +97,7 @@ def clone_lvol_bdev(client, snapshot_name, clone_name):
'snapshot_name': snapshot_name,
'clone_name': clone_name
}
return client.call('clone_lvol_bdev', params)
return client.call('bdev_lvol_clone', params)
def rename_lvol_bdev(client, old_name, new_name):

View File

@ -204,7 +204,7 @@ function create_bdev_subsystem_config() {
tgt_rpc construct_lvol_bdev -l lvs_test lvol0 32
tgt_rpc construct_lvol_bdev -l lvs_test -t lvol1 32
tgt_rpc snapshot_lvol_bdev lvs_test/lvol0 snapshot0
tgt_rpc clone_lvol_bdev lvs_test/snapshot0 clone0
tgt_rpc bdev_lvol_clone lvs_test/snapshot0 clone0
expected_notifications+=(
"bdev_register:$RE_UUID"

View File

@ -219,9 +219,9 @@ class Commands_Rpc(object):
output, rc = self.rpc.snapshot_lvol_bdev(bdev_name, snapshot_name)
return rc
def clone_lvol_bdev(self, snapshot_name, clone_name):
print("INFO: RPC COMMAND clone_lvol_bdev")
output, rc = self.rpc.clone_lvol_bdev(snapshot_name, clone_name)
def bdev_lvol_clone(self, snapshot_name, clone_name):
print("INFO: RPC COMMAND bdev_lvol_clone")
output, rc = self.rpc.bdev_lvol_clone(snapshot_name, clone_name)
return rc
def inflate_lvol_bdev(self, clone_name):

View File

@ -1234,7 +1234,7 @@ class TestCases(object):
snapshot_bdev = self.c.get_lvol_bdev_with_name(self.lvs_name + "/" + snapshot_name)
# Create clone of snapshot and check if it ends with success
fail_count += self.c.clone_lvol_bdev(self.lvs_name + "/" + snapshot_name, clone_name)
fail_count += self.c.bdev_lvol_clone(self.lvs_name + "/" + snapshot_name, clone_name)
clone_bdev = self.c.get_lvol_bdev_with_name(self.lvs_name + "/" + clone_name)
# Try to destroy snapshot with clones and check if it fails
@ -1296,7 +1296,7 @@ class TestCases(object):
fail_count += self.c.snapshot_lvol_bdev(lvol_bdev['name'], snapshot_name)
snapshot_bdev = self.c.get_lvol_bdev_with_name(self.lvs_name + "/" + snapshot_name)
fail_count += self.c.clone_lvol_bdev(self.lvs_name + "/" + snapshot_name, clone_name)
fail_count += self.c.bdev_lvol_clone(self.lvs_name + "/" + snapshot_name, clone_name)
clone_bdev = self.c.get_lvol_bdev_with_name(self.lvs_name + "/" + clone_name)
fail_count += self.c.snapshot_lvol_bdev(clone_bdev['name'], snapshot_name2)
@ -1357,7 +1357,7 @@ class TestCases(object):
fail_count += self.c.snapshot_lvol_bdev(lvol_bdev['name'], snapshot_name)
snapshot_bdev = self.c.get_lvol_bdev_with_name(self.lvs_name + "/" + snapshot_name)
fail_count += self.c.clone_lvol_bdev(self.lvs_name + "/" + snapshot_name, clone_name)
fail_count += self.c.bdev_lvol_clone(self.lvs_name + "/" + snapshot_name, clone_name)
clone_bdev = self.c.get_lvol_bdev_with_name(self.lvs_name + "/" + clone_name)
fail_count += self.c.snapshot_lvol_bdev(clone_bdev['name'], snapshot_name2)
@ -2378,19 +2378,19 @@ class TestCases(object):
lvol_bdev = self.c.get_lvol_bdev_with_name(uuid_bdev)
# Create clone of lvol bdev and check if it fails
rv = self.c.clone_lvol_bdev(lvol_bdev['name'], clone_name)
rv = self.c.bdev_lvol_clone(lvol_bdev['name'], clone_name)
if rv == 0:
print("ERROR: Creating clone of lvol bdev ended with unexpected success")
fail_count += 1
# Create snapshot of lvol bdev
fail_count += self.c.snapshot_lvol_bdev(lvol_bdev['name'], snapshot_name)
# Create again clone of lvol bdev and check if it fails
rv = self.c.clone_lvol_bdev(lvol_bdev['name'], clone_name)
rv = self.c.bdev_lvol_clone(lvol_bdev['name'], clone_name)
if rv == 0:
print("ERROR: Creating clone of lvol bdev ended with unexpected success")
fail_count += 1
# Create clone of snapshot and check if it ends with success
rv = self.c.clone_lvol_bdev(self.lvs_name + "/" + snapshot_name, clone_name)
rv = self.c.bdev_lvol_clone(self.lvs_name + "/" + snapshot_name, clone_name)
if rv != 0:
print("ERROR: Creating clone of snapshot ended with unexpected failure")
fail_count += 1
@ -2449,8 +2449,8 @@ class TestCases(object):
fail_count += self.c.snapshot_lvol_bdev(lvol_bdev['name'], snapshot_name)
snapshot_bdev = self.c.get_lvol_bdev_with_name(self.lvs_name + "/" + snapshot_name)
# Create two clones of created snapshot
fail_count += self.c.clone_lvol_bdev(snapshot_bdev['name'], clone_name0)
fail_count += self.c.clone_lvol_bdev(snapshot_bdev['name'], clone_name1)
fail_count += self.c.bdev_lvol_clone(snapshot_bdev['name'], clone_name0)
fail_count += self.c.bdev_lvol_clone(snapshot_bdev['name'], clone_name1)
lvol_clone0 = self.c.get_lvol_bdev_with_name(self.lvs_name + "/" + clone_name0)
fail_count += self.c.start_nbd_disk(lvol_clone0['name'], nbd_name[1])
@ -2518,7 +2518,7 @@ class TestCases(object):
snapshot_bdev = self.c.get_lvol_bdev_with_name(self.lvs_name + "/" + snapshot_name)
# Create clone of created snapshot
fail_count += self.c.clone_lvol_bdev(snapshot_bdev['name'], clone_name0)
fail_count += self.c.bdev_lvol_clone(snapshot_bdev['name'], clone_name0)
# Get current bdevs configuration
snapshot_bdev = self.c.get_lvol_bdev_with_name(self.lvs_name + "/" + snapshot_name)
@ -2874,7 +2874,7 @@ class TestCases(object):
fail_count += self.run_fio_test(nbd_name0, 0, size, "write", "0xcc", 1)
# Create clone of lvol set to read only
rv = self.c.clone_lvol_bdev(lvol_bdev['name'], clone_name)
rv = self.c.bdev_lvol_clone(lvol_bdev['name'], clone_name)
if rv != 0:
print("ERROR: Creating clone of snapshot ended with unexpected failure")
fail_count += 1

View File

@ -51,7 +51,7 @@ sleep 1
# Perform some operations on the logical volume
snapshot=$($rpc_py snapshot_lvol_bdev $lvol "MY_SNAPSHOT")
$rpc_py resize_lvol_bdev $lvol $LVOL_BDEV_FINAL_SIZE
clone=$($rpc_py clone_lvol_bdev $snapshot "MY_CLONE")
clone=$($rpc_py bdev_lvol_clone $snapshot "MY_CLONE")
$rpc_py inflate_lvol_bdev $clone
# Wait for I/O to complete