bdev module: remove support for deprecated RPC names

These were deprecated in 2019, it's time to remove
support for them now.

Change-Id: I9e203a52877802127df8144e68090d7975f9d200
Signed-off-by: wanghailiangx <hailiangx.e.wang@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12772
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
wanghailiangx 2022-05-23 04:02:55 -04:00 committed by Jim Harris
parent 13067997d0
commit 7aa92ad513
27 changed files with 63 additions and 218 deletions

View File

@ -120,7 +120,7 @@ a value of 1 tells the driver to use QAT and if not available then the creation
the vbdev should fail to create or load. A value of '2' as shown below tells the module
to use ISAL and if for some reason it is not available, the vbdev should fail to create or load.
`rpc.py compress_set_pmd -p 2`
`rpc.py bdev_compress_set_pmd -p 2`
To remove a compression vbdev, use the following command which will also delete the PMEM
file. If the logical volume is deleted the PMEM file will not be removed and the

View File

@ -109,7 +109,6 @@ rpc_bdev_aio_create(struct spdk_jsonrpc_request *request,
spdk_bdev_wait_for_examine(rpc_bdev_aio_create_cb, ctx);
}
SPDK_RPC_REGISTER("bdev_aio_create", rpc_bdev_aio_create, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_aio_create, construct_aio_bdev)
struct rpc_rescan_aio {
char *name;
@ -188,4 +187,3 @@ cleanup:
free_rpc_delete_aio(&req);
}
SPDK_RPC_REGISTER("bdev_aio_delete", rpc_bdev_aio_delete, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_aio_delete, delete_aio_bdev)

View File

@ -138,8 +138,6 @@ rpc_bdev_compress_set_pmd(struct spdk_jsonrpc_request *request,
}
SPDK_RPC_REGISTER("bdev_compress_set_pmd", rpc_bdev_compress_set_pmd,
SPDK_RPC_STARTUP | SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_compress_set_pmd, set_compress_pmd)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_compress_set_pmd, compress_set_pmd)
/* Structure to hold the parameters for this RPC method. */
struct rpc_construct_compress {
@ -204,7 +202,6 @@ cleanup:
free_rpc_construct_compress(&req);
}
SPDK_RPC_REGISTER("bdev_compress_create", rpc_bdev_compress_create, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_compress_create, construct_compress_bdev)
struct rpc_delete_compress {
char *name;
@ -246,4 +243,3 @@ rpc_bdev_compress_delete(struct spdk_jsonrpc_request *request,
free_rpc_delete_compress(&req);
}
SPDK_RPC_REGISTER("bdev_compress_delete", rpc_bdev_compress_delete, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_compress_delete, delete_compress_bdev)

View File

@ -288,7 +288,6 @@ cleanup:
free_rpc_construct_crypto(&req);
}
SPDK_RPC_REGISTER("bdev_crypto_create", rpc_bdev_crypto_create, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_crypto_create, construct_crypto_bdev)
struct rpc_delete_crypto {
char *name;
@ -340,4 +339,3 @@ cleanup:
free_rpc_delete_crypto(&req);
}
SPDK_RPC_REGISTER("bdev_crypto_delete", rpc_bdev_crypto_delete, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_crypto_delete, delete_crypto_bdev)

View File

@ -114,7 +114,6 @@ cleanup:
free_rpc_bdev_error_create(&req);
}
SPDK_RPC_REGISTER("bdev_error_create", rpc_bdev_error_create, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_error_create, construct_error_bdev)
struct rpc_delete_error {
char *name;
@ -162,7 +161,6 @@ cleanup:
free_rpc_delete_error(&req);
}
SPDK_RPC_REGISTER("bdev_error_delete", rpc_bdev_error_delete, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_error_delete, delete_error_bdev)
struct rpc_error_information {
char *name;
@ -230,4 +228,3 @@ cleanup:
free_rpc_error_information(&req);
}
SPDK_RPC_REGISTER("bdev_error_inject_error", rpc_bdev_error_inject_error, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_error_inject_error, bdev_inject_error)

View File

@ -215,7 +215,6 @@ invalid:
}
SPDK_RPC_REGISTER("bdev_ftl_create", rpc_bdev_ftl_create, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_ftl_create, construct_ftl_bdev)
struct rpc_delete_ftl {
char *name;
@ -257,4 +256,3 @@ invalid:
}
SPDK_RPC_REGISTER("bdev_ftl_delete", rpc_bdev_ftl_delete, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_ftl_delete, delete_ftl_bdev)

View File

@ -161,7 +161,6 @@ cleanup:
free_rpc_bdev_lvol_create_lvstore(&req);
}
SPDK_RPC_REGISTER("bdev_lvol_create_lvstore", rpc_bdev_lvol_create_lvstore, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_lvol_create_lvstore, construct_lvol_store)
struct rpc_bdev_lvol_rename_lvstore {
char *old_name;
@ -226,7 +225,6 @@ cleanup:
free_rpc_bdev_lvol_rename_lvstore(&req);
}
SPDK_RPC_REGISTER("bdev_lvol_rename_lvstore", rpc_bdev_lvol_rename_lvstore, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_lvol_rename_lvstore, rename_lvol_store)
struct rpc_bdev_lvol_delete_lvstore {
char *uuid;
@ -291,7 +289,6 @@ cleanup:
free_rpc_bdev_lvol_delete_lvstore(&req);
}
SPDK_RPC_REGISTER("bdev_lvol_delete_lvstore", rpc_bdev_lvol_delete_lvstore, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_lvol_delete_lvstore, destroy_lvol_store)
struct rpc_bdev_lvol_create {
char *uuid;
@ -393,7 +390,6 @@ cleanup:
}
SPDK_RPC_REGISTER("bdev_lvol_create", rpc_bdev_lvol_create, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_lvol_create, construct_lvol_bdev)
struct rpc_bdev_lvol_snapshot {
char *lvol_name;
@ -472,7 +468,6 @@ cleanup:
}
SPDK_RPC_REGISTER("bdev_lvol_snapshot", rpc_bdev_lvol_snapshot, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_lvol_snapshot, snapshot_lvol_bdev)
struct rpc_bdev_lvol_clone {
char *snapshot_name;
@ -551,7 +546,6 @@ cleanup:
}
SPDK_RPC_REGISTER("bdev_lvol_clone", rpc_bdev_lvol_clone, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_lvol_clone, clone_lvol_bdev)
struct rpc_bdev_lvol_rename {
char *old_name;
@ -627,7 +621,6 @@ cleanup:
}
SPDK_RPC_REGISTER("bdev_lvol_rename", rpc_bdev_lvol_rename, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_lvol_rename, rename_lvol_bdev)
struct rpc_bdev_lvol_inflate {
char *name;
@ -700,7 +693,6 @@ cleanup:
}
SPDK_RPC_REGISTER("bdev_lvol_inflate", rpc_bdev_lvol_inflate, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_lvol_inflate, inflate_lvol_bdev)
static void
rpc_bdev_lvol_decouple_parent(struct spdk_jsonrpc_request *request,
@ -742,7 +734,6 @@ cleanup:
}
SPDK_RPC_REGISTER("bdev_lvol_decouple_parent", rpc_bdev_lvol_decouple_parent, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_lvol_decouple_parent, decouple_parent_lvol_bdev)
struct rpc_bdev_lvol_resize {
char *name;
@ -816,7 +807,6 @@ cleanup:
}
SPDK_RPC_REGISTER("bdev_lvol_resize", rpc_bdev_lvol_resize, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_lvol_resize, resize_lvol_bdev)
struct rpc_set_ro_lvol_bdev {
char *name;
@ -894,7 +884,6 @@ cleanup:
}
SPDK_RPC_REGISTER("bdev_lvol_set_read_only", rpc_bdev_lvol_set_read_only, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_lvol_set_read_only, set_read_only_lvol_bdev)
struct rpc_bdev_lvol_delete {
char *name;
@ -964,7 +953,6 @@ cleanup:
}
SPDK_RPC_REGISTER("bdev_lvol_delete", rpc_bdev_lvol_delete, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_lvol_delete, destroy_lvol_bdev)
struct rpc_bdev_lvol_get_lvstores {
char *uuid;
@ -1066,4 +1054,3 @@ cleanup:
}
SPDK_RPC_REGISTER("bdev_lvol_get_lvstores", rpc_bdev_lvol_get_lvstores, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_lvol_get_lvstores, get_lvol_stores)

View File

@ -127,7 +127,6 @@ rpc_bdev_nvme_set_options(struct spdk_jsonrpc_request *request,
}
SPDK_RPC_REGISTER("bdev_nvme_set_options", rpc_bdev_nvme_set_options,
SPDK_RPC_STARTUP | SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_nvme_set_options, set_bdev_nvme_options)
struct rpc_bdev_nvme_hotplug {
bool enabled;
@ -172,7 +171,6 @@ invalid:
spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INVALID_PARAMS, spdk_strerror(-rc));
}
SPDK_RPC_REGISTER("bdev_nvme_set_hotplug", rpc_bdev_nvme_set_hotplug, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_nvme_set_hotplug, set_bdev_nvme_hotplug)
struct rpc_bdev_nvme_attach_controller {
char *name;
@ -536,7 +534,6 @@ cleanup:
}
SPDK_RPC_REGISTER("bdev_nvme_attach_controller", rpc_bdev_nvme_attach_controller,
SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_nvme_attach_controller, construct_nvme_bdev)
static void
rpc_dump_nvme_bdev_controller_info(struct nvme_bdev_ctrlr *nbdev_ctrlr, void *ctx)
@ -612,7 +609,6 @@ cleanup:
free_rpc_bdev_nvme_get_controllers(&req);
}
SPDK_RPC_REGISTER("bdev_nvme_get_controllers", rpc_bdev_nvme_get_controllers, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_nvme_get_controllers, get_nvme_controllers)
struct rpc_bdev_nvme_detach_controller {
char *name;
@ -764,7 +760,6 @@ cleanup:
}
SPDK_RPC_REGISTER("bdev_nvme_detach_controller", rpc_bdev_nvme_detach_controller,
SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_nvme_detach_controller, delete_nvme_controller)
struct rpc_apply_firmware {
char *filename;
@ -1097,7 +1092,6 @@ err:
apply_firmware_cleanup(firm_ctx);
}
SPDK_RPC_REGISTER("bdev_nvme_apply_firmware", rpc_bdev_nvme_apply_firmware, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_nvme_apply_firmware, apply_nvme_firmware)
struct rpc_bdev_nvme_transport_stat_ctx {
struct spdk_jsonrpc_request *request;

View File

@ -488,4 +488,3 @@ invalid:
return;
}
SPDK_RPC_REGISTER("bdev_nvme_send_cmd", rpc_bdev_nvme_send_cmd, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_nvme_send_cmd, send_nvme_cmd)

View File

@ -104,7 +104,6 @@ rpc_bdev_ocf_create(struct spdk_jsonrpc_request *request,
free_rpc_bdev_ocf_create(&req);
}
SPDK_RPC_REGISTER("bdev_ocf_create", 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_bdev_ocf_delete {
@ -172,7 +171,6 @@ end:
free_rpc_bdev_ocf_delete(&req);
}
SPDK_RPC_REGISTER("bdev_ocf_delete", 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_bdev_ocf_get_stats {
@ -267,7 +265,6 @@ end:
free_rpc_bdev_ocf_get_stats(&req);
}
SPDK_RPC_REGISTER("bdev_ocf_get_stats", rpc_bdev_ocf_get_stats, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_ocf_get_stats, get_ocf_stats)
/* Structure to hold the parameters for this RPC method. */
struct rpc_bdev_ocf_get_bdevs {
@ -359,7 +356,6 @@ end:
free_rpc_bdev_ocf_get_bdevs(&req);
}
SPDK_RPC_REGISTER("bdev_ocf_get_bdevs", rpc_bdev_ocf_get_bdevs, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_ocf_get_bdevs, get_ocf_bdevs)
/* Structure to hold the parameters for this RPC method. */
struct rpc_bdev_ocf_set_cache_mode {

View File

@ -91,7 +91,6 @@ cleanup:
free_rpc_bdev_passthru_create(&req);
}
SPDK_RPC_REGISTER("bdev_passthru_create", rpc_bdev_passthru_create, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_passthru_create, construct_passthru_bdev)
struct rpc_bdev_passthru_delete {
char *name;
@ -139,4 +138,3 @@ cleanup:
free_rpc_bdev_passthru_delete(&req);
}
SPDK_RPC_REGISTER("bdev_passthru_delete", rpc_bdev_passthru_delete, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_passthru_delete, delete_passthru_bdev)

View File

@ -87,7 +87,6 @@ cleanup:
free_rpc_bdev_pmem_create(&req);
}
SPDK_RPC_REGISTER("bdev_pmem_create", rpc_bdev_pmem_create, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_pmem_create, construct_pmem_bdev)
struct rpc_delete_pmem {
char *name;
@ -136,7 +135,6 @@ cleanup:
free_rpc_delete_pmem(&req);
}
SPDK_RPC_REGISTER("bdev_pmem_delete", rpc_bdev_pmem_delete, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_pmem_delete, delete_pmem_bdev)
struct rpc_bdev_pmem_create_pool {
char *pmem_file;
@ -205,7 +203,6 @@ cleanup:
free_rpc_bdev_pmem_create_pool(&req);
}
SPDK_RPC_REGISTER("bdev_pmem_create_pool", rpc_bdev_pmem_create_pool, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_pmem_create_pool, create_pmem_pool)
struct rpc_bdev_pmem_get_pool_info {
char *pmem_file;
@ -274,7 +271,6 @@ cleanup:
free_rpc_bdev_pmem_get_pool_info(&req);
}
SPDK_RPC_REGISTER("bdev_pmem_get_pool_info", rpc_bdev_pmem_get_pool_info, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_pmem_get_pool_info, pmem_pool_info)
struct rpc_bdev_pmem_delete_pool {
char *pmem_file;
@ -323,4 +319,3 @@ cleanup:
free_rpc_bdev_pmem_delete_pool(&req);
}
SPDK_RPC_REGISTER("bdev_pmem_delete_pool", rpc_bdev_pmem_delete_pool, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_pmem_delete_pool, delete_pmem_pool)

View File

@ -138,7 +138,6 @@ cleanup:
free_rpc_bdev_raid_get_bdevs(&req);
}
SPDK_RPC_REGISTER("bdev_raid_get_bdevs", rpc_bdev_raid_get_bdevs, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_raid_get_bdevs, get_raid_bdevs)
/*
* Base bdevs in RPC bdev_raid_create
@ -309,7 +308,6 @@ cleanup:
free_rpc_bdev_raid_create(&req);
}
SPDK_RPC_REGISTER("bdev_raid_create", rpc_bdev_raid_create, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_raid_create, construct_raid_bdev)
/*
* Input structure for RPC deleting a raid bdev
@ -431,4 +429,3 @@ cleanup:
free(ctx);
}
SPDK_RPC_REGISTER("bdev_raid_delete", rpc_bdev_raid_delete, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_raid_delete, destroy_raid_bdev)

View File

@ -159,7 +159,6 @@ cleanup:
free_rpc_create_rbd(&req);
}
SPDK_RPC_REGISTER("bdev_rbd_create", rpc_bdev_rbd_create, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_rbd_create, construct_rbd_bdev)
struct rpc_bdev_rbd_delete {
char *name;
@ -207,7 +206,6 @@ cleanup:
free_rpc_bdev_rbd_delete(&req);
}
SPDK_RPC_REGISTER("bdev_rbd_delete", rpc_bdev_rbd_delete, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_rbd_delete, delete_rbd_bdev)
struct rpc_bdev_rbd_resize {
char *name;

View File

@ -113,7 +113,6 @@ out:
free(req.base_bdev);
}
SPDK_RPC_REGISTER("bdev_split_create", rpc_bdev_split_create, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_split_create, construct_split_vbdev)
struct rpc_delete_split {
char *base_bdev;
@ -149,4 +148,3 @@ out:
free(req.base_bdev);
}
SPDK_RPC_REGISTER("bdev_split_delete", rpc_bdev_split_delete, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_split_delete, destruct_split_vbdev)

View File

@ -131,7 +131,6 @@ cleanup:
}
SPDK_RPC_REGISTER("bdev_virtio_detach_controller",
rpc_bdev_virtio_detach_controller, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_virtio_detach_controller, remove_virtio_bdev)
static void
rpc_bdev_virtio_scsi_get_devices(struct spdk_jsonrpc_request *request,
@ -151,7 +150,6 @@ rpc_bdev_virtio_scsi_get_devices(struct spdk_jsonrpc_request *request,
}
SPDK_RPC_REGISTER("bdev_virtio_scsi_get_devices",
rpc_bdev_virtio_scsi_get_devices, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_virtio_scsi_get_devices, get_virtio_scsi_devs)
struct rpc_bdev_virtio_attach_controller_ctx {
char *name;
@ -295,4 +293,3 @@ cleanup:
}
SPDK_RPC_REGISTER("bdev_virtio_attach_controller",
rpc_bdev_virtio_attach_controller, SPDK_RPC_RUNTIME);
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(bdev_virtio_attach_controller, construct_virtio_dev)

View File

@ -46,7 +46,6 @@ def bdev_wait_for_examine(client):
return client.call('bdev_wait_for_examine')
@deprecated_alias('construct_compress_bdev')
def bdev_compress_create(client, base_bdev_name, pm_path, lb_size):
"""Construct a compress virtual block device.
@ -63,7 +62,6 @@ def bdev_compress_create(client, base_bdev_name, pm_path, lb_size):
return client.call('bdev_compress_create', params)
@deprecated_alias('delete_compress_bdev')
def bdev_compress_delete(client, name):
"""Delete compress virtual block device.
@ -74,8 +72,6 @@ def bdev_compress_delete(client, name):
return client.call('bdev_compress_delete', params)
@deprecated_alias('set_compress_pmd')
@deprecated_alias('compress_set_pmd')
def bdev_compress_set_pmd(client, pmd):
"""Set pmd options for the bdev compress.
@ -102,7 +98,6 @@ def bdev_compress_get_orphans(client, name=None):
return client.call('bdev_compress_get_orphans', params)
@deprecated_alias('construct_crypto_bdev')
def bdev_crypto_create(client, base_bdev_name, name, crypto_pmd, key, cipher=None, key2=None):
"""Construct a crypto virtual block device.
@ -123,7 +118,6 @@ def bdev_crypto_create(client, base_bdev_name, name, crypto_pmd, key, cipher=Non
return client.call('bdev_crypto_create', params)
@deprecated_alias('delete_crypto_bdev')
def bdev_crypto_delete(client, name):
"""Delete crypto virtual block device.
@ -134,7 +128,6 @@ def bdev_crypto_delete(client, name):
return client.call('bdev_crypto_delete', params)
@deprecated_alias('construct_ocf_bdev')
def bdev_ocf_create(client, name, mode, cache_line_size, cache_bdev_name, core_bdev_name):
"""Add an OCF block device
@ -159,7 +152,6 @@ def bdev_ocf_create(client, name, mode, cache_line_size, cache_bdev_name, core_b
return client.call('bdev_ocf_create', params)
@deprecated_alias('delete_ocf_bdev')
def bdev_ocf_delete(client, name):
"""Delete an OCF device
@ -172,7 +164,6 @@ def bdev_ocf_delete(client, name):
return client.call('bdev_ocf_delete', params)
@deprecated_alias('get_ocf_stats')
def bdev_ocf_get_stats(client, name):
"""Get statistics of chosen OCF block device
@ -187,7 +178,6 @@ def bdev_ocf_get_stats(client, name):
return client.call('bdev_ocf_get_stats', params)
@deprecated_alias('get_ocf_stats')
def bdev_ocf_get_bdevs(client, name=None):
"""Get list of OCF devices including unregistered ones
@ -328,7 +318,6 @@ def bdev_null_resize(client, name, new_size):
return client.call('bdev_null_resize', params)
@deprecated_alias('get_raid_bdevs')
def bdev_raid_get_bdevs(client, category):
"""Get list of raid bdevs based on category
@ -342,7 +331,6 @@ def bdev_raid_get_bdevs(client, category):
return client.call('bdev_raid_get_bdevs', params)
@deprecated_alias('construct_raid_bdev')
def bdev_raid_create(client, name, raid_level, base_bdevs, strip_size=None, strip_size_kb=None):
"""Create raid bdev. Either strip size arg will work but one is required.
@ -367,7 +355,6 @@ def bdev_raid_create(client, name, raid_level, base_bdevs, strip_size=None, stri
return client.call('bdev_raid_create', params)
@deprecated_alias('destroy_raid_bdev')
def bdev_raid_delete(client, name):
"""Delete raid bdev
@ -381,7 +368,6 @@ def bdev_raid_delete(client, name):
return client.call('bdev_raid_delete', params)
@deprecated_alias('construct_aio_bdev')
def bdev_aio_create(client, filename, name, block_size=None):
"""Construct a Linux AIO block device.
@ -412,7 +398,6 @@ def bdev_aio_rescan(client, name):
return client.call('bdev_aio_rescan', params)
@deprecated_alias('delete_aio_bdev')
def bdev_aio_delete(client, name):
"""Remove aio bdev from the system.
@ -453,7 +438,6 @@ def bdev_uring_delete(client, name):
return client.call('bdev_uring_delete', params)
@deprecated_alias('set_bdev_nvme_options')
def bdev_nvme_set_options(client, action_on_timeout=None, timeout_us=None, timeout_admin_us=None,
keep_alive_timeout_ms=None, retry_count=None, arbitration_burst=None,
low_priority_weight=None, medium_priority_weight=None, high_priority_weight=None,
@ -566,7 +550,6 @@ def bdev_nvme_set_options(client, action_on_timeout=None, timeout_us=None, timeo
return client.call('bdev_nvme_set_options', params)
@deprecated_alias('set_bdev_nvme_hotplug')
def bdev_nvme_set_hotplug(client, enable, period_us=None):
"""Set options for the bdev nvme. This is startup command.
@ -582,7 +565,6 @@ def bdev_nvme_set_hotplug(client, enable, period_us=None):
return client.call('bdev_nvme_set_hotplug', params)
@deprecated_alias('construct_nvme_bdev')
def bdev_nvme_attach_controller(client, name, trtype, traddr, adrfam=None, trsvcid=None,
priority=None, subnqn=None, hostnqn=None, hostaddr=None,
hostsvcid=None, prchk_reftag=None, prchk_guard=None,
@ -685,7 +667,6 @@ def bdev_nvme_attach_controller(client, name, trtype, traddr, adrfam=None, trsvc
return client.call('bdev_nvme_attach_controller', params)
@deprecated_alias('delete_nvme_controller')
def bdev_nvme_detach_controller(client, name, trtype=None, traddr=None,
adrfam=None, trsvcid=None, subnqn=None,
hostaddr=None, hostsvcid=None):
@ -969,7 +950,6 @@ def bdev_rbd_get_clusters_info(client, name):
return client.call('bdev_rbd_get_clusters_info', params)
@deprecated_alias('construct_rbd_bdev')
def bdev_rbd_create(client, pool_name, rbd_name, block_size, name=None, user=None, config=None, cluster_name=None, uuid=None):
"""Create a Ceph RBD block device.
@ -1006,7 +986,6 @@ def bdev_rbd_create(client, pool_name, rbd_name, block_size, name=None, user=Non
return client.call('bdev_rbd_create', params)
@deprecated_alias('delete_rbd_bdev')
def bdev_rbd_delete(client, name):
"""Remove rbd bdev from the system.
@ -1031,7 +1010,6 @@ def bdev_rbd_resize(client, name, new_size):
return client.call('bdev_rbd_resize', params)
@deprecated_alias('construct_error_bdev')
def bdev_error_create(client, base_name):
"""Construct an error injection block device.
@ -1096,7 +1074,6 @@ def bdev_delay_update_latency(client, delay_bdev_name, latency_type, latency_us)
return client.call('bdev_delay_update_latency', params)
@deprecated_alias('delete_error_bdev')
def bdev_error_delete(client, name):
"""Remove error bdev from the system.
@ -1136,7 +1113,6 @@ def bdev_iscsi_delete(client, name):
return client.call('bdev_iscsi_delete', params)
@deprecated_alias('construct_pmem_bdev')
def bdev_pmem_create(client, pmem_file, name):
"""Construct a libpmemblk block device.
@ -1154,7 +1130,6 @@ def bdev_pmem_create(client, pmem_file, name):
return client.call('bdev_pmem_create', params)
@deprecated_alias('delete_pmem_bdev')
def bdev_pmem_delete(client, name):
"""Remove pmem bdev from the system.
@ -1165,7 +1140,6 @@ def bdev_pmem_delete(client, name):
return client.call('bdev_pmem_delete', params)
@deprecated_alias('construct_passthru_bdev')
def bdev_passthru_create(client, base_bdev_name, name):
"""Construct a pass-through block device.
@ -1183,7 +1157,6 @@ def bdev_passthru_create(client, base_bdev_name, name):
return client.call('bdev_passthru_create', params)
@deprecated_alias('delete_passthru_bdev')
def bdev_passthru_delete(client, name):
"""Remove pass through bdev from the system.
@ -1291,7 +1264,6 @@ def bdev_opal_set_lock_state(client, bdev_name, user_id, password, lock_state):
return client.call('bdev_opal_set_lock_state', params)
@deprecated_alias('construct_split_vbdev')
def bdev_split_create(client, base_bdev, split_count, split_size_mb=None):
"""Create split block devices from a base bdev.
@ -1313,7 +1285,6 @@ def bdev_split_create(client, base_bdev, split_count, split_size_mb=None):
return client.call('bdev_split_create', params)
@deprecated_alias('destruct_split_vbdev')
def bdev_split_delete(client, base_bdev):
"""Delete split block devices.
@ -1327,7 +1298,6 @@ def bdev_split_delete(client, base_bdev):
return client.call('bdev_split_delete', params)
@deprecated_alias('construct_ftl_bdev')
def bdev_ftl_create(client, name, base_bdev, **kwargs):
"""Construct FTL bdev
@ -1345,7 +1315,6 @@ def bdev_ftl_create(client, name, base_bdev, **kwargs):
return client.call('bdev_ftl_create', params)
@deprecated_alias('delete_ftl_bdev')
def bdev_ftl_delete(client, name):
"""Delete FTL bdev
@ -1410,7 +1379,6 @@ def bdev_get_histogram(client, name):
return client.call('bdev_get_histogram', params)
@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.
@ -1473,7 +1441,6 @@ def bdev_set_qos_limit(
return client.call('bdev_set_qos_limit', params)
@deprecated_alias('apply_firmware')
def bdev_nvme_apply_firmware(client, bdev_name, filename):
"""Download and commit firmware to NVMe device.

View File

@ -1,7 +1,6 @@
from .helpers import deprecated_alias
@deprecated_alias('construct_lvol_store')
def bdev_lvol_create_lvstore(client, bdev_name, lvs_name, cluster_sz=None, clear_method=None):
"""Construct a logical volume store.
@ -22,7 +21,6 @@ def bdev_lvol_create_lvstore(client, bdev_name, lvs_name, cluster_sz=None, clear
return client.call('bdev_lvol_create_lvstore', params)
@deprecated_alias('rename_lvol_store')
def bdev_lvol_rename_lvstore(client, old_name, new_name):
"""Rename a logical volume store.
@ -37,7 +35,6 @@ def bdev_lvol_rename_lvstore(client, old_name, new_name):
return client.call('bdev_lvol_rename_lvstore', params)
@deprecated_alias('construct_lvol_bdev')
def bdev_lvol_create(client, lvol_name, size, thin_provision=False, uuid=None, lvs_name=None, clear_method=None):
"""Create a logical volume on a logical volume store.
@ -68,7 +65,6 @@ def bdev_lvol_create(client, lvol_name, size, thin_provision=False, uuid=None, l
return client.call('bdev_lvol_create', params)
@deprecated_alias('snapshot_lvol_bdev')
def bdev_lvol_snapshot(client, lvol_name, snapshot_name):
"""Capture a snapshot of the current state of a logical volume.
@ -86,7 +82,6 @@ def bdev_lvol_snapshot(client, lvol_name, snapshot_name):
return client.call('bdev_lvol_snapshot', params)
@deprecated_alias('clone_lvol_bdev')
def bdev_lvol_clone(client, snapshot_name, clone_name):
"""Create a logical volume based on a snapshot.
@ -104,7 +99,6 @@ def bdev_lvol_clone(client, snapshot_name, clone_name):
return client.call('bdev_lvol_clone', params)
@deprecated_alias('rename_lvol_bdev')
def bdev_lvol_rename(client, old_name, new_name):
"""Rename a logical volume.
@ -119,7 +113,6 @@ def bdev_lvol_rename(client, old_name, new_name):
return client.call('bdev_lvol_rename', params)
@deprecated_alias('resize_lvol_bdev')
def bdev_lvol_resize(client, name, size):
"""Resize a logical volume.
@ -134,7 +127,6 @@ def bdev_lvol_resize(client, name, size):
return client.call('bdev_lvol_resize', params)
@deprecated_alias('set_read_only_lvol_bdev')
def bdev_lvol_set_read_only(client, name):
"""Mark logical volume as read only.
@ -147,7 +139,6 @@ def bdev_lvol_set_read_only(client, name):
return client.call('bdev_lvol_set_read_only', params)
@deprecated_alias('destroy_lvol_bdev')
def bdev_lvol_delete(client, name):
"""Destroy a logical volume.
@ -160,7 +151,6 @@ def bdev_lvol_delete(client, name):
return client.call('bdev_lvol_delete', params)
@deprecated_alias('inflate_lvol_bdev')
def bdev_lvol_inflate(client, name):
"""Inflate a logical volume.
@ -173,7 +163,6 @@ def bdev_lvol_inflate(client, name):
return client.call('bdev_lvol_inflate', params)
@deprecated_alias('decouple_parent_lvol_bdev')
def bdev_lvol_decouple_parent(client, name):
"""Decouple parent of a logical volume.
@ -186,7 +175,6 @@ def bdev_lvol_decouple_parent(client, name):
return client.call('bdev_lvol_decouple_parent', params)
@deprecated_alias('destroy_lvol_store')
def bdev_lvol_delete_lvstore(client, uuid=None, lvs_name=None):
"""Destroy a logical volume store.
@ -207,7 +195,6 @@ def bdev_lvol_delete_lvstore(client, uuid=None, lvs_name=None):
return client.call('bdev_lvol_delete_lvstore', params)
@deprecated_alias('get_lvol_stores')
def bdev_lvol_get_lvstores(client, uuid=None, lvs_name=None):
"""List logical volume stores.

View File

@ -1,7 +1,6 @@
from .helpers import deprecated_alias
@deprecated_alias('send_nvme_cmd')
def bdev_nvme_send_cmd(client, name, cmd_type, data_direction, cmdbuf,
data=None, metadata=None,
data_len=None, metadata_len=None,
@ -41,7 +40,6 @@ def bdev_nvme_send_cmd(client, name, cmd_type, data_direction, cmdbuf,
return client.call('bdev_nvme_send_cmd', params)
@deprecated_alias('get_nvme_controllers')
def bdev_nvme_get_controllers(client, name=None):
"""Get information about NVMe controllers.

View File

@ -1,7 +1,6 @@
from .helpers import deprecated_alias
@deprecated_alias('create_pmem_pool')
def bdev_pmem_create_pool(client, pmem_file, num_blocks, block_size):
"""Create pmem pool at specified path.
Args:
@ -15,7 +14,6 @@ def bdev_pmem_create_pool(client, pmem_file, num_blocks, block_size):
return client.call('bdev_pmem_create_pool', params)
@deprecated_alias('pmem_pool_info')
def bdev_pmem_get_pool_info(client, pmem_file):
"""Get details about pmem pool.
Args:
@ -25,7 +23,6 @@ def bdev_pmem_get_pool_info(client, pmem_file):
return client.call('bdev_pmem_get_pool_info', params)
@deprecated_alias('delete_pmem_pool')
def bdev_pmem_delete_pool(client, pmem_file):
"""Delete pmem pool.
Args:

View File

@ -114,7 +114,6 @@ def vhost_delete_controller(client, ctrlr):
return client.call('vhost_delete_controller', params)
@deprecated_alias('construct_virtio_dev')
def bdev_virtio_attach_controller(client, name, trtype, traddr, dev_type, vq_count=None, vq_size=None):
"""Attaches virtio controller using
provided transport type and device type.
@ -142,7 +141,6 @@ def bdev_virtio_attach_controller(client, name, trtype, traddr, dev_type, vq_cou
return client.call('bdev_virtio_attach_controller', params)
@deprecated_alias('remove_virtio_bdev ')
def bdev_virtio_detach_controller(client, name):
"""Remove a Virtio device
This will delete all bdevs exposed by this device.
@ -153,7 +151,6 @@ def bdev_virtio_detach_controller(client, name):
return client.call('bdev_virtio_detach_controller', params)
@deprecated_alias('get_virtio_scsi_devs')
def bdev_virtio_scsi_get_devices(client):
"""Get list of virtio scsi devices."""
return client.call('bdev_virtio_scsi_get_devices')

View File

@ -227,8 +227,7 @@ if __name__ == "__main__":
pm_path=args.pm_path,
lb_size=args.lb_size))
p = subparsers.add_parser('bdev_compress_create', aliases=['construct_compress_bdev'],
help='Add a compress vbdev')
p = subparsers.add_parser('bdev_compress_create', help='Add a compress vbdev')
p.add_argument('-b', '--base-bdev-name', help="Name of the base bdev")
p.add_argument('-p', '--pm-path', help="Path to persistent memory")
p.add_argument('-l', '--lb-size', help="Compressed vol logical block size (optional, if used must be 512 or 4096)", type=int, default=0)
@ -238,16 +237,14 @@ if __name__ == "__main__":
rpc.bdev.bdev_compress_delete(args.client,
name=args.name)
p = subparsers.add_parser('bdev_compress_delete', aliases=['delete_compress_bdev'],
help='Delete a compress disk')
p = subparsers.add_parser('bdev_compress_delete', help='Delete a compress disk')
p.add_argument('name', help='compress bdev name')
p.set_defaults(func=bdev_compress_delete)
def bdev_compress_set_pmd(args):
rpc.bdev.bdev_compress_set_pmd(args.client,
pmd=args.pmd)
p = subparsers.add_parser('bdev_compress_set_pmd', aliases=['set_compress_pmd', 'compress_set_pmd'],
help='Set pmd option for a compress disk')
p = subparsers.add_parser('bdev_compress_set_pmd', help='Set pmd option for a compress disk')
p.add_argument('-p', '--pmd', type=int, help='0 = auto-select, 1= QAT only, 2 = ISAL only, 3 = mlx5_pci only')
p.set_defaults(func=bdev_compress_set_pmd)
@ -267,8 +264,7 @@ if __name__ == "__main__":
key=args.key,
cipher=args.cipher,
key2=args.key2))
p = subparsers.add_parser('bdev_crypto_create', aliases=['construct_crypto_bdev'],
help='Add a crypto vbdev')
p = subparsers.add_parser('bdev_crypto_create', help='Add a crypto vbdev')
p.add_argument('base_bdev_name', help="Name of the base bdev")
p.add_argument('name', help="Name of the crypto vbdev")
p.add_argument('crypto_pmd', help="Name of the crypto device driver")
@ -281,8 +277,7 @@ if __name__ == "__main__":
rpc.bdev.bdev_crypto_delete(args.client,
name=args.name)
p = subparsers.add_parser('bdev_crypto_delete', aliases=['delete_crypto_bdev'],
help='Delete a crypto disk')
p = subparsers.add_parser('bdev_crypto_delete', help='Delete a crypto disk')
p.add_argument('name', help='crypto bdev name')
p.set_defaults(func=bdev_crypto_delete)
@ -293,8 +288,7 @@ if __name__ == "__main__":
cache_line_size=args.cache_line_size,
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 = subparsers.add_parser('bdev_ocf_create', 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', 'wa', 'wi', 'wo'])
p.add_argument(
@ -313,24 +307,21 @@ if __name__ == "__main__":
rpc.bdev.bdev_ocf_delete(args.client,
name=args.name)
p = subparsers.add_parser('bdev_ocf_delete', aliases=['delete_ocf_bdev'],
help='Delete an OCF block device')
p = subparsers.add_parser('bdev_ocf_delete', help='Delete an OCF block device')
p.add_argument('name', help='Name of OCF bdev')
p.set_defaults(func=bdev_ocf_delete)
def bdev_ocf_get_stats(args):
print_dict(rpc.bdev.bdev_ocf_get_stats(args.client,
name=args.name))
p = subparsers.add_parser('bdev_ocf_get_stats', aliases=['get_ocf_stats'],
help='Get statistics of chosen OCF block device')
p = subparsers.add_parser('bdev_ocf_get_stats', help='Get statistics of chosen OCF block device')
p.add_argument('name', help='Name of OCF bdev')
p.set_defaults(func=bdev_ocf_get_stats)
def bdev_ocf_get_bdevs(args):
print_dict(rpc.bdev.bdev_ocf_get_bdevs(args.client,
name=args.name))
p = subparsers.add_parser('bdev_ocf_get_bdevs', aliases=['get_ocf_bdevs'],
help='Get list of OCF devices including unregistered ones')
p = subparsers.add_parser('bdev_ocf_get_bdevs', help='Get list of OCF devices including unregistered ones')
p.add_argument('name', nargs='?', default=None, help='name of OCF vbdev or name of cache device or name of core device (optional)')
p.set_defaults(func=bdev_ocf_get_bdevs)
@ -441,8 +432,7 @@ if __name__ == "__main__":
name=args.name,
block_size=args.block_size))
p = subparsers.add_parser('bdev_aio_create', aliases=['construct_aio_bdev'],
help='Add a bdev with aio backend')
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)
@ -460,8 +450,7 @@ if __name__ == "__main__":
rpc.bdev.bdev_aio_delete(args.client,
name=args.name)
p = subparsers.add_parser('bdev_aio_delete', aliases=['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=bdev_aio_delete)
@ -508,7 +497,7 @@ if __name__ == "__main__":
fast_io_fail_timeout_sec=args.fast_io_fail_timeout_sec,
disable_auto_failback=args.disable_auto_failback)
p = subparsers.add_parser('bdev_nvme_set_options', aliases=['set_bdev_nvme_options'],
p = subparsers.add_parser('bdev_nvme_set_options',
help='Set options for the bdev nvme type. This is startup command.')
p.add_argument('-a', '--action-on-timeout',
help="Action to take on command time out. Valid values are: none, reset, abort")
@ -577,8 +566,7 @@ if __name__ == "__main__":
def bdev_nvme_set_hotplug(args):
rpc.bdev.bdev_nvme_set_hotplug(args.client, enable=args.enable, period_us=args.period_us)
p = subparsers.add_parser('bdev_nvme_set_hotplug', aliases=['set_bdev_nvme_hotplug'],
help='Set hotplug options for bdev nvme type.')
p = subparsers.add_parser('bdev_nvme_set_hotplug', help='Set hotplug options for bdev nvme type.')
p.add_argument('-d', '--disable', dest='enable', default=False, action='store_false', help="Disable hotplug (default)")
p.add_argument('-e', '--enable', dest='enable', action='store_true', help="Enable hotplug")
p.add_argument('-r', '--period-us',
@ -608,8 +596,7 @@ if __name__ == "__main__":
reconnect_delay_sec=args.reconnect_delay_sec,
fast_io_fail_timeout_sec=args.fast_io_fail_timeout_sec))
p = subparsers.add_parser('bdev_nvme_attach_controller', aliases=['construct_nvme_bdev'],
help='Add bdevs with nvme backend')
p = subparsers.add_parser('bdev_nvme_attach_controller', help='Add bdevs with nvme backend')
p.add_argument('-b', '--name', help="Name of the NVMe controller, prefix for each bdev name", required=True)
p.add_argument('-t', '--trtype',
help='NVMe-oF target trtype: e.g., rdma, pcie', required=True)
@ -665,8 +652,7 @@ if __name__ == "__main__":
name=args.name))
p = subparsers.add_parser(
'bdev_nvme_get_controllers', aliases=['get_nvme_controllers'],
help='Display current NVMe controllers list or required NVMe controller')
'bdev_nvme_get_controllers', help='Display current NVMe controllers list or required NVMe controller')
p.add_argument('-n', '--name', help="Name of the NVMe controller. Example: Nvme0", required=False)
p.set_defaults(func=bdev_nvme_get_controllers)
@ -681,7 +667,7 @@ if __name__ == "__main__":
hostaddr=args.hostaddr,
hostsvcid=args.hostsvcid)
p = subparsers.add_parser('bdev_nvme_detach_controller', aliases=['delete_nvme_controller'],
p = subparsers.add_parser('bdev_nvme_detach_controller',
help='Detach an NVMe controller and delete any associated bdevs')
p.add_argument('name', help="Name of the controller")
p.add_argument('-t', '--trtype',
@ -906,8 +892,7 @@ if __name__ == "__main__":
cluster_name=args.cluster_name,
uuid=args.uuid))
p = subparsers.add_parser('bdev_rbd_create', aliases=['construct_rbd_bdev'],
help='Add a bdev with ceph rbd backend')
p = subparsers.add_parser('bdev_rbd_create', help='Add a bdev with ceph rbd backend')
p.add_argument('-b', '--name', help="Name of the bdev", required=False)
p.add_argument('--user', help="Ceph user name (i.e. admin, not client.admin)", required=False)
p.add_argument('--config', action='append', metavar='key=value',
@ -923,8 +908,7 @@ if __name__ == "__main__":
rpc.bdev.bdev_rbd_delete(args.client,
name=args.name)
p = subparsers.add_parser('bdev_rbd_delete', aliases=['delete_rbd_bdev'],
help='Delete a rbd bdev')
p = subparsers.add_parser('bdev_rbd_delete', help='Delete a rbd bdev')
p.add_argument('name', help='rbd bdev name')
p.set_defaults(func=bdev_rbd_delete)
@ -986,8 +970,7 @@ if __name__ == "__main__":
print_json(rpc.bdev.bdev_error_create(args.client,
base_name=args.base_name))
p = subparsers.add_parser('bdev_error_create', aliases=['construct_error_bdev'],
help='Add bdev with error injection backend')
p = subparsers.add_parser('bdev_error_create', help='Add bdev with error injection backend')
p.add_argument('base_name', help='base bdev name')
p.set_defaults(func=bdev_error_create)
@ -995,8 +978,7 @@ if __name__ == "__main__":
rpc.bdev.bdev_error_delete(args.client,
name=args.name)
p = subparsers.add_parser('bdev_error_delete', aliases=['delete_error_bdev'],
help='Delete an error bdev')
p = subparsers.add_parser('bdev_error_delete', help='Delete an error bdev')
p.add_argument('name', help='error bdev name')
p.set_defaults(func=bdev_error_delete)
@ -1026,8 +1008,7 @@ if __name__ == "__main__":
pmem_file=args.pmem_file,
name=args.name))
p = subparsers.add_parser('bdev_pmem_create', aliases=['construct_pmem_bdev'],
help='Add a bdev with pmem backend')
p = subparsers.add_parser('bdev_pmem_create', help='Add a bdev with pmem backend')
p.add_argument('pmem_file', help='Path to pmemblk pool file')
p.add_argument('-n', '--name', help='Block device name', required=True)
p.set_defaults(func=bdev_pmem_create)
@ -1036,8 +1017,7 @@ if __name__ == "__main__":
rpc.bdev.bdev_pmem_delete(args.client,
name=args.name)
p = subparsers.add_parser('bdev_pmem_delete', aliases=['delete_pmem_bdev'],
help='Delete a pmem bdev')
p = subparsers.add_parser('bdev_pmem_delete', help='Delete a pmem bdev')
p.add_argument('name', help='pmem bdev name')
p.set_defaults(func=bdev_pmem_delete)
@ -1046,8 +1026,7 @@ if __name__ == "__main__":
base_bdev_name=args.base_bdev_name,
name=args.name))
p = subparsers.add_parser('bdev_passthru_create', aliases=['construct_passthru_bdev'],
help='Add a pass through bdev on existing bdev')
p = subparsers.add_parser('bdev_passthru_create', help='Add a pass through bdev on existing bdev')
p.add_argument('-b', '--base-bdev-name', help="Name of the existing bdev", required=True)
p.add_argument('-p', '--name', help="Name of the pass through bdev", required=True)
p.set_defaults(func=bdev_passthru_create)
@ -1056,8 +1035,7 @@ if __name__ == "__main__":
rpc.bdev.bdev_passthru_delete(args.client,
name=args.name)
p = subparsers.add_parser('bdev_passthru_delete', aliases=['delete_passthru_bdev'],
help='Delete a pass through bdev')
p = subparsers.add_parser('bdev_passthru_delete', help='Delete a pass through bdev')
p.add_argument('name', help='pass through bdev name')
p.set_defaults(func=bdev_passthru_delete)
@ -1146,8 +1124,7 @@ if __name__ == "__main__":
error_type=args.error_type,
num=args.num)
p = subparsers.add_parser('bdev_error_inject_error', aliases=['bdev_inject_error'],
help='bdev inject error')
p = subparsers.add_parser('bdev_error_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'""")
@ -1160,8 +1137,7 @@ if __name__ == "__main__":
bdev_name=args.bdev_name,
filename=args.filename))
p = subparsers.add_parser('bdev_nvme_apply_firmware', aliases=['apply_firmware'],
help='Download and commit firmware to NVMe device')
p = subparsers.add_parser('bdev_nvme_apply_firmware', help='Download and commit firmware to NVMe device')
p.add_argument('filename', help='filename of the firmware to download')
p.add_argument('bdev_name', help='name of the NVMe device')
p.set_defaults(func=bdev_nvme_apply_firmware)
@ -1799,8 +1775,7 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse
cluster_sz=args.cluster_sz,
clear_method=args.clear_method))
p = subparsers.add_parser('bdev_lvol_create_lvstore', aliases=['construct_lvol_store'],
help='Add logical volume store on base bdev')
p = subparsers.add_parser('bdev_lvol_create_lvstore', help='Add logical volume store on base bdev')
p.add_argument('bdev_name', help='base bdev name')
p.add_argument('lvs_name', help='name for lvol store')
p.add_argument('-c', '--cluster-sz', help='size of cluster (in bytes)', type=int, required=False)
@ -1813,8 +1788,7 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse
old_name=args.old_name,
new_name=args.new_name)
p = subparsers.add_parser('bdev_lvol_rename_lvstore', aliases=['rename_lvol_store'],
help='Change logical volume store name')
p = subparsers.add_parser('bdev_lvol_rename_lvstore', help='Change logical volume store name')
p.add_argument('old_name', help='old name')
p.add_argument('new_name', help='new name')
p.set_defaults(func=bdev_lvol_rename_lvstore)
@ -1828,8 +1802,7 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse
uuid=args.uuid,
lvs_name=args.lvs_name))
p = subparsers.add_parser('bdev_lvol_create', aliases=['construct_lvol_bdev'],
help='Add a bdev with an logical volume backend')
p = subparsers.add_parser('bdev_lvol_create', help='Add a bdev with an logical volume backend')
p.add_argument('-u', '--uuid', help='lvol store UUID', required=False)
p.add_argument('-l', '--lvs-name', help='lvol store name', required=False)
p.add_argument('-t', '--thin-provision', action='store_true', help='create lvol bdev as thin provisioned')
@ -1844,8 +1817,7 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse
lvol_name=args.lvol_name,
snapshot_name=args.snapshot_name))
p = subparsers.add_parser('bdev_lvol_snapshot', aliases=['snapshot_lvol_bdev'],
help='Create a snapshot of an lvol bdev')
p = subparsers.add_parser('bdev_lvol_snapshot', help='Create a snapshot of an lvol bdev')
p.add_argument('lvol_name', help='lvol bdev name')
p.add_argument('snapshot_name', help='lvol snapshot name')
p.set_defaults(func=bdev_lvol_snapshot)
@ -1855,8 +1827,7 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse
snapshot_name=args.snapshot_name,
clone_name=args.clone_name))
p = subparsers.add_parser('bdev_lvol_clone', aliases=['clone_lvol_bdev'],
help='Create a clone of an lvol snapshot')
p = subparsers.add_parser('bdev_lvol_clone', 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=bdev_lvol_clone)
@ -1866,8 +1837,7 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse
old_name=args.old_name,
new_name=args.new_name)
p = subparsers.add_parser('bdev_lvol_rename', aliases=['rename_lvol_bdev'],
help='Change lvol bdev name')
p = subparsers.add_parser('bdev_lvol_rename', help='Change lvol bdev name')
p.add_argument('old_name', help='lvol bdev name')
p.add_argument('new_name', help='new lvol name')
p.set_defaults(func=bdev_lvol_rename)
@ -1876,8 +1846,7 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse
rpc.lvol.bdev_lvol_inflate(args.client,
name=args.name)
p = subparsers.add_parser('bdev_lvol_inflate', aliases=['inflate_lvol_bdev'],
help='Make thin provisioned lvol a thick provisioned lvol')
p = subparsers.add_parser('bdev_lvol_inflate', help='Make thin provisioned lvol a thick provisioned lvol')
p.add_argument('name', help='lvol bdev name')
p.set_defaults(func=bdev_lvol_inflate)
@ -1885,8 +1854,7 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse
rpc.lvol.bdev_lvol_decouple_parent(args.client,
name=args.name)
p = subparsers.add_parser('bdev_lvol_decouple_parent', aliases=['decouple_parent_lvol_bdev'],
help='Decouple parent of lvol')
p = subparsers.add_parser('bdev_lvol_decouple_parent', help='Decouple parent of lvol')
p.add_argument('name', help='lvol bdev name')
p.set_defaults(func=bdev_lvol_decouple_parent)
@ -1895,8 +1863,7 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse
name=args.name,
size=args.size * 1024 * 1024)
p = subparsers.add_parser('bdev_lvol_resize', aliases=['resize_lvol_bdev'],
help='Resize existing lvol bdev')
p = subparsers.add_parser('bdev_lvol_resize', help='Resize existing lvol bdev')
p.add_argument('name', help='lvol bdev name')
p.add_argument('size', help='new size in MiB for this bdev', type=int)
p.set_defaults(func=bdev_lvol_resize)
@ -1905,8 +1872,7 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse
rpc.lvol.bdev_lvol_set_read_only(args.client,
name=args.name)
p = subparsers.add_parser('bdev_lvol_set_read_only', aliases=['set_read_only_lvol_bdev'],
help='Mark lvol bdev as read only')
p = subparsers.add_parser('bdev_lvol_set_read_only', help='Mark lvol bdev as read only')
p.add_argument('name', help='lvol bdev name')
p.set_defaults(func=bdev_lvol_set_read_only)
@ -1914,8 +1880,7 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse
rpc.lvol.bdev_lvol_delete(args.client,
name=args.name)
p = subparsers.add_parser('bdev_lvol_delete', aliases=['destroy_lvol_bdev'],
help='Destroy a logical volume')
p = subparsers.add_parser('bdev_lvol_delete', help='Destroy a logical volume')
p.add_argument('name', help='lvol bdev name')
p.set_defaults(func=bdev_lvol_delete)
@ -1924,8 +1889,7 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse
uuid=args.uuid,
lvs_name=args.lvs_name)
p = subparsers.add_parser('bdev_lvol_delete_lvstore', aliases=['destroy_lvol_store'],
help='Destroy an logical volume store')
p = subparsers.add_parser('bdev_lvol_delete_lvstore', help='Destroy an logical volume store')
p.add_argument('-u', '--uuid', help='lvol store UUID', required=False)
p.add_argument('-l', '--lvs-name', help='lvol store name', required=False)
p.set_defaults(func=bdev_lvol_delete_lvstore)
@ -1935,8 +1899,7 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse
uuid=args.uuid,
lvs_name=args.lvs_name))
p = subparsers.add_parser('bdev_lvol_get_lvstores', aliases=['get_lvol_stores'],
help='Display current logical volume store list')
p = subparsers.add_parser('bdev_lvol_get_lvstores', help='Display current logical volume store list')
p.add_argument('-u', '--uuid', help='lvol store UUID', required=False)
p.add_argument('-l', '--lvs-name', help='lvol store name', required=False)
p.set_defaults(func=bdev_lvol_get_lvstores)
@ -1945,7 +1908,7 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse
print_array(rpc.bdev.bdev_raid_get_bdevs(args.client,
category=args.category))
p = subparsers.add_parser('bdev_raid_get_bdevs', aliases=['get_raid_bdevs'],
p = subparsers.add_parser('bdev_raid_get_bdevs',
help="""This is used to list all the raid bdev names based on the input category
requested. Category should be one of 'all', 'online', 'configuring' or 'offline'. 'all' means all the raid bdevs whether
they are online or configuring or offline. 'online' is the raid bdev which is registered with bdev layer. 'configuring'
@ -1964,8 +1927,7 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse
strip_size_kb=args.strip_size_kb,
raid_level=args.raid_level,
base_bdevs=base_bdevs)
p = subparsers.add_parser('bdev_raid_create', aliases=['construct_raid_bdev'],
help='Create new raid bdev')
p = subparsers.add_parser('bdev_raid_create', help='Create new raid bdev')
p.add_argument('-n', '--name', help='raid bdev name', required=True)
p.add_argument('-z', '--strip-size-kb', help='strip size in KB', type=int)
p.add_argument('-r', '--raid-level', help='raid level, raid0 and a special level concat are supported', required=True)
@ -1975,8 +1937,7 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse
def bdev_raid_delete(args):
rpc.bdev.bdev_raid_delete(args.client,
name=args.name)
p = subparsers.add_parser('bdev_raid_delete', aliases=['destroy_raid_bdev'],
help='Delete existing raid bdev')
p = subparsers.add_parser('bdev_raid_delete', help='Delete existing raid bdev')
p.add_argument('name', help='raid bdev name')
p.set_defaults(func=bdev_raid_delete)
@ -1987,7 +1948,7 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse
split_count=args.split_count,
split_size_mb=args.split_size_mb))
p = subparsers.add_parser('bdev_split_create', aliases=['construct_split_vbdev'],
p = subparsers.add_parser('bdev_split_create',
help="""Add given disk name to split config. If bdev with base_name
name exist the split bdevs will be created right away, if not split bdevs will be created when base bdev became
available (during examination process).""")
@ -2001,8 +1962,7 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse
rpc.bdev.bdev_split_delete(args.client,
base_bdev=args.base_bdev)
p = subparsers.add_parser('bdev_split_delete', aliases=['destruct_split_vbdev'],
help="""Delete split config with all created splits.""")
p = subparsers.add_parser('bdev_split_delete', help="""Delete split config with all created splits.""")
p.add_argument('base_bdev', help='base bdev name')
p.set_defaults(func=bdev_split_delete)
@ -2036,7 +1996,7 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse
use_append=args.use_append,
**arg_limits))
p = subparsers.add_parser('bdev_ftl_create', aliases=['construct_ftl_bdev'], help='Add FTL bdev')
p = subparsers.add_parser('bdev_ftl_create', help='Add FTL bdev')
p.add_argument('-b', '--name', help="Name of the bdev", required=True)
p.add_argument('-d', '--base-bdev', help='Name of zoned bdev used as underlying device',
required=True)
@ -2062,8 +2022,7 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse
def bdev_ftl_delete(args):
print_dict(rpc.bdev.bdev_ftl_delete(args.client, name=args.name))
p = subparsers.add_parser('bdev_ftl_delete', aliases=['delete_ftl_bdev'],
help='Delete FTL bdev')
p = subparsers.add_parser('bdev_ftl_delete', help='Delete FTL bdev')
p.add_argument('-b', '--name', help="Name of the bdev", required=True)
p.set_defaults(func=bdev_ftl_delete)
@ -2407,8 +2366,7 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse
num_blocks=num_blocks,
block_size=args.block_size)
p = subparsers.add_parser('bdev_pmem_create_pool', aliases=['create_pmem_pool'],
help='Create pmem pool')
p = subparsers.add_parser('bdev_pmem_create_pool', help='Create pmem pool')
p.add_argument('pmem_file', help='Path to pmemblk pool file')
p.add_argument('total_size', help='Size of pmem bdev in MB (int > 0)', type=int)
p.add_argument('block_size', help='Block size for this pmem pool', type=int)
@ -2418,8 +2376,7 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse
print_dict(rpc.pmem.bdev_pmem_get_pool_info(args.client,
pmem_file=args.pmem_file))
p = subparsers.add_parser('bdev_pmem_get_pool_info', aliases=['pmem_pool_info'],
help='Display pmem pool info and check consistency')
p = subparsers.add_parser('bdev_pmem_get_pool_info', help='Display pmem pool info and check consistency')
p.add_argument('pmem_file', help='Path to pmemblk pool file')
p.set_defaults(func=bdev_pmem_get_pool_info)
@ -2427,8 +2384,7 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse
rpc.pmem.bdev_pmem_delete_pool(args.client,
pmem_file=args.pmem_file)
p = subparsers.add_parser('bdev_pmem_delete_pool', aliases=['delete_pmem_pool'],
help='Delete pmem pool')
p = subparsers.add_parser('bdev_pmem_delete_pool', help='Delete pmem pool')
p.add_argument('pmem_file', help='Path to pmemblk pool file')
p.set_defaults(func=bdev_pmem_delete_pool)
@ -2547,7 +2503,7 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse
vq_count=args.vq_count,
vq_size=args.vq_size))
p = subparsers.add_parser('bdev_virtio_attach_controller', aliases=['construct_virtio_dev'],
p = subparsers.add_parser('bdev_virtio_attach_controller',
help="""Attach virtio controller using provided
transport type and device type. This will also create bdevs for any block devices connected to the
controller (for example, SCSI devices for a virtio-scsi controller).
@ -2566,16 +2522,14 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse
def bdev_virtio_scsi_get_devices(args):
print_dict(rpc.vhost.bdev_virtio_scsi_get_devices(args.client))
p = subparsers.add_parser('bdev_virtio_scsi_get_devices', aliases=['get_virtio_scsi_devs'],
help='List all Virtio-SCSI devices.')
p = subparsers.add_parser('bdev_virtio_scsi_get_devices', help='List all Virtio-SCSI devices.')
p.set_defaults(func=bdev_virtio_scsi_get_devices)
def bdev_virtio_detach_controller(args):
rpc.vhost.bdev_virtio_detach_controller(args.client,
name=args.name)
p = subparsers.add_parser('bdev_virtio_detach_controller', aliases=['remove_virtio_bdev'],
help="""Remove a Virtio device
p = subparsers.add_parser('bdev_virtio_detach_controller', help="""Remove a Virtio device
This will delete all bdevs exposed by this device""")
p.add_argument('name', help='Virtio device name. E.g. VirtioUser0')
p.set_defaults(func=bdev_virtio_detach_controller)
@ -2717,8 +2671,7 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse
metadata_len=args.metadata_length,
timeout_ms=args.timeout_ms))
p = subparsers.add_parser('bdev_nvme_send_cmd', aliases=['send_nvme_cmd'],
help='NVMe passthrough cmd.')
p = subparsers.add_parser('bdev_nvme_send_cmd', help='NVMe passthrough cmd.')
p.add_argument('-n', '--nvme-name', help="""Name of the operating NVMe controller""")
p.add_argument('-t', '--cmd-type', help="""Type of nvme cmd. Valid values are: admin, io""")
p.add_argument('-r', '--data-direction', help="""Direction of data transfer. Valid values are: c2h, h2c""")

View File

@ -32,7 +32,7 @@ function create_vols() {
$rpc_py bdev_lvol_create -t -l lvs0 lv0 100
waitforbdev lvs0/lv0
$rpc_py compress_set_pmd -p "$pmd"
$rpc_py bdev_compress_set_pmd -p "$pmd"
if [ -z "$1" ]; then
$rpc_py bdev_compress_create -b lvs0/lv0 -p /tmp/pmem
else

View File

@ -36,8 +36,8 @@ def get_bdev_delete_method(bdev):
'bdev_pmem_create': "bdev_pmem_delete",
'bdev_aio_create': "bdev_aio_delete",
'bdev_error_create': "bdev_error_delete",
'construct_split_vbdev': "destruct_split_vbdev",
'bdev_virtio_attach_controller': "remove_virtio_bdev",
'bdev_split_create': "bdev_split_delete",
'bdev_virtio_attach_controller': "bdev_virtio_detach_controller",
'bdev_crypto_create': "bdev_crypto_delete",
'bdev_delay_create': "bdev_delay_delete",
'bdev_passthru_create': "bdev_passthru_delete",

View File

@ -72,15 +72,15 @@ function test_construct_two_lvs_on_the_same_bdev() {
function test_construct_lvs_conflict_alias() {
# create first bdev and lvs
malloc1_name=$(rpc_cmd bdev_malloc_create $MALLOC_SIZE_MB $MALLOC_BS)
lvs1_uuid=$(rpc_cmd construct_lvol_store "$malloc1_name" lvs_test)
lvs1_uuid=$(rpc_cmd bdev_lvol_create_lvstore "$malloc1_name" lvs_test)
# create second bdev and lvs with the same name as previously
malloc2_name=$(rpc_cmd bdev_malloc_create $MALLOC_SIZE_MB $MALLOC_BS)
rpc_cmd construct_lvol_store "$malloc2_name" lvs_test && false
rpc_cmd bdev_lvol_create_lvstore "$malloc2_name" lvs_test && false
# clean up
rpc_cmd destroy_lvol_store -u "$lvs1_uuid"
rpc_cmd get_lvol_stores -u "$lvs1_uuid" && false
rpc_cmd bdev_lvol_delete_lvstore -u "$lvs1_uuid"
rpc_cmd bdev_lvol_get_lvstores -u "$lvs1_uuid" && false
rpc_cmd bdev_malloc_delete "$malloc1_name"
rpc_cmd bdev_malloc_delete "$malloc2_name"
check_leftover_devices

View File

@ -120,7 +120,7 @@ function bdev_pmem_get_pool_info_tc3() {
if $rpc_py bdev_pmem_get_pool_info $obj_pool_file; then
pmem_clean_pool_file $obj_pool_file
error "Pmem_pool_info passed with invalid pool_file type!"
error "Bdev_pmem_get_pool_info passed with invalid pool_file type!"
fi
pmem_clean_pool_file $obj_pool_file

View File

@ -16,7 +16,7 @@ function migration_tc2_cleanup_vhost_config() {
$rpc_0 bdev_nvme_detach_controller Nvme0
$rpc_0 vhost_delete_controller $incoming_vm_ctrlr
$rpc_1 delete_nvme_controller Nvme0
$rpc_1 bdev_nvme_detach_controller Nvme0
$rpc_1 vhost_delete_controller $target_vm_ctrlr
notice "killing vhost app"