RPC: rename RPC bdev_error series

Rename: construct_error_bdev to bdev_error_create, delete_error_bdev to bdev_error_delete, and bdev_inject_error to bdev_error_inject_error

Change-Id: I8a585a722b8441974d7c2d4e8ef7170b8d977c71
Signed-off-by: Maciej Wawryk <maciejx.wawryk@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/465397
Reviewed-by: Pawel Kaminski <pawelx.kaminski@intel.com>
Reviewed-by: Broadcom SPDK FC-NVMe CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
Maciej Wawryk 2019-08-16 11:58:53 +02:00 committed by Jim Harris
parent 75da6acb1a
commit cabb6a7d2f
10 changed files with 71 additions and 63 deletions

View File

@ -287,9 +287,9 @@ Example response:
"bdev_aio_create",
"destruct_split_vbdev",
"construct_split_vbdev",
"bdev_inject_error",
"delete_error_bdev",
"construct_error_bdev",
"bdev_error_inject_error",
"bdev_error_delete",
"bdev_error_create",
"construct_passthru_bdev",
"apply_nvme_firmware",
"delete_nvme_controller",
@ -1845,7 +1845,7 @@ Example response:
}
~~~
## construct_error_bdev {#rpc_construct_error_bdev}
## bdev_error_create {#rpc_bdev_error_create}
Construct error bdev.
@ -1865,7 +1865,7 @@ Example request:
"base_name": "Malloc0"
},
"jsonrpc": "2.0",
"method": "construct_error_bdev",
"method": "bdev_error_create",
"id": 1
}
~~~
@ -1880,7 +1880,7 @@ Example response:
}
~~~
## delete_error_bdev {#rpc_delete_error_bdev}
## bdev_error_delete {#rpc_bdev_error_delete}
Delete error bdev
@ -1904,7 +1904,7 @@ Example request:
"name": "EE_Malloc0"
},
"jsonrpc": "2.0",
"method": "delete_error_bdev",
"method": "bdev_error_delete",
"id": 1
}
~~~

View File

@ -96,7 +96,7 @@ static struct spdk_bdev_module error_if = {
SPDK_BDEV_MODULE_REGISTER(error, &error_if)
int
spdk_vbdev_inject_error(char *name, uint32_t io_type, uint32_t error_type, uint32_t error_num)
spdk_vbdev_error_inject_error(char *name, uint32_t io_type, uint32_t error_type, uint32_t error_num)
{
struct spdk_bdev *bdev;
struct spdk_bdev_part *part;
@ -496,7 +496,7 @@ vbdev_error_config_json(struct spdk_json_write_ctx *w)
TAILQ_FOREACH(cfg, &g_error_config, tailq) {
spdk_json_write_object_begin(w);
spdk_json_write_named_string(w, "method", "construct_error_bdev");
spdk_json_write_named_string(w, "method", "bdev_error_create");
spdk_json_write_named_object_begin(w, "params");
spdk_json_write_named_string(w, "base_name", cfg->base_bdev);
spdk_json_write_object_end(w);

View File

@ -70,7 +70,7 @@ void spdk_vbdev_error_delete(struct spdk_bdev *vbdev, spdk_delete_error_complete
* \param io_type IO type into which error is injected.
* \param error_num Count of injected errors
*/
int spdk_vbdev_inject_error(char *name, uint32_t io_type, uint32_t error_type,
uint32_t error_num);
int spdk_vbdev_error_inject_error(char *name, uint32_t io_type, uint32_t error_type,
uint32_t error_num);
#endif /* SPDK_VBDEV_ERROR_H */

View File

@ -72,30 +72,30 @@ spdk_rpc_error_bdev_error_type_parse(char *name)
return ERROR_BDEV_ERROR_TYPE_INVALID;
}
struct rpc_construct_error_bdev {
struct rpc_bdev_error_create {
char *base_name;
};
static void
free_rpc_construct_error_bdev(struct rpc_construct_error_bdev *req)
free_rpc_bdev_error_create(struct rpc_bdev_error_create *req)
{
free(req->base_name);
}
static const struct spdk_json_object_decoder rpc_construct_error_bdev_decoders[] = {
{"base_name", offsetof(struct rpc_construct_error_bdev, base_name), spdk_json_decode_string},
static const struct spdk_json_object_decoder rpc_bdev_error_create_decoders[] = {
{"base_name", offsetof(struct rpc_bdev_error_create, base_name), spdk_json_decode_string},
};
static void
spdk_rpc_construct_error_bdev(struct spdk_jsonrpc_request *request,
const struct spdk_json_val *params)
spdk_rpc_bdev_error_create(struct spdk_jsonrpc_request *request,
const struct spdk_json_val *params)
{
struct rpc_construct_error_bdev req = {};
struct rpc_bdev_error_create req = {};
struct spdk_json_write_ctx *w;
int rc = 0;
if (spdk_json_decode_object(params, rpc_construct_error_bdev_decoders,
SPDK_COUNTOF(rpc_construct_error_bdev_decoders),
if (spdk_json_decode_object(params, rpc_bdev_error_create_decoders,
SPDK_COUNTOF(rpc_bdev_error_create_decoders),
&req)) {
SPDK_ERRLOG("spdk_json_decode_object failed\n");
spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INTERNAL_ERROR,
@ -114,9 +114,10 @@ spdk_rpc_construct_error_bdev(struct spdk_jsonrpc_request *request,
spdk_jsonrpc_end_result(request, w);
cleanup:
free_rpc_construct_error_bdev(&req);
free_rpc_bdev_error_create(&req);
}
SPDK_RPC_REGISTER("construct_error_bdev", spdk_rpc_construct_error_bdev, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER("bdev_error_create", spdk_rpc_bdev_error_create, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_error_create, construct_error_bdev)
struct rpc_delete_error {
char *name;
@ -133,7 +134,7 @@ static const struct spdk_json_object_decoder rpc_delete_error_decoders[] = {
};
static void
_spdk_rpc_delete_error_bdev_cb(void *cb_arg, int bdeverrno)
_spdk_rpc_bdev_error_delete_cb(void *cb_arg, int bdeverrno)
{
struct spdk_jsonrpc_request *request = cb_arg;
struct spdk_json_write_ctx *w;
@ -144,7 +145,7 @@ _spdk_rpc_delete_error_bdev_cb(void *cb_arg, int bdeverrno)
}
static void
spdk_rpc_delete_error_bdev(struct spdk_jsonrpc_request *request,
spdk_rpc_bdev_error_delete(struct spdk_jsonrpc_request *request,
const struct spdk_json_val *params)
{
struct rpc_delete_error req = {NULL};
@ -164,12 +165,13 @@ spdk_rpc_delete_error_bdev(struct spdk_jsonrpc_request *request,
goto cleanup;
}
spdk_vbdev_error_delete(vbdev, _spdk_rpc_delete_error_bdev_cb, request);
spdk_vbdev_error_delete(vbdev, _spdk_rpc_bdev_error_delete_cb, request);
cleanup:
free_rpc_delete_error(&req);
}
SPDK_RPC_REGISTER("delete_error_bdev", spdk_rpc_delete_error_bdev, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER("bdev_error_delete", spdk_rpc_bdev_error_delete, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_error_delete, delete_error_bdev)
struct rpc_error_information {
char *name;
@ -194,8 +196,8 @@ free_rpc_error_information(struct rpc_error_information *p)
}
static void
spdk_rpc_bdev_inject_error(struct spdk_jsonrpc_request *request,
const struct spdk_json_val *params)
spdk_rpc_bdev_error_inject_error(struct spdk_jsonrpc_request *request,
const struct spdk_json_val *params)
{
struct rpc_error_information req = {};
struct spdk_json_write_ctx *w;
@ -226,7 +228,7 @@ spdk_rpc_bdev_inject_error(struct spdk_jsonrpc_request *request,
goto cleanup;
}
rc = spdk_vbdev_inject_error(req.name, io_type, error_type, req.num);
rc = spdk_vbdev_error_inject_error(req.name, io_type, error_type, req.num);
if (rc) {
spdk_jsonrpc_send_error_response(request, rc, spdk_strerror(-rc));
goto cleanup;
@ -239,4 +241,5 @@ spdk_rpc_bdev_inject_error(struct spdk_jsonrpc_request *request,
cleanup:
free_rpc_error_information(&req);
}
SPDK_RPC_REGISTER("bdev_inject_error", spdk_rpc_bdev_inject_error, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER("bdev_error_inject_error", spdk_rpc_bdev_error_inject_error, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_error_inject_error, bdev_inject_error)

View File

@ -473,22 +473,23 @@ if __name__ == "__main__":
p.add_argument('latency_us', help='new latency value in microseconds.', type=int)
p.set_defaults(func=bdev_delay_update_latency)
def construct_error_bdev(args):
print_json(rpc.bdev.construct_error_bdev(args.client,
base_name=args.base_name))
def bdev_error_create(args):
print_json(rpc.bdev.bdev_error_create(args.client,
base_name=args.base_name))
p = subparsers.add_parser('construct_error_bdev',
p = subparsers.add_parser('bdev_error_create', aliases=['construct_error_bdev'],
help='Add bdev with error injection backend')
p.add_argument('base_name', help='base bdev name')
p.set_defaults(func=construct_error_bdev)
p.set_defaults(func=bdev_error_create)
def delete_error_bdev(args):
rpc.bdev.delete_error_bdev(args.client,
def bdev_error_delete(args):
rpc.bdev.bdev_error_delete(args.client,
name=args.name)
p = subparsers.add_parser('delete_error_bdev', help='Delete an error bdev')
p = subparsers.add_parser('bdev_error_delete', aliases=['delete_error_bdev'],
help='Delete an error bdev')
p.add_argument('name', help='error bdev name')
p.set_defaults(func=delete_error_bdev)
p.set_defaults(func=bdev_error_delete)
def construct_iscsi_bdev(args):
print_json(rpc.bdev.construct_iscsi_bdev(args.client,
@ -618,20 +619,21 @@ if __name__ == "__main__":
type=int, required=False)
p.set_defaults(func=set_bdev_qos_limit)
def bdev_inject_error(args):
rpc.bdev.bdev_inject_error(args.client,
name=args.name,
io_type=args.io_type,
error_type=args.error_type,
num=args.num)
def bdev_error_inject_error(args):
rpc.bdev.bdev_error_inject_error(args.client,
name=args.name,
io_type=args.io_type,
error_type=args.error_type,
num=args.num)
p = subparsers.add_parser('bdev_inject_error', help='bdev inject error')
p = subparsers.add_parser('bdev_error_inject_error', aliases=['bdev_inject_error'],
help='bdev inject error')
p.add_argument('name', help="""the name of the error injection bdev""")
p.add_argument('io_type', help="""io_type: 'clear' 'read' 'write' 'unmap' 'flush' 'all'""")
p.add_argument('error_type', help="""error_type: 'failure' 'pending'""")
p.add_argument(
'-n', '--num', help='the number of commands you want to fail', type=int, default=1)
p.set_defaults(func=bdev_inject_error)
p.set_defaults(func=bdev_error_inject_error)
def apply_firmware(args):
print_dict(rpc.bdev.apply_firmware(args.client,

View File

@ -456,14 +456,15 @@ def delete_rbd_bdev(client, name):
return client.call('delete_rbd_bdev', params)
def construct_error_bdev(client, base_name):
@deprecated_alias('construct_error_bdev')
def bdev_error_create(client, base_name):
"""Construct an error injection block device.
Args:
base_name: base bdev name
"""
params = {'base_name': base_name}
return client.call('construct_error_bdev', params)
return client.call('bdev_error_create', params)
def bdev_delay_create(client, base_bdev_name, name, avg_read_latency, p99_read_latency, avg_write_latency, p99_write_latency):
@ -520,14 +521,15 @@ def bdev_delay_update_latency(client, delay_bdev_name, latency_type, latency_us)
return client.call('bdev_delay_update_latency', params)
def delete_error_bdev(client, name):
@deprecated_alias('delete_error_bdev')
def bdev_error_delete(client, name):
"""Remove error bdev from the system.
Args:
bdev_name: name of error bdev to delete
"""
params = {'name': name}
return client.call('delete_error_bdev', params)
return client.call('bdev_error_delete', params)
def construct_iscsi_bdev(client, name, url, initiator_iqn):
@ -729,7 +731,8 @@ def get_bdev_histogram(client, name):
return client.call('get_bdev_histogram', params)
def bdev_inject_error(client, name, io_type, error_type, num=1):
@deprecated_alias('bdev_inject_error')
def bdev_error_inject_error(client, name, io_type, error_type, num=1):
"""Inject an error via an error bdev.
Args:
@ -745,7 +748,7 @@ def bdev_inject_error(client, name, io_type, error_type, num=1):
'num': num,
}
return client.call('bdev_inject_error', params)
return client.call('bdev_error_inject_error', params)
def set_bdev_qd_sampling_period(client, name, period):

View File

@ -361,7 +361,7 @@ class UIErrorBdev(UIBdev):
UIBdev.__init__(self, "error", parent)
def delete(self, name):
self.get_root().delete_error_bdev(name=name)
self.get_root().bdev_error_delete(name=name)
def ui_command_create(self, base_name):
"""

View File

@ -182,11 +182,11 @@ class UIRoot(UINode):
@verbose
def create_error_bdev(self, **kwargs):
response = rpc.bdev.construct_error_bdev(self.client, **kwargs)
response = rpc.bdev.bdev_error_create(self.client, **kwargs)
@verbose
def delete_error_bdev(self, **kwargs):
rpc.bdev.delete_error_bdev(self.client, **kwargs)
def bdev_error_delete(self, **kwargs):
rpc.bdev.bdev_error_delete(self.client, **kwargs)
@verbose
@is_method_available

View File

@ -33,7 +33,7 @@ timing_exit start_iscsi_tgt
$rpc_py add_portal_group $PORTAL_TAG $TARGET_IP:$ISCSI_PORT
$rpc_py add_initiator_group $INITIATOR_TAG $INITIATOR_NAME $NETMASK
$rpc_py construct_error_bdev 'Malloc0'
$rpc_py bdev_error_create 'Malloc0'
# "1:2" ==> map PortalGroup1 to InitiatorGroup2
# "64" ==> iSCSI queue depth 64
# "-d" ==> disable CHAP authentication
@ -48,7 +48,7 @@ trap 'for new_dir in $(dir -d /mnt/*dir); do umount $new_dir; rm -rf $new_dir; d
iscsicleanup; killprocess $pid; iscsitestfini $1 $2; exit 1' SIGINT SIGTERM EXIT
echo "Test error injection"
$rpc_py bdev_inject_error EE_Malloc0 'all' 'failure' -n 1000
$rpc_py bdev_error_inject_error EE_Malloc0 'all' 'failure' -n 1000
dev=$(iscsiadm -m session -P 3 | grep "Attached scsi disk" | awk '{print $4}')
@ -66,7 +66,7 @@ fi
set -e
iscsicleanup
$rpc_py bdev_inject_error EE_Malloc0 'clear' 'failure'
$rpc_py bdev_error_inject_error EE_Malloc0 'clear' 'failure'
$rpc_py delete_target_node $node_base:Target0
echo "Error injection test done"
@ -124,7 +124,7 @@ trap - SIGINT SIGTERM EXIT
iscsicleanup
$rpc_py destruct_split_vbdev Nvme0n1
$rpc_py delete_error_bdev EE_Malloc0
$rpc_py bdev_error_delete EE_Malloc0
if [ -z "$NO_NVME" ]; then
$rpc_py delete_nvme_controller Nvme0

View File

@ -25,7 +25,7 @@ def get_bdev_name(bdev):
bdev_name = bdev['params']['base_name']
elif 'base_bdev' in bdev['params']:
bdev_name = bdev['params']['base_bdev']
if 'method' in bdev and bdev['method'] == 'construct_error_bdev':
if 'method' in bdev and bdev['method'] == 'bdev_error_create':
bdev_name = "EE_%s" % bdev_name
return bdev_name
@ -36,7 +36,7 @@ def get_bdev_destroy_method(bdev):
'construct_rbd_bdev': "delete_rbd_bdev",
'construct_pmem_bdev': "delete_pmem_bdev",
'bdev_aio_create': "bdev_aio_delete",
'construct_error_bdev': "delete_error_bdev",
'bdev_error_create': "bdev_error_delete",
'construct_split_vbdev': "destruct_split_vbdev",
'construct_virtio_dev': "remove_virtio_bdev",
'bdev_crypto_create': "bdev_crypto_delete",