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:
parent
493ce2cbbf
commit
827b266717
@ -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",
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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,
|
||||
|
@ -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):
|
||||
|
@ -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"
|
||||
|
@ -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):
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user