summaryrefslogtreecommitdiffstats
path: root/src/com.gluster.storage.management.gateway.scripts
diff options
context:
space:
mode:
authorSelvasundaram <selvam@gluster.com>2011-08-10 21:24:22 +0530
committerSelvasundaram <selvam@gluster.com>2011-08-10 21:24:22 +0530
commit25dfeacd5d56923cbdeaefbb89281737e4030485 (patch)
tree0f8fe106adcd34166894d446974fc36a3f55a747 /src/com.gluster.storage.management.gateway.scripts
parenta26edbc55a5f80fb0ec333f3a043b3cfc6068cef (diff)
parent457201bb104d84f74c9a27495834d9b730012210 (diff)
Merge branch 'master' of github.com:gluster/console
Diffstat (limited to 'src/com.gluster.storage.management.gateway.scripts')
-rw-r--r--src/com.gluster.storage.management.gateway.scripts/src/Common.py20
-rw-r--r--src/com.gluster.storage.management.gateway.scripts/src/backend/Commands.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/Commands.py)0
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/backend/Disk.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/Disk.py)0
-rw-r--r--src/com.gluster.storage.management.gateway.scripts/src/backend/DiskUtils.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/DiskUtils.py)0
-rw-r--r--src/com.gluster.storage.management.gateway.scripts/src/backend/FsTabUtils.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/FsTabUtils.py)0
-rw-r--r--src/com.gluster.storage.management.gateway.scripts/src/backend/GetServerNetworkConfig.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/GetServerNetworkConfig.py)0
-rw-r--r--src/com.gluster.storage.management.gateway.scripts/src/backend/GlusterdUtils.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/GlusterdUtils.py)0
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/backend/NetworkUtils.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/NetworkUtils.py)0
-rw-r--r--src/com.gluster.storage.management.gateway.scripts/src/backend/RRDUtils.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/RRDUtils.py)0
-rw-r--r--src/com.gluster.storage.management.gateway.scripts/src/backend/ServerUtils.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/ServerUtils.py)0
-rw-r--r--src/com.gluster.storage.management.gateway.scripts/src/backend/VolumeUtils.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/VolumeUtils.py)0
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/backend/add_user_cifs.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/add_user_cifs.py)0
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/backend/clear_volume_directory.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/clear_volume_directory.py)0
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/backend/create_volume_cifs.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/create_volume_cifs.py)16
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/backend/create_volume_directory.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/create_volume_directory.py)0
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/backend/delete_user_cifs.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/delete_user_cifs.py)0
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/backend/delete_volume_cifs.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/delete_volume_cifs.py)0
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/backend/disable-ssh-password-auth.sh (renamed from src/com.gluster.storage.management.gateway.scripts/src/disable-ssh-password-auth.sh)0
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/backend/format_device.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/format_device.py)0
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/backend/get_brick_status.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/get_brick_status.py)0
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/backend/get_disk_mount_point.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/get_disk_mount_point.py)0
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/backend/get_disk_name_by_path.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/get_disk_name_by_path.py)0
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/backend/get_file.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/get_file.py)0
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/backend/get_format_device_status.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/get_format_device_status.py)0
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/backend/get_rrd_cpu_details.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/get_rrd_cpu_details.py)0
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/backend/get_rrd_memory_details.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/get_rrd_memory_details.py)0
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/backend/get_rrd_net_details.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/get_rrd_net_details.py)0
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/backend/get_server_details.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/get_server_details.py)0
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/backend/get_server_status.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/get_server_status.py)0
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/backend/get_volume_brick_log.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/get_volume_brick_log.py)0
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/backend/get_volume_log.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/get_volume_log.py)0
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/backend/gluster_provision_block_wrapper.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/gluster_provision_block_wrapper.py)0
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/backend/modify_volume_cifs.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/modify_volume_cifs.py)0
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/backend/multicast-discoverd.init.d (renamed from src/com.gluster.storage.management.gateway.scripts/src/multicast-discoverd.init.d)0
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/backend/multicast-discoverd.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/multicast-discoverd.py)0
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/backend/rrd_cpu.pl (renamed from src/com.gluster.storage.management.gateway.scripts/src/rrd_cpu.pl)0
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/backend/rrd_mem.pl (renamed from src/com.gluster.storage.management.gateway.scripts/src/rrd_mem.pl)0
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/backend/rrd_net.pl (renamed from src/com.gluster.storage.management.gateway.scripts/src/rrd_net.pl)0
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/backend/rrd_update_cpu_details.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/rrd_update_cpu_details.py)0
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/backend/rrd_update_memory_details.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/rrd_update_memory_details.py)0
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/backend/setup_cifs_config.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/setup_cifs_config.py)0
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/backend/start_volume_cifs.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/start_volume_cifs.py)0
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/backend/stop_volume_cifs.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/stop_volume_cifs.py)0
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/backend/update_volume_cifs.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/update_volume_cifs.py)0
-rw-r--r--src/com.gluster.storage.management.gateway.scripts/src/common/Globals.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/Globals.py)6
-rw-r--r--src/com.gluster.storage.management.gateway.scripts/src/common/Globals.pycbin0 -> 4718 bytes
-rw-r--r--src/com.gluster.storage.management.gateway.scripts/src/common/Protocol.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/Protocol.py)0
-rw-r--r--src/com.gluster.storage.management.gateway.scripts/src/common/Protocol.pycbin0 -> 16852 bytes
-rw-r--r--src/com.gluster.storage.management.gateway.scripts/src/common/Utils.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/Utils.py)17
-rw-r--r--src/com.gluster.storage.management.gateway.scripts/src/common/Utils.pycbin0 -> 37088 bytes
-rw-r--r--src/com.gluster.storage.management.gateway.scripts/src/common/XmlHandler.py (renamed from src/com.gluster.storage.management.gateway.scripts/src/XmlHandler.py)0
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/gateway/add_user_cifs_all.py94
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/gateway/create_volume_cifs_all.py67
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/gateway/delete_user_cifs_all.py58
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/gateway/delete_volume_cifs_all.py56
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/gateway/get_volume_user_cifs.py46
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/gateway/gmg-reset-password.sh21
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/gateway/grun.py56
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/gateway/multicast-discover-servers.py110
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/gateway/setup_cifs_config_all.py29
-rwxr-xr-xsrc/com.gluster.storage.management.gateway.scripts/src/gateway/update_volume_cifs_all.py69
61 files changed, 638 insertions, 27 deletions
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/Common.py b/src/com.gluster.storage.management.gateway.scripts/src/Common.py
deleted file mode 100644
index 70b2157a..00000000
--- a/src/com.gluster.storage.management.gateway.scripts/src/Common.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright (c) 2009 Gluster, Inc. <http://www.gluster.com>
-# This file is part of GlusterSP.
-#
-# GlusterSP is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published
-# by the Free Software Foundation; either version 3 of the License,
-# or (at your option) any later version.
-#
-# GlusterSP is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see
-# <http://www.gnu.org/licenses/>.
-
-import sys
-import syslog
-
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/Commands.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/Commands.py
index c728b565..c728b565 100644
--- a/src/com.gluster.storage.management.gateway.scripts/src/Commands.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/Commands.py
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/Disk.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/Disk.py
index 2c47d396..2c47d396 100755
--- a/src/com.gluster.storage.management.gateway.scripts/src/Disk.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/Disk.py
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/DiskUtils.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/DiskUtils.py
index 341c9083..341c9083 100644
--- a/src/com.gluster.storage.management.gateway.scripts/src/DiskUtils.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/DiskUtils.py
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/FsTabUtils.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/FsTabUtils.py
index fcac4196..fcac4196 100644
--- a/src/com.gluster.storage.management.gateway.scripts/src/FsTabUtils.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/FsTabUtils.py
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/GetServerNetworkConfig.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/GetServerNetworkConfig.py
index 54f68caf..54f68caf 100644
--- a/src/com.gluster.storage.management.gateway.scripts/src/GetServerNetworkConfig.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/GetServerNetworkConfig.py
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/GlusterdUtils.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/GlusterdUtils.py
index 7c0e899c..7c0e899c 100644
--- a/src/com.gluster.storage.management.gateway.scripts/src/GlusterdUtils.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/GlusterdUtils.py
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/NetworkUtils.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/NetworkUtils.py
index 9f5687e4..9f5687e4 100755
--- a/src/com.gluster.storage.management.gateway.scripts/src/NetworkUtils.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/NetworkUtils.py
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/RRDUtils.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/RRDUtils.py
index 1ad0deee..1ad0deee 100644
--- a/src/com.gluster.storage.management.gateway.scripts/src/RRDUtils.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/RRDUtils.py
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/ServerUtils.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/ServerUtils.py
index 1fec994c..1fec994c 100644
--- a/src/com.gluster.storage.management.gateway.scripts/src/ServerUtils.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/ServerUtils.py
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/VolumeUtils.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/VolumeUtils.py
index b1031ccc..b1031ccc 100644
--- a/src/com.gluster.storage.management.gateway.scripts/src/VolumeUtils.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/VolumeUtils.py
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/add_user_cifs.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/add_user_cifs.py
index b2bf045a..b2bf045a 100755
--- a/src/com.gluster.storage.management.gateway.scripts/src/add_user_cifs.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/add_user_cifs.py
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/clear_volume_directory.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/clear_volume_directory.py
index 029787e5..029787e5 100755
--- a/src/com.gluster.storage.management.gateway.scripts/src/clear_volume_directory.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/clear_volume_directory.py
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/create_volume_cifs.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/create_volume_cifs.py
index 9da715e6..5a27ab87 100755
--- a/src/com.gluster.storage.management.gateway.scripts/src/create_volume_cifs.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/create_volume_cifs.py
@@ -25,16 +25,22 @@ def main():
volumeMountDirName = "%s/%s" % (Globals.REEXPORT_DIR, volumeName)
try:
- os.mkdir(volumeMountDirName)
+ if not os.path.exists(volumeMountDirName):
+ os.mkdir(volumeMountDirName)
except OSError, e:
Utils.log("failed creating %s: %s\n" % (volumeMountDirName, str(e)))
sys.stderr.write("Failed creating %s: %s\n" % (volumeMountDirName, str(e)))
sys.exit(1)
- if VolumeUtils.writeVolumeCifsConfiguration(volumeName, userList):
- sys.exit(0)
- sys.stderr.write("Unable to write volume cifs configuration\n")
- sys.exit(2)
+ if not VolumeUtils.writeVolumeCifsConfiguration(volumeName, userList):
+ sys.stderr.write("Failed to write volume cifs configuration\n")
+ sys.exit(2)
+
+ if Utils.runCommand("service smb reload") != 0:
+ Utils.log("Failed to reload smb service")
+ sys.stderr.write("Failed to reload smb service\n")
+ sys.exit(3)
+ sys.exit(0)
if __name__ == "__main__":
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/create_volume_directory.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/create_volume_directory.py
index e295f249..e295f249 100755
--- a/src/com.gluster.storage.management.gateway.scripts/src/create_volume_directory.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/create_volume_directory.py
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/delete_user_cifs.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/delete_user_cifs.py
index aeda989f..aeda989f 100755
--- a/src/com.gluster.storage.management.gateway.scripts/src/delete_user_cifs.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/delete_user_cifs.py
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/delete_volume_cifs.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/delete_volume_cifs.py
index 572d819c..572d819c 100755
--- a/src/com.gluster.storage.management.gateway.scripts/src/delete_volume_cifs.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/delete_volume_cifs.py
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/disable-ssh-password-auth.sh b/src/com.gluster.storage.management.gateway.scripts/src/backend/disable-ssh-password-auth.sh
index 07ee1a3a..07ee1a3a 100755
--- a/src/com.gluster.storage.management.gateway.scripts/src/disable-ssh-password-auth.sh
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/disable-ssh-password-auth.sh
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/format_device.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/format_device.py
index e41baa0e..e41baa0e 100755
--- a/src/com.gluster.storage.management.gateway.scripts/src/format_device.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/format_device.py
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/get_brick_status.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/get_brick_status.py
index afc15f3a..afc15f3a 100755
--- a/src/com.gluster.storage.management.gateway.scripts/src/get_brick_status.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/get_brick_status.py
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/get_disk_mount_point.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/get_disk_mount_point.py
index 2f4a39c3..2f4a39c3 100755
--- a/src/com.gluster.storage.management.gateway.scripts/src/get_disk_mount_point.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/get_disk_mount_point.py
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/get_disk_name_by_path.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/get_disk_name_by_path.py
index 08e80b7e..08e80b7e 100755
--- a/src/com.gluster.storage.management.gateway.scripts/src/get_disk_name_by_path.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/get_disk_name_by_path.py
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/get_file.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/get_file.py
index 61c33eba..61c33eba 100755
--- a/src/com.gluster.storage.management.gateway.scripts/src/get_file.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/get_file.py
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/get_format_device_status.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/get_format_device_status.py
index 39bfe01c..39bfe01c 100755
--- a/src/com.gluster.storage.management.gateway.scripts/src/get_format_device_status.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/get_format_device_status.py
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/get_rrd_cpu_details.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/get_rrd_cpu_details.py
index e60d7199..e60d7199 100755
--- a/src/com.gluster.storage.management.gateway.scripts/src/get_rrd_cpu_details.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/get_rrd_cpu_details.py
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/get_rrd_memory_details.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/get_rrd_memory_details.py
index a6dd4987..a6dd4987 100755
--- a/src/com.gluster.storage.management.gateway.scripts/src/get_rrd_memory_details.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/get_rrd_memory_details.py
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/get_rrd_net_details.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/get_rrd_net_details.py
index c319c888..c319c888 100755
--- a/src/com.gluster.storage.management.gateway.scripts/src/get_rrd_net_details.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/get_rrd_net_details.py
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/get_server_details.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/get_server_details.py
index 30ffac58..30ffac58 100755
--- a/src/com.gluster.storage.management.gateway.scripts/src/get_server_details.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/get_server_details.py
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/get_server_status.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/get_server_status.py
index 2814f10f..2814f10f 100755
--- a/src/com.gluster.storage.management.gateway.scripts/src/get_server_status.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/get_server_status.py
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/get_volume_brick_log.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/get_volume_brick_log.py
index ff4a4b9a..ff4a4b9a 100755
--- a/src/com.gluster.storage.management.gateway.scripts/src/get_volume_brick_log.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/get_volume_brick_log.py
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/get_volume_log.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/get_volume_log.py
index f388aa4e..f388aa4e 100755
--- a/src/com.gluster.storage.management.gateway.scripts/src/get_volume_log.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/get_volume_log.py
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/gluster_provision_block_wrapper.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/gluster_provision_block_wrapper.py
index 849bce3f..849bce3f 100755
--- a/src/com.gluster.storage.management.gateway.scripts/src/gluster_provision_block_wrapper.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/gluster_provision_block_wrapper.py
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/modify_volume_cifs.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/modify_volume_cifs.py
index d56b1f59..d56b1f59 100755
--- a/src/com.gluster.storage.management.gateway.scripts/src/modify_volume_cifs.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/modify_volume_cifs.py
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/multicast-discoverd.init.d b/src/com.gluster.storage.management.gateway.scripts/src/backend/multicast-discoverd.init.d
index 7cfbe44a..7cfbe44a 100755
--- a/src/com.gluster.storage.management.gateway.scripts/src/multicast-discoverd.init.d
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/multicast-discoverd.init.d
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/multicast-discoverd.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/multicast-discoverd.py
index fbadd048..fbadd048 100755
--- a/src/com.gluster.storage.management.gateway.scripts/src/multicast-discoverd.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/multicast-discoverd.py
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/rrd_cpu.pl b/src/com.gluster.storage.management.gateway.scripts/src/backend/rrd_cpu.pl
index 7b070812..7b070812 100755
--- a/src/com.gluster.storage.management.gateway.scripts/src/rrd_cpu.pl
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/rrd_cpu.pl
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/rrd_mem.pl b/src/com.gluster.storage.management.gateway.scripts/src/backend/rrd_mem.pl
index 5c47cd81..5c47cd81 100755
--- a/src/com.gluster.storage.management.gateway.scripts/src/rrd_mem.pl
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/rrd_mem.pl
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/rrd_net.pl b/src/com.gluster.storage.management.gateway.scripts/src/backend/rrd_net.pl
index c88afced..c88afced 100755
--- a/src/com.gluster.storage.management.gateway.scripts/src/rrd_net.pl
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/rrd_net.pl
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/rrd_update_cpu_details.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/rrd_update_cpu_details.py
index 6ec6a1e3..6ec6a1e3 100755
--- a/src/com.gluster.storage.management.gateway.scripts/src/rrd_update_cpu_details.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/rrd_update_cpu_details.py
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/rrd_update_memory_details.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/rrd_update_memory_details.py
index 0a30d248..0a30d248 100755
--- a/src/com.gluster.storage.management.gateway.scripts/src/rrd_update_memory_details.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/rrd_update_memory_details.py
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/setup_cifs_config.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/setup_cifs_config.py
index 67ce962e..67ce962e 100755
--- a/src/com.gluster.storage.management.gateway.scripts/src/setup_cifs_config.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/setup_cifs_config.py
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/start_volume_cifs.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/start_volume_cifs.py
index 0d09b5eb..0d09b5eb 100755
--- a/src/com.gluster.storage.management.gateway.scripts/src/start_volume_cifs.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/start_volume_cifs.py
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/stop_volume_cifs.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/stop_volume_cifs.py
index d67d9061..d67d9061 100755
--- a/src/com.gluster.storage.management.gateway.scripts/src/stop_volume_cifs.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/stop_volume_cifs.py
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/update_volume_cifs.py b/src/com.gluster.storage.management.gateway.scripts/src/backend/update_volume_cifs.py
index 64297a87..64297a87 100755
--- a/src/com.gluster.storage.management.gateway.scripts/src/update_volume_cifs.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/backend/update_volume_cifs.py
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/Globals.py b/src/com.gluster.storage.management.gateway.scripts/src/common/Globals.py
index d5cb1ae0..cfab83b6 100644
--- a/src/com.gluster.storage.management.gateway.scripts/src/Globals.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/common/Globals.py
@@ -22,7 +22,7 @@ GLUSTER_PROBE_VERSION = "1.0.0"
DEFAULT_BUFSIZE = 1024
SERVER_PORT = 24731
DEFAULT_BACKLOG = 5
-DEFAULT_TIMEOUT = 5
+DEFAULT_TIMEOUT = 3
DEFAULT_ID_LENGTH = 16
GLUSTER_PLATFORM_VERSION = "3.2"
@@ -129,3 +129,7 @@ VERSION_DICTONARY = {}
AWS_WEB_SERVICE_URL = "http://169.254.169.254/latest"
REAL_SAMBA_CONF_FILE = "/etc/samba/real.smb.conf"
+
+DEFAULT_UID = 1024000
+CIFS_USER_FILE = "/opt/glustermg/etc/users.cifs"
+CIFS_VOLUME_FILE = "/opt/glustermg/etc/volumes.cifs"
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/common/Globals.pyc b/src/com.gluster.storage.management.gateway.scripts/src/common/Globals.pyc
new file mode 100644
index 00000000..49f58157
--- /dev/null
+++ b/src/com.gluster.storage.management.gateway.scripts/src/common/Globals.pyc
Binary files differ
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/Protocol.py b/src/com.gluster.storage.management.gateway.scripts/src/common/Protocol.py
index ff073593..ff073593 100644
--- a/src/com.gluster.storage.management.gateway.scripts/src/Protocol.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/common/Protocol.py
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/common/Protocol.pyc b/src/com.gluster.storage.management.gateway.scripts/src/common/Protocol.pyc
new file mode 100644
index 00000000..3b0da181
--- /dev/null
+++ b/src/com.gluster.storage.management.gateway.scripts/src/common/Protocol.pyc
Binary files differ
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/Utils.py b/src/com.gluster.storage.management.gateway.scripts/src/common/Utils.py
index 82f8b7b6..588d52fa 100644
--- a/src/com.gluster.storage.management.gateway.scripts/src/Utils.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/common/Utils.py
@@ -374,7 +374,7 @@ def getMeminfo():
continue # skip lines that don't parse
key, value = match.groups(['key', 'value'])
result[key] = int(value)
- result['MemUsed'] = (result['MemTotal'] - result['MemFree'])
+ result['MemUsed'] = (result['MemTotal'] - result['MemFree'] - result['Buffers'] - result['Cached'])
return result
@@ -1084,3 +1084,18 @@ def getGlusterVersion():
if not rv["Stdout"]:
return None
return rv["Stdout"].strip().split()[1]
+
+def getCifsUserUid(userName):
+ try:
+ fp = open(Globals.CIFS_USER_FILE)
+ content = fp.read()
+ fp.close()
+ except IOError, e:
+ Utils.log("failed to read file %s: %s" % (Globals.CIFS_USER_FILE, str(e)))
+ return False
+
+ for line in content.strip().split():
+ tokens = line.split(":")
+ if tokens[1] == userName:
+ return int(tokens[0])
+ return None
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/common/Utils.pyc b/src/com.gluster.storage.management.gateway.scripts/src/common/Utils.pyc
new file mode 100644
index 00000000..501aa2ee
--- /dev/null
+++ b/src/com.gluster.storage.management.gateway.scripts/src/common/Utils.pyc
Binary files differ
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/XmlHandler.py b/src/com.gluster.storage.management.gateway.scripts/src/common/XmlHandler.py
index b9db15c8..b9db15c8 100644
--- a/src/com.gluster.storage.management.gateway.scripts/src/XmlHandler.py
+++ b/src/com.gluster.storage.management.gateway.scripts/src/common/XmlHandler.py
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/gateway/add_user_cifs_all.py b/src/com.gluster.storage.management.gateway.scripts/src/gateway/add_user_cifs_all.py
new file mode 100755
index 00000000..a54685fa
--- /dev/null
+++ b/src/com.gluster.storage.management.gateway.scripts/src/gateway/add_user_cifs_all.py
@@ -0,0 +1,94 @@
+#!/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 Globals
+import Utils
+
+
+def getUid(userName):
+ try:
+ fp = open(Globals.CIFS_USER_FILE)
+ content = fp.read()
+ fp.close()
+ except IOError, e:
+ Utils.log("failed to read file %s: %s" % (Globals.CIFS_USER_FILE, str(e)))
+ return False
+
+ for line in content.strip().split():
+ tokens = line.split(":")
+ if tokens[1] == userName:
+ return int(tokens[0])
+ return None
+
+
+def getLastUid():
+ if not os.path.exists(Globals.CIFS_USER_FILE):
+ return Globals.DEFAULT_UID
+ try:
+ fp = open(Globals.CIFS_USER_FILE)
+ content = fp.read()
+ fp.close()
+ except IOError, e:
+ Utils.log("failed to read file %s: %s" % (Globals.CIFS_USER_FILE, str(e)))
+ return False
+
+ lines = content.strip().split()
+ if not lines:
+ return Globals.DEFAULT_UID
+ return int(lines[-1].split(":")[0])
+
+
+def setUid(uid, userName):
+ try:
+ fp = open(Globals.CIFS_USER_FILE, "a")
+ fp.write("%s:%s\n" % (uid, userName))
+ fp.close()
+ return True
+ except IOError, e:
+ Utils.log("failed to write file %s: %s" % (Globals.CIFS_USER_FILE, str(e)))
+ return False
+
+
+def main():
+ if len(sys.argv) < 4:
+ sys.stderr.write("usage: %s SERVER_FILE USERNAME PASSWORD\n" % os.path.basename(sys.argv[0]))
+ sys.exit(-1)
+
+ serverFile = sys.argv[1]
+ userName = sys.argv[2]
+ password = sys.argv[3]
+
+ existingUser = False
+ uid = getUid(userName)
+ if not uid:
+ uid = getLastUid()
+ if not uid:
+ sys.exit(10)
+ uid += 1
+ else:
+ existingUser = True
+
+ print (serverFile, uid, userName, password)
+ rv = Utils.runCommand("grun.py %s add_user_cifs.py %s %s %s" % (serverFile, uid, userName, password))
+ if existingUser:
+ sys.exit(rv)
+
+ if rv == 0:
+ if not setUid(uid, userName):
+ sys.stderr.write("Failed to add the user\n")
+ sys.exit(11)
+ sys.exit(rv)
+
+
+if __name__ == "__main__":
+ main()
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/gateway/create_volume_cifs_all.py b/src/com.gluster.storage.management.gateway.scripts/src/gateway/create_volume_cifs_all.py
new file mode 100755
index 00000000..59e74bed
--- /dev/null
+++ b/src/com.gluster.storage.management.gateway.scripts/src/gateway/create_volume_cifs_all.py
@@ -0,0 +1,67 @@
+#!/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 Globals
+import Utils
+
+
+def addVolumeCifsConf(volumeName, userList):
+ try:
+ fp = open(Globals.CIFS_VOLUME_FILE)
+ content = fp.read()
+ fp.close()
+ except IOError, e:
+ Utils.log("failed to read file %s: %s" % (Globals.CIFS_VOLUME_FILE, str(e)))
+ content = ""
+
+ try:
+ fp = open(Globals.CIFS_VOLUME_FILE, "w")
+ for line in content.split():
+ if line.split(":")[0] != volumeName:
+ fp.write("%s\n" % line)
+ fp.write("%s:%s\n" % (volumeName, ":".join(userList)))
+ fp.close()
+ except IOError, e:
+ Utils.log("failed to write file %s: %s" % (Globals.CIFS_VOLUME_FILE, str(e)))
+ return False
+ return True
+
+
+def main():
+ if len(sys.argv) < 4:
+ sys.stderr.write("usage: %s SERVER_FILE VOLUME_NAME USER1 USER2 ...\n" % os.path.basename(sys.argv[0]))
+ sys.exit(-1)
+
+ serverFile = sys.argv[1]
+ volumeName = sys.argv[2]
+ userList = sys.argv[3:]
+
+ missingUserList = []
+ for userName in userList:
+ if not Utils.getCifsUserUid(userName):
+ missingUserList.append(userName)
+
+ if missingUserList:
+ sys.stderr.write("User %s does not exists\n" % missingUserList)
+ sys.exit(1)
+
+ rv = Utils.runCommand(["grun.py", serverFile, "create_volume_cifs.py", volumeName] + userList)
+ if rv == 0:
+ if not addVolumeCifsConf(volumeName, userList):
+ sys.stderr.write("Failed to add volume %s and user-list %s in cifs volume configuration\n" % (volumeName, userList))
+ sys.exit(11)
+ sys.exit(rv)
+
+
+if __name__ == "__main__":
+ main()
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/gateway/delete_user_cifs_all.py b/src/com.gluster.storage.management.gateway.scripts/src/gateway/delete_user_cifs_all.py
new file mode 100755
index 00000000..3c68891c
--- /dev/null
+++ b/src/com.gluster.storage.management.gateway.scripts/src/gateway/delete_user_cifs_all.py
@@ -0,0 +1,58 @@
+#!/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 Globals
+import Utils
+
+
+def removeUser(userName):
+ try:
+ fp = open(Globals.CIFS_USER_FILE)
+ content = fp.read()
+ fp.close()
+ except IOError, e:
+ Utils.log("failed to read file %s: %s" % (Globals.CIFS_USER_FILE, str(e)))
+ return False
+
+ try:
+ fp = open(Globals.CIFS_USER_FILE, "w")
+ lines = content.strip().split()
+ for line in lines:
+ if line.split(":")[1] == userName:
+ continue
+ fp.write("%s\n" % line)
+ fp.close()
+ except IOError, e:
+ Utils.log("failed to write file %s: %s" % (Globals.CIFS_USER_FILE, str(e)))
+ return False
+ return True
+
+
+def main():
+ if len(sys.argv) < 3:
+ sys.stderr.write("usage: %s SERVER_LIST USERNAME\n" % os.path.basename(sys.argv[0]))
+ sys.exit(-1)
+
+ serverList = sys.argv[1]
+ userName = sys.argv[2]
+
+ rv = Utils.runCommand("grun.py %s delete_user_cifs.py %s" % (serverList, userName))
+ if rv == 0:
+ if not removeUser(userName):
+ Utils.log("Failed to remove the user:%s on gateway server\n" % userName)
+ sys.exit(0)
+ sys.exit(rv)
+
+
+if __name__ == "__main__":
+ main()
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/gateway/delete_volume_cifs_all.py b/src/com.gluster.storage.management.gateway.scripts/src/gateway/delete_volume_cifs_all.py
new file mode 100755
index 00000000..3456b92d
--- /dev/null
+++ b/src/com.gluster.storage.management.gateway.scripts/src/gateway/delete_volume_cifs_all.py
@@ -0,0 +1,56 @@
+#!/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 Globals
+import Utils
+
+
+def removeVolumeCifsConf(volumeName):
+ try:
+ fp = open(Globals.CIFS_VOLUME_FILE)
+ content = fp.read()
+ fp.close()
+ except IOError, e:
+ Utils.log("failed to read file %s: %s" % (Globals.CIFS_VOLUME_FILE, str(e)))
+ content = ""
+
+ try:
+ fp = open(Globals.CIFS_VOLUME_FILE, "w")
+ for line in content.split():
+ if line.split(":")[0] != volumeName:
+ fp.write("%s\n" % line)
+ fp.close()
+ except IOError, e:
+ Utils.log("failed to write file %s: %s" % (Globals.CIFS_VOLUME_FILE, str(e)))
+ return False
+ return True
+
+
+def main():
+ if len(sys.argv) < 3:
+ sys.stderr.write("usage: %s SERVER_FILE VOLUME_NAME\n" % os.path.basename(sys.argv[0]))
+ sys.exit(-1)
+
+ serverFile = sys.argv[1]
+ volumeName = sys.argv[2]
+
+ rv = Utils.runCommand(["grun.py", serverFile, "delete_volume_cifs.py", volumeName])
+ if rv == 0:
+ if not removeVolumeCifsConf(volumeName):
+ sys.stderr.write("Failed to remove volume %s and user-list in cifs volume configuration\n" % volumeName)
+ sys.exit(11)
+ sys.exit(rv)
+
+
+if __name__ == "__main__":
+ main()
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/gateway/get_volume_user_cifs.py b/src/com.gluster.storage.management.gateway.scripts/src/gateway/get_volume_user_cifs.py
new file mode 100755
index 00000000..c385633e
--- /dev/null
+++ b/src/com.gluster.storage.management.gateway.scripts/src/gateway/get_volume_user_cifs.py
@@ -0,0 +1,46 @@
+#!/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 Globals
+import Utils
+
+
+def main():
+ if len(sys.argv) < 2:
+ sys.stderr.write("usage: %s VOLUME_NAME\n" % os.path.basename(sys.argv[0]))
+ sys.exit(-1)
+
+ volumeName = sys.argv[1]
+
+ if not os.path.exists(Globals.CIFS_VOLUME_FILE):
+ sys.exit(0)
+
+ try:
+ fp = open(Globals.CIFS_VOLUME_FILE)
+ content = fp.read()
+ fp.close()
+ for line in content.split():
+ tokens = line.split(":")
+ if tokens[0] == volumeName:
+ print "\n".join(tokens[1:])
+ sys.exit(0)
+ # given volume is not configured for cifs export
+ sys.exit(0)
+ except IOError, e:
+ Utils.log("failed to read file %s: %s" % (Globals.CIFS_VOLUME_FILE, str(e)))
+ sys.stderr.write("Failed to read cifs-volume-file %s: %s\n" % (Globals.CIFS_VOLUME_FILE, str(e)))
+ sys.exit(2)
+
+
+if __name__ == "__main__":
+ main()
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/gateway/gmg-reset-password.sh b/src/com.gluster.storage.management.gateway.scripts/src/gateway/gmg-reset-password.sh
new file mode 100755
index 00000000..4edf0ffd
--- /dev/null
+++ b/src/com.gluster.storage.management.gateway.scripts/src/gateway/gmg-reset-password.sh
@@ -0,0 +1,21 @@
+#-----------------------------------------------------------------------------------
+# gmg-reset-password.sh - script to reset password of given user to default password
+#-----------------------------------------------------------------------------------
+
+USAGE_ERR=1
+
+if [ $# -ne 1 ]; then
+ echo "Usage: ${0} <username>"
+ echo
+ exit ${USAGE_ERR}
+fi
+
+# Main action body
+cd ..
+for FILE in WEB-INF/lib/*.jar
+do
+ export CLASSPATH=${CLASSPATH}:${PWD}/${FILE}
+done
+export CLASSPATH=${PWD}/WEB-INF/classes:${CLASSPATH}
+cd -
+java com.gluster.storage.management.gateway.utils.PasswordManager reset ${1}
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/gateway/grun.py b/src/com.gluster.storage.management.gateway.scripts/src/gateway/grun.py
new file mode 100755
index 00000000..f2e2d944
--- /dev/null
+++ b/src/com.gluster.storage.management.gateway.scripts/src/gateway/grun.py
@@ -0,0 +1,56 @@
+#!/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():
+ sshCommandPrefix = "ssh -q -i /opt/glustermg/keys/gluster.pem -o BatchMode=yes -o GSSAPIAuthentication=no -o PasswordAuthentication=no -o StrictHostKeyChecking=no".split()
+
+ if len(sys.argv) < 3:
+ sys.stderr.write("usage: %s SERVER_FILE COMMAND [ARGUMENTS]\n" % os.path.basename(sys.argv[0]))
+ sys.exit(-1)
+ serverFile = sys.argv[1]
+ try:
+ command = ["/opt/glustermg/%s/backend/%s" % (os.environ['GMG_VERSION'], sys.argv[2])]
+ except KeyError, e:
+ command = ["/opt/glustermg/1.0.0/backend/%s" % sys.argv[2]]
+ command += sys.argv[3:]
+
+ try:
+ fp = open(serverFile)
+ serverNameList = fp.readlines()
+ fp.close()
+ except IOError, e:
+ Utils.log("Failed to read server file %s: %s\n" % (serverFile, str(e)))
+ sys.stderr.write("Failed to read server file %s: %s\n" % (serverFile, str(e)))
+ sys.exit(1)
+
+ status = True
+ for serverName in serverNameList:
+ rv = Utils.runCommand(sshCommandPrefix + [serverName.strip()] + command, output=True)
+ if rv["Status"] != 0:
+ sys.stderr.write("%s: %s\n" % (serverName, rv["Status"]))
+ sys.stderr.write("Stdout:\n%s\n" % rv["Stdout"])
+ sys.stderr.write("Stderr:\n%s\n" % rv["Stderr"])
+ sys.stderr.write("---\n")
+ status = False
+
+ if status:
+ sys.exit(0)
+ else:
+ sys.exit(2)
+
+
+if __name__ == "__main__":
+ main()
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/gateway/multicast-discover-servers.py b/src/com.gluster.storage.management.gateway.scripts/src/gateway/multicast-discover-servers.py
new file mode 100755
index 00000000..fcbcd738
--- /dev/null
+++ b/src/com.gluster.storage.management.gateway.scripts/src/gateway/multicast-discover-servers.py
@@ -0,0 +1,110 @@
+#!/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 socket
+import select
+import signal
+import random
+import string
+import Utils
+import Globals
+
+running = True
+
+
+def exitHandler(signum, frame):
+ running = False
+
+
+def sendMulticastRequest(idString):
+ multicastSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
+ multicastSocket.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, 2)
+ multicastSocket.sendto("%s,%s,%s\n" % (Globals.GLUSTER_PROBE_STRING, Globals.GLUSTER_PROBE_VERSION, idString),
+ (Globals.MULTICAST_GROUP, Globals.MULTICAST_PORT))
+ return multicastSocket
+
+
+def openServerSocket():
+ try:
+ server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
+ server.bind(('', Globals.SERVER_PORT))
+ server.listen(Globals.DEFAULT_BACKLOG)
+ return server
+ except socket.error, e:
+ Utils.log("failed to open server socket on port %s: %s" % (Globals.SERVER_PORT, str(e)))
+ sys.stderr.write("failed to open server socket on port %s: %s\n" % (Globals.SERVER_PORT, str(e)))
+ sys.exit(1)
+
+
+def main():
+ signal.signal(signal.SIGINT, exitHandler)
+ signal.signal(signal.SIGTERM, exitHandler)
+ signal.signal(signal.SIGALRM, exitHandler)
+
+ idString = ''.join(random.choice(string.ascii_lowercase +
+ string.ascii_uppercase +
+ string.digits) for x in range(Globals.DEFAULT_ID_LENGTH))
+
+ multicastSocket = sendMulticastRequest(idString)
+
+ serverInfoDict = {}
+ serverSocket = openServerSocket()
+ rlist = [serverSocket]
+ signal.alarm(Globals.DEFAULT_TIMEOUT)
+ while running:
+ try:
+ ilist,olist,elist = select.select(rlist, [], [], 0.25)
+ except select.error, e:
+ Utils.log("failed to read from connections: %s" % str(e))
+ break
+ for sock in ilist:
+ # handle new connection
+ if sock == serverSocket:
+ clientSocket, address = serverSocket.accept()
+ #print "connection from %s on %s" % (address, clientSocket)
+ rlist.append(clientSocket)
+ continue
+
+ # handle all other sockets
+ data = sock.recv(Globals.DEFAULT_BUFSIZE)
+ if not data:
+ #print "closing socket %s" % sock
+ sock.close()
+ rlist.remove(sock)
+ tokens = data.strip().split(",")
+ if len(tokens) != 6:
+ continue
+ if not (tokens[0] == Globals.GLUSTER_PROBE_STRING and \
+ tokens[1] == Globals.GLUSTER_PROBE_VERSION and \
+ tokens[2] == idString):
+ continue
+ serverInfoDict[tokens[3]] = [tokens[4], tokens[5]]
+ #print "closing socket %s" % sock
+ sock.close()
+ rlist.remove(sock)
+
+ for sock in rlist:
+ sock.close()
+
+ for k, v in serverInfoDict.iteritems():
+ if v[0]:
+ print v[0]
+ else:
+ print k
+
+ sys.exit(0)
+
+
+if __name__ == "__main__":
+ main()
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/gateway/setup_cifs_config_all.py b/src/com.gluster.storage.management.gateway.scripts/src/gateway/setup_cifs_config_all.py
new file mode 100755
index 00000000..8dd59c8c
--- /dev/null
+++ b/src/com.gluster.storage.management.gateway.scripts/src/gateway/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()
diff --git a/src/com.gluster.storage.management.gateway.scripts/src/gateway/update_volume_cifs_all.py b/src/com.gluster.storage.management.gateway.scripts/src/gateway/update_volume_cifs_all.py
new file mode 100755
index 00000000..c5c9d1ef
--- /dev/null
+++ b/src/com.gluster.storage.management.gateway.scripts/src/gateway/update_volume_cifs_all.py
@@ -0,0 +1,69 @@
+#!/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 Globals
+import Utils
+
+
+def updateVolumeCifsConf(volumeName, userList):
+ try:
+ fp = open(Globals.CIFS_VOLUME_FILE)
+ content = fp.read()
+ fp.close()
+ except IOError, e:
+ Utils.log("failed to read file %s: %s" % (Globals.CIFS_VOLUME_FILE, str(e)))
+ return False
+
+ try:
+ fp = open(Globals.CIFS_VOLUME_FILE, "w")
+ for line in content.split():
+ if line.split(":")[0] == volumeName:
+ fp.write("%s:%s\n" % (volumeName, ":".join(userList)))
+ else:
+ fp.write("%s\n" % line)
+ fp.close()
+ except IOError, e:
+ Utils.log("failed to write file %s: %s" % (Globals.CIFS_VOLUME_FILE, str(e)))
+ return False
+ return True
+
+
+def main():
+ if len(sys.argv) < 4:
+ sys.stderr.write("usage: %s SERVER_FILE VOLUME_NAME USER1 USER2 ...\n" % os.path.basename(sys.argv[0]))
+ sys.exit(-1)
+
+ serverFile = sys.argv[1]
+ volumeName = sys.argv[2]
+ userList = sys.argv[3:]
+
+ missingUserList = []
+ for userName in userList:
+ if not Utils.getCifsUserUid(userName):
+ missingUserList.append(userName)
+
+ if missingUserList:
+ sys.stderr.write("User %s does not exists\n" % missingUserList)
+ sys.exit(1)
+
+
+ rv = Utils.runCommand(["grun.py", serverFile, "update_volume_cifs.py", volumeName] + userList)
+ if rv == 0:
+ if not updateVolumeCifsConf(volumeName, userList):
+ sys.stderr.write("Failed to update volume %s and user-list %s in cifs volume configuration\n" % (volumeName, userList))
+ sys.exit(11)
+ sys.exit(rv)
+
+
+if __name__ == "__main__":
+ main()