diff options
author | Kotresh HR <khiremat@redhat.com> | 2015-04-10 17:03:02 +0530 |
---|---|---|
committer | Vijay Bellur <vbellur@redhat.com> | 2015-04-27 21:02:21 -0700 |
commit | b4d909003851e327d2cf448f9409cf5e31893579 (patch) | |
tree | 91b33c1d8ddb18997af7c6eb462dd53cce9a081d /geo-replication/syncdaemon/master.py | |
parent | ddc8dece96b0c04fca564aa3990f484119713720 (diff) |
geo-rep: Adhering to the common storage for geo-rep
Making geo-rep use the common storage shared by nfs,
snapshot and geo-rep. The meta volume should be named
as gluster_shared_storage, and it should be mounted
at "/var/run/gluster/shared_storage/".
geo-rep will have create a directory called 'geo-rep'
in the meta-volume and all the lock files are created
inside it.
Change-Id: I82d0bff9be191f75f643606a9a21d53559047ac4
BUG: 1210344
Signed-off-by: Kotresh HR <khiremat@redhat.com>
Reviewed-on: http://review.gluster.org/10196
Reviewed-by: Aravinda VK <avishwan@redhat.com>
Tested-by: NetBSD Build System
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Diffstat (limited to 'geo-replication/syncdaemon/master.py')
-rw-r--r-- | geo-replication/syncdaemon/master.py | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/geo-replication/syncdaemon/master.py b/geo-replication/syncdaemon/master.py index b311f4d3591..babf94cbc11 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() |