summaryrefslogtreecommitdiffstats
path: root/extras/volgen/CreateBooster.py
blob: 9051f44017f3ab5e9dc1b18859eaa958ea059439 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
GLUSTERFS_BOOSTER_FSTAB = "/etc/gluster/booster.fstab"
GLUSTERFS_UNFS3_EXPORTS = "/etc/gluster/boosterexports"
GLUSTERFS_CIFS_CONFIG = "/etc/gluster/boostersmb.conf"
LOGDIR = "/var/log/glusterfs"
CONFDIR = "/etc/gluster"
fstype = "glusterfs"

class CreateBooster:

    def __init__ (self, main_name, export_dir):

        self.volume_name = main_name
        self.export = export_dir

    def configure_booster_fstab (self):
        if self.volume_name is None or self.export is None:
            sys.exit(1)

        booster_fstab_fd = file (GLUSTERFS_BOOSTER_FSTAB, "a")
        _fstab = "%s/%s.vol  %s" % (CONFDIR, self.volume_name, self.export)
        _options = "%s subvolume=io-cache" % fstype
        _options_log = "logfile=%s/%s.log" % (LOGDIR, self.volume_name)
        _options_ext = "loglevel=ERROR,attr_timeout=0"
        booster_fstab_fd.write ("%s %s,%s,%s\n" %
                                (_fstab,
                                 _options,
                                 _options_log,
                                 _options_ext))

        return

    def configure_nfs_booster (self):
        if self.volume_name is None or self.export is None:
            sys.exit(1)

        nfs_exports_fd = file (GLUSTERFS_UNFS3_EXPORTS, "a")
        nfs_exports_fd.write ("%s  0.0.0.0/0(rw,no_root_squash)\n" %
                              self.export)
        return

    def configure_cifs_booster (self):

        if self.volume_name is None or self.export is None:
            sys.exit(1)

        cifs_config_fd = file (GLUSTERFS_CIFS_CONFIG, "a")
        cifs_config_fd.write ("[%s]\n" % self.volume_name)
        cifs_config_fd.write ("comment = %s volume served by Gluster\n" %
                              self.volume_name)
        cifs_config_fd.write ("path = %s\n" % self.export)
        cifs_config_fd.write ("guest ok = yes\n")
        cifs_config_fd.write ("public = yes\n")
        cifs_config_fd.write ("writable = yes\n")
        cifs_config_fd.write ("admin users = gluster\n")
        cifs_config_fd.close()
        return