xref: /spdk/python/spdk/rpc/ublk.py (revision 32027990975677379d64c46f29a586d8e0072197)
1#  SPDX-License-Identifier: BSD-3-Clause
2#  Copyright (C) 2022 Intel Corporation.
3#  All rights reserved.
4
5
6def ublk_create_target(client, cpumask=None, disable_user_copy=None):
7    params = {}
8    if cpumask:
9        params['cpumask'] = cpumask
10    if disable_user_copy:
11        params['disable_user_copy'] = True
12    return client.call('ublk_create_target', params)
13
14
15def ublk_destroy_target(client):
16    return client.call('ublk_destroy_target')
17
18
19def ublk_start_disk(client, bdev_name, ublk_id=1, num_queues=1, queue_depth=128):
20    params = {
21        'bdev_name': bdev_name,
22        'ublk_id': ublk_id
23    }
24    if num_queues:
25        params['num_queues'] = num_queues
26    if queue_depth:
27        params['queue_depth'] = queue_depth
28    return client.call('ublk_start_disk', params)
29
30
31def ublk_stop_disk(client, ublk_id=1):
32    params = {'ublk_id': ublk_id}
33    return client.call('ublk_stop_disk', params)
34
35
36def ublk_recover_disk(client, bdev_name, ublk_id):
37    params = {
38        'bdev_name': bdev_name,
39        'ublk_id': ublk_id
40    }
41    return client.call('ublk_recover_disk', params)
42
43
44def ublk_get_disks(client, ublk_id=1):
45    params = {}
46    if ublk_id is not None:
47        params['ublk_id'] = ublk_id
48    return client.call('ublk_get_disks', params)
49