xref: /spdk/python/spdk/rpc/blobfs.py (revision 555ca7adc00c380f5f6446e7658c7d7298cf48ed)
1588dfe31SMichal Berger#  SPDX-License-Identifier: BSD-3-Clause
2588dfe31SMichal Berger#  Copyright (C) 2019 Intel Corporation.
3588dfe31SMichal Berger#  All rights reserved.
4588dfe31SMichal Berger
5*555ca7adSMike Gerdts
67610bc38SKonrad Sztyberdef blobfs_detect(client, bdev_name):
77610bc38SKonrad Sztyber    """Detect whether a blobfs exists on bdev.
87610bc38SKonrad Sztyber
97610bc38SKonrad Sztyber    Args:
107610bc38SKonrad Sztyber        bdev_name: block device name to detect blobfs
117610bc38SKonrad Sztyber
127610bc38SKonrad Sztyber    Returns:
137610bc38SKonrad Sztyber        True if a blobfs exists on the bdev; False otherwise.
147610bc38SKonrad Sztyber    """
157610bc38SKonrad Sztyber    params = {
167610bc38SKonrad Sztyber        'bdev_name': bdev_name
177610bc38SKonrad Sztyber    }
187610bc38SKonrad Sztyber    return client.call('blobfs_detect', params)
197610bc38SKonrad Sztyber
207610bc38SKonrad Sztyber
217610bc38SKonrad Sztyberdef blobfs_create(client, bdev_name, cluster_sz=None):
227610bc38SKonrad Sztyber    """Build blobfs on bdev.
237610bc38SKonrad Sztyber
247610bc38SKonrad Sztyber    Args:
257610bc38SKonrad Sztyber        bdev_name: block device name to build blobfs
267610bc38SKonrad Sztyber        cluster_sz: Size of cluster in bytes (Optional). Must be multiple of 4KB page size. Default and minimal value is 1M.
277610bc38SKonrad Sztyber    """
287610bc38SKonrad Sztyber    params = {
297610bc38SKonrad Sztyber        'bdev_name': bdev_name
307610bc38SKonrad Sztyber    }
317610bc38SKonrad Sztyber    if cluster_sz:
327610bc38SKonrad Sztyber        params['cluster_sz'] = cluster_sz
337610bc38SKonrad Sztyber    return client.call('blobfs_create', params)
347610bc38SKonrad Sztyber
357610bc38SKonrad Sztyber
367610bc38SKonrad Sztyberdef blobfs_mount(client, bdev_name, mountpoint):
377610bc38SKonrad Sztyber    """Mount blobfs on bdev by FUSE.
387610bc38SKonrad Sztyber
397610bc38SKonrad Sztyber    Args:
407610bc38SKonrad Sztyber        bdev_name: block device name where the blobfs is
417610bc38SKonrad Sztyber        mountpoint: Mountpoint path in host to mount blobfs
427610bc38SKonrad Sztyber    """
437610bc38SKonrad Sztyber    params = {
447610bc38SKonrad Sztyber        'bdev_name': bdev_name,
457610bc38SKonrad Sztyber        'mountpoint': mountpoint
467610bc38SKonrad Sztyber    }
477610bc38SKonrad Sztyber    return client.call('blobfs_mount', params)
487610bc38SKonrad Sztyber
497610bc38SKonrad Sztyber
507610bc38SKonrad Sztyberdef blobfs_set_cache_size(client, size_in_mb):
517610bc38SKonrad Sztyber    """Set cache size for the blobstore filesystem.
527610bc38SKonrad Sztyber
537610bc38SKonrad Sztyber    Args:
547610bc38SKonrad Sztyber        size_in_mb: Cache size in megabytes
557610bc38SKonrad Sztyber
567610bc38SKonrad Sztyber    Returns:
577610bc38SKonrad Sztyber        True if cache size is set successfully; False if failed to set.
587610bc38SKonrad Sztyber    """
597610bc38SKonrad Sztyber    params = {
607610bc38SKonrad Sztyber        'size_in_mb': size_in_mb
617610bc38SKonrad Sztyber    }
627610bc38SKonrad Sztyber    return client.call('blobfs_set_cache_size', params)
63