diff options
Diffstat (limited to 'xlators')
| -rwxr-xr-x | xlators/features/marker/utils/gsyncd.in | 50 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd.c | 2 | 
2 files changed, 51 insertions, 1 deletions
diff --git a/xlators/features/marker/utils/gsyncd.in b/xlators/features/marker/utils/gsyncd.in index c34fea1a198..a7af8c0b0b4 100755 --- a/xlators/features/marker/utils/gsyncd.in +++ b/xlators/features/marker/utils/gsyncd.in @@ -3,5 +3,53 @@  prefix="@prefix@"  exec_prefix="@exec_prefix@"  libexecdir=`eval echo "@libexecdir@"` +sbindir=`eval echo "@sbindir@"` -exec @PYTHON@ "$libexecdir"/glusterfs/python/syncdaemon/gsyncd.py "$@" +gluster="$sbindir"/gluster + +# glusterd service autodetection + +config_wanted=1 +if [ "$_GLUSTERD_CALLED_" = 1 ]; then +    # OK, we know glusterd called us, no need to look for further config +    config_wanted=0 +    # ... altough this conclusion should not inherit to our children +    unset _GLUSTERD_CALLED_ +else +    # look for a -c option -- if present, we are already configured. + +    for a in "$@"; do +        # -c found, see if it has an argument +        if [ "$one_more_arg" = 1 ]; then +            if echo "$a" | grep -qv ^-; then +                config_wanted=0 +                break +            fi +            one_more_arg=0 +        fi + +        if [ "$a" = -c ] || [ "$a" = --config-file ]; then +            one_more_arg=1 +            continue +        fi + +        if echo $a | grep -qE '^(-c.|--config-file=)'; then +            config_wanted=0; +            break +        fi +    done + +fi + +if [ $config_wanted = 1 ]; then +    wd="`${gluster} system:: getwd`" +    if [ $? -eq 0 ]; then +        config_file="$wd/geo-replication/gsyncd.conf" +    fi +fi + +if [ -z "$config_file" ]; then +    exec @PYTHON@ "$libexecdir"/glusterfs/python/syncdaemon/gsyncd.py "$@" +else +    exec @PYTHON@ "$libexecdir"/glusterfs/python/syncdaemon/gsyncd.py -c "$config_file" "$@" +fi diff --git a/xlators/mgmt/glusterd/src/glusterd.c b/xlators/mgmt/glusterd/src/glusterd.c index 9048edc2602..4d98fafd7ee 100644 --- a/xlators/mgmt/glusterd/src/glusterd.c +++ b/xlators/mgmt/glusterd/src/glusterd.c @@ -238,6 +238,8 @@ configure_syncaemon (xlator_t *this, const char *workdir)          char cmd[4096] = {0,};          int blen = 0; +        setenv ("_GLUSTERD_CALLED_", "1", 1); +          snprintf (voldir, PATH_MAX, "%s/"GEOREP, workdir);          ret = mkdir (voldir, 0777);          if ((-1 == ret) && (errno != EEXIST)) {  | 
