X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Fmount.fuse.ceph;fp=src%2Fceph%2Fsrc%2Fmount.fuse.ceph;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=5c65ddca01ae25d24144f659eae5182e9e155555;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/src/mount.fuse.ceph b/src/ceph/src/mount.fuse.ceph deleted file mode 100755 index 5c65ddc..0000000 --- a/src/ceph/src/mount.fuse.ceph +++ /dev/null @@ -1,79 +0,0 @@ -#!/usr/bin/env python -''' -Helper to mount ceph-fuse from /etc/fstab. To use, add an entry -like: - -DEVICE PATH TYPE OPTIONS -none /mnt/ceph fuse.ceph ceph.id=admin,_netdev,defaults 0 0 -none /mnt/ceph fuse.ceph ceph.name=client.admin,_netdev,defaults 0 0 -none /mnt/ceph fuse.ceph ceph.id=myuser,ceph.conf=/etc/ceph/foo.conf,_netdev,defaults 0 0 - -ceph-fuse options are specified in the fs_mntops(4) column and must begin -with 'ceph.' prefix. This way ceph related fs options will be passed to -ceph-fuse and others will be ignored by ceph-fuse. -First two examples above, for example, speficy that ceph-fuse will authenticate -as client.admin. Third example specify, that ceph-fuse will authenticate as -client.myuser and also sets 'conf' option to '/etc/ceph/foo.conf' via ceph-fuse -command line. -Any valid ceph-fuse options can be passed this way. - -NOTE: -Old format is also supported - -DEVICE PATH TYPE OPTIONS -id=admin /mnt/ceph fuse.ceph defaults 0 0 -id=myuser,conf=/etc/ceph/foo.conf /mnt/ceph fuse.ceph defaults 0 0 -''' - -import sys -import argparse -from subprocess import Popen - -def ceph_options(mntops): - ceph_opts = [o for o in mntops if o.startswith('ceph.')] - return ceph_opts - -def ceph_options_compat(device): - return [ 'ceph.' + opt for opt in device.split(',') ] - -def fs_options(opts, ceph_opts): - # strip out noauto and _netdev options; libfuse doesn't like it - strip_opts = ['defaults', 'noauto', '_netdev'] - return ','.join(list(set(opts) - set(ceph_opts) - set(strip_opts))) - -def main(arguments): - parser = argparse.ArgumentParser(description=__doc__, - formatter_class=argparse.RawDescriptionHelpFormatter) - parser.add_argument('device', type=str, nargs='+', - help='Device') - parser.add_argument('mountpoint', type=str, nargs='+', - help='Mount point') - parser.add_argument('-o', dest='options', type=str, nargs='+', - help='Filesystem options') - args = parser.parse_known_args(arguments)[0] - - device = args.device[0] - mountpoint = args.mountpoint[0] - options = ''.join(args.options).split(',') - - if '=' in device: - ceph_opts = ceph_options_compat(device) - else: - ceph_opts = ceph_options(options) - - fs_opts = fs_options(options, ceph_opts) - ceph_opts = ' '.join(['--' + o.replace('ceph.', '', 1) for o in ceph_opts]) - - command = 'ceph-fuse %s %s' % (ceph_opts, mountpoint) - - if fs_opts: - command += ' -o %s' % (fs_opts) - - mount_cmd = Popen(command, shell=True) - mount_cmd.communicate() - - if (mount_cmd.returncode != 0): - print("Mount failed with status code: {}".format(mount_cmd.returncode)) - -if __name__ == '__main__': - sys.exit(main(sys.argv[1:]))