From 61c8fa54e596eab121d44569c5eec2717865a87d 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: https://code.engineering.redhat.com/gerrit/173 Reviewed-by: Vijay Bellur Tested-by: Vijay Bellur --- 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(-) (limited to 'xlators') 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 93013912e6a..6ed24d6a6ea 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 9e2a8c7d6a9..15b12d25d55 100644 --- a/xlators/mgmt/glusterd/src/glusterd-geo-rep.c +++ b/xlators/mgmt/glusterd/src/glusterd-geo-rep.c @@ -40,6 +40,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 d8612ba21a0..06f84257b63 100644 --- a/xlators/mgmt/glusterd/src/glusterd-utils.c +++ b/xlators/mgmt/glusterd/src/glusterd-utils.c @@ -81,7 +81,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 @@ -1049,7 +1048,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 @@ -1064,7 +1063,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 70caf2482ad..cac2ec4c678 100644 --- a/xlators/mgmt/glusterd/src/glusterd-utils.h +++ b/xlators/mgmt/glusterd/src/glusterd-utils.h @@ -38,6 +38,8 @@ #include "rpc-clnt.h" #include "protocol-common.h" +#define GLUSTERD_SOCK_DIR "/var/run" + /* For brick search using path: partial or complete */ typedef enum { GF_PATH_COMPLETE = 0, diff --git a/xlators/mgmt/glusterd/src/glusterd.c b/xlators/mgmt/glusterd/src/glusterd.c index a61dd19275c..9e16b07ee9e 100644 --- a/xlators/mgmt/glusterd/src/glusterd.c +++ b/xlators/mgmt/glusterd/src/glusterd.c @@ -539,6 +539,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