Commit 14ce7c76 authored by Evgeniy Kochetov's avatar Evgeniy Kochetov Committed by Jim Harris
Browse files

rpc/fsdev: Add aio fsdev RPC methods



Change-Id: I21f20c13906a321f67cc6d540b9e4816794b1275
Signed-off-by: default avatarEvgeniy Kochetov <evgeniik@nvidia.com>
Signed-off-by: default avatarAnton Nayshtut <anayshtut@nvidia.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/22535


Community-CI: Mellanox Build Bot
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarJim Harris <jim.harris@samsung.com>
Reviewed-by: default avatarBen Walker <ben@nvidia.com>
parent e21c39aa
Loading
Loading
Loading
Loading
+36 −0
Original line number Diff line number Diff line
@@ -30,3 +30,39 @@ def fsdev_set_opts(client, fsdev_io_pool_size: int = None, fsdev_io_cache_size:
        params['fsdev_io_cache_size'] = fsdev_io_cache_size

    return client.call('fsdev_set_opts', params)


def fsdev_aio_create(client, name, root_path, enable_xattr: bool = None,
                     enable_writeback_cache: bool = None, max_write: int = None):
    """Create a aio filesystem.

    Args:
        name: aio filesystem name
        root_path: path on system fs to expose as SPDK fs
        xattr_enabled: true if extended attributes should be enabled
        writeback_cache: enable/disable the write cache
        max_write: max write size
    """
    params = {
        'name': name,
        'root_path': root_path
    }
    if enable_xattr is not None:
        params['enable_xattr'] = enable_xattr
    if enable_writeback_cache is not None:
        params['enable_writeback_cache'] = enable_writeback_cache
    if max_write is not None:
        params['max_write'] = max_write
    return client.call('fsdev_aio_create', params)


def fsdev_aio_delete(client, name):
    """Delete a aio filesystem.

    Args:
        name: aio filesystem name
    """
    params = {
        'name': name
    }
    return client.call('fsdev_aio_delete', params)
+28 −0
Original line number Diff line number Diff line
@@ -3565,6 +3565,34 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse
    p.add_argument('fsdev-io-cache-size', help='Size of fsdev IO objects cache per thread', type=int)
    p.set_defaults(func=fsdev_set_opts)

    def fsdev_aio_create(args):
        print(rpc.fsdev.fsdev_aio_create(args.client, name=args.name, root_path=args.root_path,
                                         enable_xattr=args.enable_xattr, enable_writeback_cache=args.enable_writeback_cache,
                                         max_write=args.max_write))

    p = subparsers.add_parser('fsdev_aio_create', help='Create a aio filesystem')
    p.add_argument('name', help='Filesystem name. Example: aio0.')
    p.add_argument('root_path', help='Path on the system fs to expose as SPDK filesystem')

    group = p.add_mutually_exclusive_group()
    group.add_argument('--enable-xattr', help='Enable extended attributes', action='store_true', default=None)
    group.add_argument('--disable-xattr', help='Disable extended attributes', dest='enable_xattr', action='store_false', default=None)

    group = p.add_mutually_exclusive_group()
    group.add_argument('--enable-writeback-cache', help='Enable writeback cache', action='store_true', default=None)
    group.add_argument('--disable-writeback-cache', help='Disable writeback cache', dest='enable_writeback_cache', action='store_false',
                       default=None)

    p.add_argument('-w', '--max-write', help='Max write size in bytes', type=int)
    p.set_defaults(func=fsdev_aio_create)

    def fsdev_aio_delete(args):
        print(rpc.fsdev.fsdev_aio_delete(args.client, name=args.name))

    p = subparsers.add_parser('fsdev_aio_delete', help='Delete a aio filesystem')
    p.add_argument('name', help='Filesystem name. Example: aio0.')
    p.set_defaults(func=fsdev_aio_delete)

    # sock
    def sock_impl_get_options(args):
        print_json(rpc.sock.sock_impl_get_options(args.client,