diff options
3 files changed, 75 insertions, 32 deletions
diff --git a/build/glustermg.spec b/build/glustermg.spec index ce1e6217..d7bf474c 100644 --- a/build/glustermg.spec +++ b/build/glustermg.spec @@ -55,6 +55,7 @@ rm -f $RPM_BUILD_ROOT/glustermg.war.tar.gz ln -sf /opt/glustermg/%{release_version}/glustermg/scripts/grun.py %{buildroot}%{_sbindir}/grun.py ln -sf /opt/glustermg/%{release_version}/glustermg/scripts/add_user_cifs_all.py %{buildroot}%{_sbindir}/add_user_cifs_all.py ln -sf /opt/glustermg/%{release_version}/glustermg/scripts/delete_user_cifs_all.py %{buildroot}%{_sbindir}/delete_user_cifs_all.py +ln -sf /opt/glustermg/%{release_version}/glustermg/scripts/setup_cifs_config_all.py %{buildroot}%{_sbindir}/setup_cifs_config_all.py mkdir -p $RPM_BUILD_ROOT/opt/glustermg/%{release_version}/backend mkdir -p $RPM_BUILD_ROOT/var/lib/rrd @@ -156,6 +157,7 @@ rm -rf $RPM_BUILD_ROOT %{_sbindir}/grun.py %{_sbindir}/add_user_cifs_all.py %{_sbindir}/delete_user_cifs_all.py +%{_sbindir}/setup_cifs_config_all.py %changelog diff --git a/src/com.gluster.storage.management.gateway.scripts/src/setup_cifs_config.py b/src/com.gluster.storage.management.gateway.scripts/src/setup_cifs_config.py index 7f9ed612..bb9a47fe 100755 --- a/src/com.gluster.storage.management.gateway.scripts/src/setup_cifs_config.py +++ b/src/com.gluster.storage.management.gateway.scripts/src/setup_cifs_config.py @@ -11,28 +11,35 @@ if not p1 in sys.path: sys.path.append(p1) if not p2 in sys.path: sys.path.append(p2) +import time import Globals import Utils def main(): try: - os.mkdir(Globals.GLUSTER_BASE_DIR) - os.mkdir(Globals.VOLUME_CONF_DIR) - os.mkdir(Globals.CIFS_EXPORT_DIR) - os.mkdir(Globals.REEXPORT_DIR) + if not os.path.exists(Globals.GLUSTER_BASE_DIR): + os.mkdir(Globals.GLUSTER_BASE_DIR) + if not os.path.exists(Globals.VOLUME_CONF_DIR): + os.mkdir(Globals.VOLUME_CONF_DIR) + if not os.path.exists(Globals.CIFS_EXPORT_DIR): + os.mkdir(Globals.CIFS_EXPORT_DIR) + if not os.path.exists(Globals.REEXPORT_DIR): + os.mkdir(Globals.REEXPORT_DIR) except OSError, e: Utils.log("failed to create directory: %s" % str(e)) sys.exit(1) try: - fp = open(Globals.VOLUME_SMBCONF_FILE, "w") - fp.close() + if not os.path.exists(Globals.VOLUME_SMBCONF_FILE): + fp = open(Globals.VOLUME_SMBCONF_FILE, "w") + fp.close() except IOError, e: Utils.log("Failed to create file %s: %s" % (Globals.VOLUME_SMBCONF_FILE, str(e))) sys.exit(2) try: - os.rename(Globals.SAMBA_CONF_FILE, "%s.orig" % Globals.SAMBA_CONF_FILE) + backupFile = "%s.%s" % (Globals.SAMBA_CONF_FILE, time.time()) + os.rename(Globals.SAMBA_CONF_FILE, backupFile) except IOError, e: - Utils.log("Ignoring rename %s to %s: %s" % (Globals.SAMBA_CONF_FILE, "%s.orig" % Globals.SAMBA_CONF_FILE, str(e))) + Utils.log("Ignoring rename %s to %s: %s" % (Globals.SAMBA_CONF_FILE, backupFile)) try: fp = open(Globals.SAMBA_CONF_FILE, "w") fp.write("##\n") @@ -48,38 +55,43 @@ def main(): Utils.log("Failed to create samba configuration file %s: %s" % (Globals.SAMBA_CONF_FILE, str(e))) sys.exit(3) try: - fp = open(Globals.REAL_SAMBA_CONF_FILE, "w") - fp.write("[global]\n") - fp.write("## CAUTION: DO NOT REMOVE BELOW INCLUDE LINE. REMOVAL OF THE LINE\n") - fp.write("## DISABLES SERVER/CIFS HIGH AVAILABILITY\n") - #fp.write("include = %s\n" % Globals.CTDB_SAMBA_CONF_FILE) - fp.write("##\n") - fp.write("socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=131072 SO_RCVBUF=131072\n") - fp.write("read raw = yes\n") - fp.write("server string = %h\n") - fp.write("write raw = yes\n") - fp.write("oplocks = yes\n") - fp.write("max xmit = 131072\n") - fp.write("dead time = 15\n") - fp.write("getwd cache = yes\n") - fp.write("#read size = 131072\n") - fp.write("use sendfile=yes\n") - fp.write("block size = 131072\n") - fp.write("printcap name = /etc/printcap\n") - fp.write("load printers = no\n") - fp.close() + if not os.path.exists(Globals.REAL_SAMBA_CONF_FILE): + fp = open(Globals.REAL_SAMBA_CONF_FILE, "w") + fp.write("[global]\n") + fp.write("## CAUTION: DO NOT REMOVE BELOW INCLUDE LINE. REMOVAL OF THE LINE\n") + fp.write("## DISABLES SERVER/CIFS HIGH AVAILABILITY\n") + #fp.write("include = %s\n" % Globals.CTDB_SAMBA_CONF_FILE) + fp.write("##\n") + fp.write("socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=131072 SO_RCVBUF=131072\n") + fp.write("read raw = yes\n") + fp.write("server string = %h\n") + fp.write("write raw = yes\n") + fp.write("oplocks = yes\n") + fp.write("max xmit = 131072\n") + fp.write("dead time = 15\n") + fp.write("getwd cache = yes\n") + fp.write("#read size = 131072\n") + fp.write("use sendfile=yes\n") + fp.write("block size = 131072\n") + fp.write("printcap name = /etc/printcap\n") + fp.write("load printers = no\n") + fp.close() except IOError, e: Utils.log("Failed to create samba configuration file %s: %s" % (Globals.REAL_SAMBA_CONF_FILE, str(e))) sys.exit(4) - if Utils.runCommand("setsebool -P samba_share_fusefs on") != 0: Utils.log("failed to set SELinux samba_share_fusefs") sys.exit(5) - if Utils.runCommand("service smb restart") != 0: - Utils.log("failed to restart smb service") - sys.exit(6) + if Utils.runCommand("service smb status") != 0: + if Utils.runCommand("service smb start") != 0: + Utils.log("failed to start smb service") + sys.exit(6) + + if Utils.runCommand("service smb reload") != 0: + Utils.log("failed to reload smb configuration") + sys.exit(7) sys.exit(0) diff --git a/src/com.gluster.storage.management.gateway/WebContent/scripts/setup_cifs_config_all.py b/src/com.gluster.storage.management.gateway/WebContent/scripts/setup_cifs_config_all.py new file mode 100755 index 00000000..8dd59c8c --- /dev/null +++ b/src/com.gluster.storage.management.gateway/WebContent/scripts/setup_cifs_config_all.py @@ -0,0 +1,29 @@ +#!/usr/bin/python +# Copyright (C) 2011 Gluster, Inc. <http://www.gluster.com> +# This file is part of Gluster Management Gateway. +# + +import os +import sys +p1 = os.path.abspath(os.path.dirname(sys.argv[0])) +p2 = "%s/common" % os.path.dirname(p1) +if not p1 in sys.path: + sys.path.append(p1) +if not p2 in sys.path: + sys.path.append(p2) +import Utils + + +def main(): + if len(sys.argv) < 2: + sys.stderr.write("usage: %s SERVER_FILE\n" % os.path.basename(sys.argv[0])) + sys.exit(-1) + + serverFile = sys.argv[1] + + rv = Utils.runCommand(["grun.py", serverFile, "setup_cifs_config.py"]) + sys.exit(rv) + + +if __name__ == "__main__": + main() |