summaryrefslogtreecommitdiffstats
path: root/geo-replication/syncdaemon/master.py
diff options
context:
space:
mode:
Diffstat (limited to 'geo-replication/syncdaemon/master.py')
-rw-r--r--geo-replication/syncdaemon/master.py30
1 files changed, 20 insertions, 10 deletions
diff --git a/geo-replication/syncdaemon/master.py b/geo-replication/syncdaemon/master.py
index 7707efa7cea..0de384b73b0 100644
--- a/geo-replication/syncdaemon/master.py
+++ b/geo-replication/syncdaemon/master.py
@@ -454,9 +454,23 @@ class GMasterCommon(object):
"""Take management volume lock """
bname = str(gconf.volume_id) + "_subvol_" + str(gconf.subvol_num) \
+ ".lock"
- path = os.path.join(gconf.working_dir, gconf.meta_volume, bname)
+ mgmt_lock_dir = os.path.join(gconf.meta_volume_mnt, "geo-rep")
+ path = os.path.join(mgmt_lock_dir, bname)
logging.debug("lock_file_path: %s" % path)
- fd = os.open(path, os.O_CREAT | os.O_RDWR)
+ try:
+ fd = os.open(path, os.O_CREAT | os.O_RDWR)
+ except OSError:
+ ex = sys.exc_info()[1]
+ if ex.errno == ENOENT:
+ logging.info("Creating geo-rep directory in meta volume...")
+ try:
+ os.makedirs(mgmt_lock_dir)
+ except OSError:
+ ex = sys.exc_info()[1]
+ if ex.errno == EEXIST:
+ pass
+ else:
+ raise
try:
fcntl.lockf(fd, fcntl.LOCK_EX | fcntl.LOCK_NB)
except:
@@ -472,16 +486,12 @@ class GMasterCommon(object):
def should_crawl(self):
- if not gconf.meta_volume:
+ if not gconf.use_meta_volume:
return gconf.glusterd_uuid in self.master.server.node_uuid()
- mgmt_mnt = os.path.join(gconf.working_dir, gconf.meta_volume)
- if not os.path.ismount(mgmt_mnt):
- po = Popen(["mount", "-t", "glusterfs", "localhost:%s"
- % gconf.meta_volume, mgmt_mnt], stdout=PIPE,
- stderr=PIPE)
- po.wait()
- po.terminate_geterr()
+ if not os.path.ismount(gconf.meta_volume_mnt):
+ logging.error("Meta-volume is not mounted. Worker Exiting...")
+ sys.exit(1)
return self.mgmt_lock()