Spdk/scripts/rpc/bdev.py
Pawel Wodkowski a5dbccf02b bdev/split: add RPC support
Split bdevs now can be create using "create_split_bdev". To keep
backward compatibility, this call will not fail if base bdev is not
available yet instead will add base bdev name to its live configuration
and create splits when base bdev will be created (during examin
process).

Change-Id: Ie26ffc0e947f6d88ff56830dd50999795283df2e
Signed-off-by: Pawel Wodkowski <pawelx.wodkowski@intel.com>
Reviewed-on: https://review.gerrithub.io/404164
Reviewed-by: Dariusz Stojaczyk <dariuszx.stojaczyk@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
2018-04-04 16:03:00 -04:00

128 lines
3.1 KiB
Python
Executable File

def construct_malloc_bdev(client, args):
num_blocks = (args.total_size * 1024 * 1024) / args.block_size
params = {'num_blocks': num_blocks, 'block_size': args.block_size}
if args.name:
params['name'] = args.name
if args.uuid:
params['uuid'] = args.uuid
return client.call('construct_malloc_bdev', params)
def construct_null_bdev(client, args):
num_blocks = (args.total_size * 1024 * 1024) / args.block_size
params = {'name': args.name, 'num_blocks': num_blocks,
'block_size': args.block_size}
if args.uuid:
params['uuid'] = args.uuid
return client.call('construct_null_bdev', params)
def construct_aio_bdev(client, args):
params = {'name': args.name,
'filename': args.filename}
if args.block_size:
params['block_size'] = args.block_size
return client.call('construct_aio_bdev', params)
def construct_nvme_bdev(client, args):
params = {'name': args.name,
'trtype': args.trtype,
'traddr': args.traddr}
if args.adrfam:
params['adrfam'] = args.adrfam
if args.trsvcid:
params['trsvcid'] = args.trsvcid
if args.subnqn:
params['subnqn'] = args.subnqn
return client.call('construct_nvme_bdev', params)
def construct_rbd_bdev(client, args):
params = {
'pool_name': args.pool_name,
'rbd_name': args.rbd_name,
'block_size': args.block_size,
}
if args.name:
params['name'] = args.name
return client.call('construct_rbd_bdev', params)
def construct_error_bdev(client, args):
params = {'base_name': args.base_name}
return client.call('construct_error_bdev', params)
def construct_pmem_bdev(client, args):
params = {
'pmem_file': args.pmem_file,
'name': args.name
}
return client.call('construct_pmem_bdev', params)
def construct_split_vbdev(client, args):
params = {
'base_bdev': args.base_bdev,
'split_count': args.split_count,
}
if args.split_size_mb:
params['split_size_mb'] = args.split_size_mb
return client.call('construct_split_vbdev', params)
def destruct_split_vbdev(client, args):
params = {
'base_bdev': args.base_bdev,
}
return client.call('destruct_split_vbdev', params)
def get_bdevs(client, args):
params = {}
if args.name:
params['name'] = args.name
return client.call('get_bdevs', params)
def get_bdevs_config(client, args):
params = {}
if args.name:
params['name'] = args.name
return client.call('get_bdevs_config', params)
def delete_bdev(client, args):
params = {'name': args.bdev_name}
return client.call('delete_bdev', params)
def bdev_inject_error(client, args):
params = {
'name': args.name,
'io_type': args.io_type,
'error_type': args.error_type,
'num': args.num,
}
return client.call('bdev_inject_error', params)
def apply_firmware(client, args):
params = {
'filename': args.filename,
'bdev_name': args.bdev_name,
}
return client.call('apply_nvme_firmware', params)