cluster_configure: Hack ctdbd socket location in smb.conf template
authorMartin Schwenke <martin@meltin.net>
Fri, 11 Oct 2013 05:11:52 +0000 (16:11 +1100)
committerMartin Schwenke <martin@meltin.net>
Fri, 11 Oct 2013 08:50:48 +0000 (19:50 +1100)
Signed-off-by: Martin Schwenke <martin@meltin.net>
base/all/root/scripts/cluster_configure/cluster-configure.py
base/all/root/scripts/cluster_configure/templates/rhel/50.samba/3.4#/files/etc/samba/smb.conf

index 19d7640e188a3110086a0be3456b60378eebac0a..217f3b5f7fd25670aefe67cc9f03ecba34d74488 100755 (executable)
@@ -349,6 +349,30 @@ def load_plugins():
     
         plugins[f] = __import__(f)
 
+def ctdb_socket():
+
+    ret = os.getenv('CTDB_SOCKET')
+
+    if ret is None:
+        ctdb = '/usr/bin/ctdb'
+        if os.path.exists(ctdb):
+            cmd = "strings " + ctdb + " | grep  -E '/ctdbd?\.socket$'"
+            p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
+            out = p.communicate()[0]
+            status = p.wait()
+            if status == 0:
+                ret = string.rstrip(out)
+            else:
+                logger.warning('Failed to find socket path in "' + ctdb +
+                               '" - falling back to default')
+        else:
+            logger.warning('Failed to find "' + ctdb +
+                           '" - falling back to default')
+    if ret is None:
+        ret = '/var/run/ctdb/ctdbd.socket'
+
+    return ret
+
 def main():
     global config, options, logger
 
index 6071476ce3b292b9e5b888f9f339071d8eb45aff..dc57bfc230b9620e0fe04fdff4042210c84296b2 100644 (file)
@@ -3,6 +3,7 @@
        clustering=yes
        ctdb:registry.tdb=yes
        private dir=!!gpfs_default_mountpoint!!/.ctdb/
+       ctdbd socket = !!|ctdb_socket()!!
 
        security = !!|"ADS" if self.config.get("package:samba", "auth_method") == "winbind" else "USER"!!
        auth methods = guest sam !!|"winbind" if self.config.get("package:samba", "auth_method") == "winbind" else ""!!