RPC: rename RPC aio_bdev series

RPC: rename RPC construct_aio_bdev to bdev_aio_create
RPC: rename RPC delete_aio_bdev to bdev_aio_delete

Change-Id: I09ffc3cc0d2117f7210be7920bffddb9d7c7f30c
Signed-off-by: Maciej Wawryk <maciejx.wawryk@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/465035
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Pawel Kaminski <pawelx.kaminski@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
This commit is contained in:
Maciej Wawryk 2019-08-13 11:38:42 +02:00 committed by Jim Harris
parent cc6314a413
commit acaa079b20
18 changed files with 84 additions and 80 deletions

View File

@ -315,22 +315,22 @@ The SPDK AIO bdev driver provides SPDK block layer access to Linux kernel block
devices or a file on a Linux filesystem via Linux AIO. Note that O_DIRECT is
used and thus bypasses the Linux page cache. This mode is probably as close to
a typical kernel based target as a user space target can get without using a
user-space driver. To create AIO bdev RPC command `construct_aio_bdev` should be
user-space driver. To create AIO bdev RPC command `bdev_aio_create` should be
used.
Example commands
`rpc.py construct_aio_bdev /dev/sda aio0`
`rpc.py bdev_aio_create /dev/sda aio0`
This command will create `aio0` device from /dev/sda.
`rpc.py construct_aio_bdev /tmp/file file 8192`
`rpc.py bdev_aio_create /tmp/file file 8192`
This command will create `file` device with block size 8192 from /tmp/file.
To delete an aio bdev use the delete_aio_bdev command.
To delete an aio bdev use the bdev_aio_delete command.
`rpc.py delete_aio_bdev aio0`
`rpc.py bdev_aio_delete aio0`
# OCF Virtual bdev {#bdev_config_cas}

View File

@ -283,8 +283,8 @@ Example response:
"construct_virtio_dev",
"get_virtio_scsi_devs",
"remove_virtio_bdev",
"delete_aio_bdev",
"construct_aio_bdev",
"bdev_aio_delete",
"bdev_aio_create",
"destruct_split_vbdev",
"construct_split_vbdev",
"bdev_inject_error",
@ -1311,7 +1311,7 @@ Example response:
}
~~~
## construct_aio_bdev {#rpc_construct_aio_bdev}
## bdev_aio_create {#rpc_bdev_aio_create}
Construct @ref bdev_config_aio.
@ -1339,7 +1339,7 @@ Example request:
"filename": "/tmp/aio_bdev_file"
},
"jsonrpc": "2.0",
"method": "construct_aio_bdev",
"method": "bdev_aio_create",
"id": 1
}
~~~
@ -1354,7 +1354,7 @@ Example response:
}
~~~
## delete_aio_bdev {#rpc_delete_aio_bdev}
## bdev_aio_delete {#rpc_bdev_aio_delete}
Delete @ref bdev_config_aio.
@ -1374,7 +1374,7 @@ Example request:
"name": "Aio0"
},
"jsonrpc": "2.0",
"method": "delete_aio_bdev",
"method": "bdev_aio_delete",
"id": 1
}
~~~

View File

@ -524,7 +524,7 @@ bdev_aio_write_json_config(struct spdk_bdev *bdev, struct spdk_json_write_ctx *w
spdk_json_write_object_begin(w);
spdk_json_write_named_string(w, "method", "construct_aio_bdev");
spdk_json_write_named_string(w, "method", "bdev_aio_create");
spdk_json_write_named_object_begin(w, "params");
spdk_json_write_named_string(w, "name", bdev->name);
@ -703,7 +703,7 @@ aio_bdev_unregister_cb(void *arg, int bdeverrno)
}
void
delete_aio_bdev(struct spdk_bdev *bdev, delete_aio_bdev_complete cb_fn, void *cb_arg)
bdev_aio_delete(struct spdk_bdev *bdev, delete_aio_bdev_complete cb_fn, void *cb_arg)
{
struct delete_aio_bdev_ctx *ctx;

View File

@ -41,6 +41,6 @@ typedef void (*delete_aio_bdev_complete)(void *cb_arg, int bdeverrno);
int create_aio_bdev(const char *name, const char *filename, uint32_t block_size);
void delete_aio_bdev(struct spdk_bdev *bdev, delete_aio_bdev_complete cb_fn, void *cb_arg);
void bdev_aio_delete(struct spdk_bdev *bdev, delete_aio_bdev_complete cb_fn, void *cb_arg);
#endif /* SPDK_BDEV_AIO_H */

View File

@ -57,7 +57,7 @@ static const struct spdk_json_object_decoder rpc_construct_aio_decoders[] = {
};
static void
spdk_rpc_construct_aio_bdev(struct spdk_jsonrpc_request *request,
spdk_rpc_bdev_aio_create(struct spdk_jsonrpc_request *request,
const struct spdk_json_val *params)
{
struct rpc_construct_aio req = {};
@ -87,7 +87,8 @@ spdk_rpc_construct_aio_bdev(struct spdk_jsonrpc_request *request,
cleanup:
free_rpc_construct_aio(&req);
}
SPDK_RPC_REGISTER("construct_aio_bdev", spdk_rpc_construct_aio_bdev, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER("bdev_aio_create", spdk_rpc_bdev_aio_create, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_aio_create, construct_aio_bdev)
struct rpc_delete_aio {
char *name;
@ -104,7 +105,7 @@ static const struct spdk_json_object_decoder rpc_delete_aio_decoders[] = {
};
static void
_spdk_rpc_delete_aio_bdev_cb(void *cb_arg, int bdeverrno)
_spdk_rpc_bdev_aio_delete_cb(void *cb_arg, int bdeverrno)
{
struct spdk_jsonrpc_request *request = cb_arg;
struct spdk_json_write_ctx *w = spdk_jsonrpc_begin_result(request);
@ -114,7 +115,7 @@ _spdk_rpc_delete_aio_bdev_cb(void *cb_arg, int bdeverrno)
}
static void
spdk_rpc_delete_aio_bdev(struct spdk_jsonrpc_request *request,
spdk_rpc_bdev_aio_delete(struct spdk_jsonrpc_request *request,
const struct spdk_json_val *params)
{
struct rpc_delete_aio req = {NULL};
@ -134,7 +135,7 @@ spdk_rpc_delete_aio_bdev(struct spdk_jsonrpc_request *request,
goto cleanup;
}
delete_aio_bdev(bdev, _spdk_rpc_delete_aio_bdev_cb, request);
bdev_aio_delete(bdev, _spdk_rpc_bdev_aio_delete_cb, request);
free_rpc_delete_aio(&req);
@ -143,4 +144,5 @@ spdk_rpc_delete_aio_bdev(struct spdk_jsonrpc_request *request,
cleanup:
free_rpc_delete_aio(&req);
}
SPDK_RPC_REGISTER("delete_aio_bdev", spdk_rpc_delete_aio_bdev, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER("bdev_aio_delete", spdk_rpc_bdev_aio_delete, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_aio_delete, delete_aio_bdev)

View File

@ -13,7 +13,7 @@ bdev_dict["set_bdev_nvme_options"] = []
bdev_dict["construct_nvme_bdev"] = []
bdev_dict["set_bdev_nvme_hotplug"] = []
bdev_dict["bdev_malloc_create"] = []
bdev_dict["construct_aio_bdev"] = []
bdev_dict["bdev_aio_create"] = []
bdev_dict["construct_pmem_bdev"] = []
bdev_dict["construct_virtio_dev"] = []
@ -174,7 +174,7 @@ def get_aio_bdev_json(config, section):
params['block_size'] = int(items[2])
aio_json.append({
"params": params,
"method": "construct_aio_bdev"
"method": "bdev_aio_create"
})
return aio_json

View File

@ -271,26 +271,26 @@ if __name__ == "__main__":
p.add_argument('name', help='null bdev name')
p.set_defaults(func=delete_null_bdev)
def construct_aio_bdev(args):
print_json(rpc.bdev.construct_aio_bdev(args.client,
def bdev_aio_create(args):
print_json(rpc.bdev.bdev_aio_create(args.client,
filename=args.filename,
name=args.name,
block_size=args.block_size))
p = subparsers.add_parser('construct_aio_bdev',
p = subparsers.add_parser('bdev_aio_create',
help='Add a bdev with aio backend')
p.add_argument('filename', help='Path to device or file (ex: /dev/sda)')
p.add_argument('name', help='Block device name')
p.add_argument('block_size', help='Block size for this bdev', type=int, nargs='?', default=0)
p.set_defaults(func=construct_aio_bdev)
p.set_defaults(func=bdev_aio_create)
def delete_aio_bdev(args):
rpc.bdev.delete_aio_bdev(args.client,
def bdev_aio_delete(args):
rpc.bdev.bdev_aio_delete(args.client,
name=args.name)
p = subparsers.add_parser('delete_aio_bdev', help='Delete an aio disk')
p = subparsers.add_parser('bdev_aio_delete', help='Delete an aio disk')
p.add_argument('name', help='aio bdev name')
p.set_defaults(func=delete_aio_bdev)
p.set_defaults(func=bdev_aio_delete)
def set_bdev_nvme_options(args):
rpc.bdev.set_bdev_nvme_options(args.client,

View File

@ -249,7 +249,8 @@ def destroy_raid_bdev(client, name):
return client.call('destroy_raid_bdev', params)
def construct_aio_bdev(client, filename, name, block_size=None):
@deprecated_alias('construct_aio_bdev')
def bdev_aio_create(client, filename, name, block_size=None):
"""Construct a Linux AIO block device.
Args:
@ -266,17 +267,18 @@ def construct_aio_bdev(client, filename, name, block_size=None):
if block_size:
params['block_size'] = block_size
return client.call('construct_aio_bdev', params)
return client.call('bdev_aio_create', params)
def delete_aio_bdev(client, name):
@deprecated_alias('delete_aio_bdev')
def bdev_aio_delete(client, name):
"""Remove aio bdev from the system.
Args:
bdev_name: name of aio bdev to delete
"""
params = {'name': name}
return client.call('delete_aio_bdev', params)
return client.call('bdev_aio_delete', params)
def set_bdev_nvme_options(client, action_on_timeout=None, timeout_us=None, retry_count=None,

View File

@ -203,7 +203,7 @@ class UIAIOBdev(UIBdev):
UIBdev.__init__(self, "aio", parent)
def delete(self, name):
self.get_root().delete_aio_bdev(name=name)
self.get_root().bdev_aio_delete(name=name)
def ui_command_create(self, name, filename, block_size):
"""
@ -218,7 +218,7 @@ class UIAIOBdev(UIBdev):
"""
block_size = self.ui_eval_param(block_size, "number", None)
ret_name = self.get_root().create_aio_bdev(name=name,
ret_name = self.get_root().bdev_aio_create(name=name,
block_size=int(block_size),
filename=filename)
self.shell.log.info(ret_name)

View File

@ -144,13 +144,13 @@ class UIRoot(UINode):
rpc.bdev.delete_iscsi_bdev(self.client, **kwargs)
@verbose
def create_aio_bdev(self, **kwargs):
response = rpc.bdev.construct_aio_bdev(self.client, **kwargs)
def bdev_aio_create(self, **kwargs):
response = rpc.bdev.bdev_aio_create(self.client, **kwargs)
return response
@verbose
def delete_aio_bdev(self, **kwargs):
rpc.bdev.delete_aio_bdev(self.client, **kwargs)
def bdev_aio_delete(self, **kwargs):
rpc.bdev.bdev_aio_delete(self.client, **kwargs)
@verbose
def create_lvol_bdev(self, **kwargs):

View File

@ -22,7 +22,7 @@ bdev_svc_pid=$!
trap 'killprocess $bdev_svc_pid; exit 1' SIGINT SIGTERM EXIT
waitforlisten $bdev_svc_pid
$rpc_py construct_aio_bdev $testdir/aio.bdev aio0 4096
$rpc_py bdev_aio_create $testdir/aio.bdev aio0 4096
$rpc_py construct_lvol_store aio0 lvs0
$rpc_py construct_lvol_bdev -l lvs0 lvol0 32

View File

@ -125,7 +125,7 @@
"name": "AIO0",
"filename": "/tmp/sample_aio0"
},
"method": "construct_aio_bdev"
"method": "bdev_aio_create"
},
{
"params": {
@ -133,7 +133,7 @@
"name": "AIO1",
"filename": "/tmp/sample_aio1"
},
"method": "construct_aio_bdev"
"method": "bdev_aio_create"
},
{
"params": {
@ -141,7 +141,7 @@
"name": "AIO2",
"filename": "/tmp/sample_aio2"
},
"method": "construct_aio_bdev"
"method": "bdev_aio_create"
},
{
"params": {
@ -149,7 +149,7 @@
"name": "AIO3",
"filename": "/tmp/sample_aio1"
},
"method": "construct_aio_bdev"
"method": "bdev_aio_create"
},
{
"params": {
@ -157,7 +157,7 @@
"name": "AIO4",
"filename": "/tmp/sample_aio2"
},
"method": "construct_aio_bdev"
"method": "bdev_aio_create"
},
{
"params": {

View File

@ -35,7 +35,7 @@ def get_bdev_destroy_method(bdev):
'construct_null_bdev': "delete_null_bdev",
'construct_rbd_bdev': "delete_rbd_bdev",
'construct_pmem_bdev': "delete_pmem_bdev",
'construct_aio_bdev': "delete_aio_bdev",
'bdev_aio_create': "bdev_aio_delete",
'construct_error_bdev': "delete_error_bdev",
'construct_split_vbdev': "destruct_split_vbdev",
'construct_virtio_dev': "remove_virtio_bdev",

View File

@ -193,7 +193,7 @@ function create_bdev_subsystem_config() {
if [[ $(uname -s) = Linux ]]; then
# This AIO bdev must be large enough to be used as LVOL store
dd if=/dev/zero of=/tmp/sample_aio bs=1024 count=102400
tgt_rpc construct_aio_bdev /tmp/sample_aio aio_disk 1024
tgt_rpc bdev_aio_create /tmp/sample_aio aio_disk 1024
expected_notifications+=( bdev_register:aio_disk )
fi

View File

@ -234,12 +234,12 @@ class Commands_Rpc(object):
output, rc = self.rpc.decouple_parent_lvol_bdev(clone_name)
return rc
def construct_aio_bdev(self, aio_path, aio_name, aio_bs=""):
print("INFO: RPC COMMAND construct_aio_bdev")
output, rc = self.rpc.construct_aio_bdev(aio_path, aio_name, aio_bs)
def bdev_aio_create(self, aio_path, aio_name, aio_bs=""):
print("INFO: RPC COMMAND bdev_aio_create")
output, rc = self.rpc.bdev_aio_create(aio_path, aio_name, aio_bs)
return rc
def delete_aio_bdev(self, aio_name):
print("INFO: RPC COMMAND delete_aio_bdev")
output, rc = self.rpc.delete_aio_bdev(aio_name)
def bdev_aio_delete(self, aio_name):
print("INFO: RPC COMMAND bdev_aio_delete")
output, rc = self.rpc.bdev_aio_delete(aio_name)
return rc

View File

@ -958,7 +958,7 @@ class TestCases(object):
base_name = "aio_bdev0"
aio_bdev0 = path.join(base_path, "aio_bdev_0")
# Construct aio bdev
self.c.construct_aio_bdev(aio_bdev0, base_name, 4096)
self.c.bdev_aio_create(aio_bdev0, base_name, 4096)
# Create lvol store on created aio bdev
uuid_store = self.c.construct_lvol_store(base_name,
self.lvs_name)
@ -969,9 +969,9 @@ class TestCases(object):
fail_count += 1
# Delete aio bdev
self.c.delete_aio_bdev(base_name)
self.c.bdev_aio_delete(base_name)
# Create aio bdev on the same file
self.c.construct_aio_bdev(aio_bdev0, base_name, 4096)
self.c.bdev_aio_create(aio_bdev0, base_name, 4096)
# Wait 1 second to allow time for lvolstore tasting
sleep(1)
@ -980,7 +980,7 @@ class TestCases(object):
self.cluster_size)
if ret_value == 0:
fail_count += 1
self.c.delete_aio_bdev(base_name)
self.c.bdev_aio_delete(base_name)
# Expected result:
# - get_lvol_stores should not report any existsing lvol stores in configuration
@ -1865,7 +1865,7 @@ class TestCases(object):
pid_path = path.join(base_path, 'vhost.pid')
aio_bdev0 = path.join(base_path, 'aio_bdev_0')
self.c.construct_aio_bdev(aio_bdev0, base_name, 4096)
self.c.bdev_aio_create(aio_bdev0, base_name, 4096)
# Create initial configuration on running vhost instance
# create lvol store, create 5 bdevs
# save info of all lvs and lvol bdevs
@ -1895,7 +1895,7 @@ class TestCases(object):
fail_count += 1
return fail_count
self.c.construct_aio_bdev(aio_bdev0, base_name, 4096)
self.c.bdev_aio_create(aio_bdev0, base_name, 4096)
# Check if configuration was properly loaded after tasting
# get all info all lvs and lvol bdevs, compare with previous info
new_bdevs = sorted(self.c.get_lvol_bdevs(), key=lambda x: x["name"])
@ -1920,7 +1920,7 @@ class TestCases(object):
pprint.pprint([o, n])
if fail_count != 0:
self.c.delete_aio_bdev(aio_bdev0)
self.c.bdev_aio_delete(aio_bdev0)
return fail_count
# Try modifying loaded configuration
@ -1960,7 +1960,7 @@ class TestCases(object):
if self.c.destroy_lvol_store(uuid_store) != 0:
fail_count += 1
self.c.delete_aio_bdev(base_name)
self.c.bdev_aio_delete(base_name)
return fail_count
@ -1975,15 +1975,15 @@ class TestCases(object):
aio_bdev0 = path.join(base_path, 'aio_bdev_0')
base_name = "aio_bdev0"
self.c.construct_aio_bdev(aio_bdev0, base_name, 4096)
self.c.bdev_aio_create(aio_bdev0, base_name, 4096)
# construct lvol store on aio bdev
uuid_store = self.c.construct_lvol_store(base_name,
self.lvs_name)
fail_count = self.c.check_get_lvol_stores(base_name, uuid_store,
self.cluster_size)
self.c.delete_aio_bdev(base_name)
self.c.construct_aio_bdev(aio_bdev0, base_name, 4096)
self.c.bdev_aio_delete(base_name)
self.c.bdev_aio_create(aio_bdev0, base_name, 4096)
# wait 1 second to allow time for lvolstore tasting
sleep(1)
# check if lvol store still exists in vhost configuration
@ -1994,7 +1994,7 @@ class TestCases(object):
if self.c.destroy_lvol_store(uuid_store) != 0:
fail_count += 1
self.c.delete_aio_bdev(base_name)
self.c.bdev_aio_delete(base_name)
return fail_count
@case_message
@ -2021,8 +2021,8 @@ class TestCases(object):
aio_bdev0 = path.join(base_path, 'aio_bdev_0')
aio_bdev1 = path.join(base_path, 'aio_bdev_1')
self.c.construct_aio_bdev(aio_bdev0, base_name_1M, 4096)
self.c.construct_aio_bdev(aio_bdev1, base_name_32M, 4096)
self.c.bdev_aio_create(aio_bdev0, base_name_1M, 4096)
self.c.bdev_aio_create(aio_bdev1, base_name_32M, 4096)
# Create initial configuration on running vhost instance
# create lvol store, create 5 bdevs
@ -2073,8 +2073,8 @@ class TestCases(object):
fail_count += 1
return fail_count
self.c.construct_aio_bdev(aio_bdev0, base_name_1M, 4096)
self.c.construct_aio_bdev(aio_bdev1, base_name_32M, 4096)
self.c.bdev_aio_create(aio_bdev0, base_name_1M, 4096)
self.c.bdev_aio_create(aio_bdev1, base_name_32M, 4096)
# wait 1 second to allow time for lvolstore tasting
sleep(1)
@ -2103,8 +2103,8 @@ class TestCases(object):
pprint.pprint([o, n])
if fail_count != 0:
self.c.delete_aio_bdev(base_name_1M)
self.c.delete_aio_bdev(base_name_32M)
self.c.bdev_aio_delete(base_name_1M)
self.c.bdev_aio_delete(base_name_32M)
return fail_count
for uuid_bdev in uuid_bdevs:
@ -2116,8 +2116,8 @@ class TestCases(object):
if self.c.destroy_lvol_store(uuid_store_32M) != 0:
fail_count += 1
self.c.delete_aio_bdev(base_name_1M)
self.c.delete_aio_bdev(base_name_32M)
self.c.bdev_aio_delete(base_name_1M)
self.c.bdev_aio_delete(base_name_32M)
return fail_count

View File

@ -95,7 +95,7 @@ notice "..."
# TODO: use a param for blocksize for AIO and Malloc bdevs
aio_file="$testdir/aio_disk"
dd if=/dev/zero of=$aio_file bs=1M count=512
$rpc_py construct_aio_bdev $aio_file Aio0 512
$rpc_py bdev_aio_create $aio_file Aio0 512
$rpc_py bdev_malloc_create -b Malloc0 256 512
$rpc_py get_bdevs

View File

@ -52,7 +52,7 @@ timing_enter vhost_run
vhost_run 0
$rpc_py set_bdev_nvme_hotplug -e
$rpc_py bdev_malloc_create 256 4096 -b Malloc0
$rpc_py construct_aio_bdev $aio_file Aio0 512
$rpc_py bdev_aio_create $aio_file Aio0 512
$rpc_py get_bdevs
$rpc_py construct_vhost_scsi_controller naa.vhost.1
$rpc_py add_vhost_scsi_lun naa.vhost.1 0 Nvme0n1