From f8c19b4c6af34b96747881bcb85cddb87484f08e Mon Sep 17 00:00:00 2001 From: Csaba Henk Date: Tue, 30 Oct 2012 15:54:05 +0100 Subject: geo-rep / gsyncd,glusterd: do not hardcode socket path ... in gsyncd python code. Indeed, use the configuration mechanism to set it suitably from glusterd. Change-Id: I9fe2088b14d28588d1e64fe892740cc5755b8365 BUG: 868877 Signed-off-by: Csaba Henk Reviewed-on: http://review.gluster.org/4143 Tested-by: Gluster Build System Reviewed-by: Anand Avati --- xlators/features/marker/utils/syncdaemon/gsyncd.py | 1 + xlators/features/marker/utils/syncdaemon/master.py | 6 ++++-- xlators/mgmt/glusterd/src/glusterd-geo-rep.c | 2 ++ xlators/mgmt/glusterd/src/glusterd-utils.c | 5 ++--- xlators/mgmt/glusterd/src/glusterd-utils.h | 2 ++ xlators/mgmt/glusterd/src/glusterd.c | 5 +++++ 6 files changed, 16 insertions(+), 5 deletions(-) diff --git a/xlators/features/marker/utils/syncdaemon/gsyncd.py b/xlators/features/marker/utils/syncdaemon/gsyncd.py index 9e946946932..d7deca86c6b 100644 --- a/xlators/features/marker/utils/syncdaemon/gsyncd.py +++ b/xlators/features/marker/utils/syncdaemon/gsyncd.py @@ -173,6 +173,7 @@ def main_i(): op.add_option('--sync-jobs', metavar='N', type=int, default=3) op.add_option('--turns', metavar='N', type=int, default=0, help=SUPPRESS_HELP) op.add_option('--allow-network', metavar='IPS', default='') + op.add_option('--socketdir', metavar='DIR') op.add_option('--state-socket-unencoded', metavar='SOCKF', type=str, action='callback', callback=store_abs) op.add_option('--checkpoint', metavar='LABEL', default='') # tunables for failover/failback mechanism: diff --git a/xlators/features/marker/utils/syncdaemon/master.py b/xlators/features/marker/utils/syncdaemon/master.py index 336f5920711..19cb09e7be5 100644 --- a/xlators/features/marker/utils/syncdaemon/master.py +++ b/xlators/features/marker/utils/syncdaemon/master.py @@ -496,10 +496,12 @@ class GMasterBase(object): def start_checkpoint_thread(self): """prepare and start checkpoint service""" - if self.checkpoint_thread or not getattr(gconf, 'state_socket_unencoded', None): + if self.checkpoint_thread or not ( + getattr(gconf, 'state_socket_unencoded', None) and getattr(gconf, 'socketdir', None) + ): return chan = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) - state_socket = "/tmp/%s.socket" % md5(gconf.state_socket_unencoded).hexdigest() + state_socket = os.path.join(gconf.socketdir, md5(gconf.state_socket_unencoded).hexdigest() + ".socket") try: os.unlink(state_socket) except: diff --git a/xlators/mgmt/glusterd/src/glusterd-geo-rep.c b/xlators/mgmt/glusterd/src/glusterd-geo-rep.c index 3661d9d01de..b0e3a38dfb9 100644 --- a/xlators/mgmt/glusterd/src/glusterd-geo-rep.c +++ b/xlators/mgmt/glusterd/src/glusterd-geo-rep.c @@ -30,6 +30,8 @@ static char *gsync_reserved_opts[] = { "pid-file", "state-file", "session-owner", + "state-socket-unencoded", + "socketdir", NULL }; diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c index 6c2870238bd..5395e0a9cc7 100644 --- a/xlators/mgmt/glusterd/src/glusterd-utils.c +++ b/xlators/mgmt/glusterd/src/glusterd-utils.c @@ -70,7 +70,6 @@ #define CEILING_POS(X) (((X)-(int)(X)) > 0 ? (int)((X)+1) : (int)(X)) -char *glusterd_sock_dir = "/var/run"; static glusterd_lock_t lock; static void @@ -1091,7 +1090,7 @@ glusterd_set_socket_filepath (char *sock_filepath, char *sockpath, size_t len) char md5_sum[MD5_DIGEST_LENGTH*2+1] = {0,}; md5_wrapper ((unsigned char *) sock_filepath, strlen(sock_filepath), md5_sum); - snprintf (sockpath, len, "%s/%s.socket", glusterd_sock_dir, md5_sum); + snprintf (sockpath, len, "%s/%s.socket", GLUSTERD_SOCK_DIR, md5_sum); } void @@ -1106,7 +1105,7 @@ glusterd_set_brick_socket_filepath (glusterd_volinfo_t *volinfo, glusterd_conf_t *priv = NULL; int expected_file_len = 0; - expected_file_len = strlen (glusterd_sock_dir) + strlen ("/") + + expected_file_len = strlen (GLUSTERD_SOCK_DIR) + strlen ("/") + MD5_DIGEST_LENGTH*2 + strlen (".socket") + 1; GF_ASSERT (len >= expected_file_len); this = THIS; diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.h b/xlators/mgmt/glusterd/src/glusterd-utils.h index 3f956deee67..00353b03e03 100644 --- a/xlators/mgmt/glusterd/src/glusterd-utils.h +++ b/xlators/mgmt/glusterd/src/glusterd-utils.h @@ -28,6 +28,8 @@ #include "rpc-clnt.h" #include "protocol-common.h" +#define GLUSTERD_SOCK_DIR "/var/run" + struct glusterd_lock_ { uuid_t owner; time_t timestamp; diff --git a/xlators/mgmt/glusterd/src/glusterd.c b/xlators/mgmt/glusterd/src/glusterd.c index c4629c795da..f9cdb65ae55 100644 --- a/xlators/mgmt/glusterd/src/glusterd.c +++ b/xlators/mgmt/glusterd/src/glusterd.c @@ -567,6 +567,11 @@ configure_syncdaemon (glusterd_conf_t *conf) runner_add_args (&runner, ".", ".", NULL); RUN_GSYNCD_CMD; + /* socketdir */ + runinit_gsyncd_setrx (&runner, conf); + runner_add_args (&runner, "socketdir", GLUSTERD_SOCK_DIR, ".", ".", NULL); + RUN_GSYNCD_CMD; + /* log-file */ runinit_gsyncd_setrx (&runner, conf); runner_add_args (&runner, -- cgit