summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAravinda VK <avishwan@redhat.com>2016-09-21 17:43:00 +0530
committerAravinda VK <avishwan@redhat.com>2016-09-28 23:22:28 -0700
commit567dee257e092401cdf0a62d4b89e13c39a0a5aa (patch)
treeed022b6e9df583bccdfb3566bbe2533cd512e083
parent4721188a154acd9a0a4c096d8d73e97f3bf1b2a9 (diff)
eventsapi/geo-rep: Geo-rep will not work without eventsapi rpms
If glusterfs-events rpm is not installed, Geo-replication will fail since it imports eventtypes. Any call to gsyncd will fail with Import error. Glusterd start fails since it runs `gsyncd.py --version` Traceback (most recent call last): File "/usr/libexec/glusterfs/python/syncdaemon/gsyncd.py", line 29, in <module> from syncdutils import FreeObject, norm, grabpidfile, finalize File "/usr/libexec/glusterfs/python/syncdaemon/syncdutils.py", line 28, in <module> from events import eventtypes ImportError: No module named events BUG: 1378057 Change-Id: I1a9bc086c3d52449ec7296cb2f9ceb16cd41a8a4 Signed-off-by: Aravinda VK <avishwan@redhat.com> Reviewed-on: http://review.gluster.org/15539 NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org> CentOS-regression: Gluster Build System <jenkins@build.gluster.org> Smoke: Gluster Build System <jenkins@build.gluster.org> Reviewed-by: Saravanakumar Arumugam <sarumuga@redhat.com> Reviewed-by: Kotresh HR <khiremat@redhat.com>
-rw-r--r--geo-replication/syncdaemon/monitor.py4
-rw-r--r--geo-replication/syncdaemon/syncdutils.py13
2 files changed, 12 insertions, 5 deletions
diff --git a/geo-replication/syncdaemon/monitor.py b/geo-replication/syncdaemon/monitor.py
index a624fe44d8e..22cd1cc3a86 100644
--- a/geo-replication/syncdaemon/monitor.py
+++ b/geo-replication/syncdaemon/monitor.py
@@ -25,7 +25,7 @@ from gconf import gconf
from syncdutils import select, waitpid, errno_wrap
from syncdutils import set_term_handler, is_host_local, GsyncdError
from syncdutils import escape, Thread, finalize, memoize
-from syncdutils import gf_event, eventtypes
+from syncdutils import gf_event, EVENT_GEOREP_FAULTY
from gsyncdstatus import GeorepStatus, set_monitor_status
@@ -375,7 +375,7 @@ class Monitor(object):
ret = exit_status(ret)
if ret in (0, 1):
self.status[w[0]['dir']].set_worker_status(self.ST_FAULTY)
- gf_event(eventtypes.GEOREP_FAULTY,
+ gf_event(EVENT_GEOREP_FAULTY,
master_volume=master.volume,
master_node=w[0]['host'],
slave_host=slave_host,
diff --git a/geo-replication/syncdaemon/syncdutils.py b/geo-replication/syncdaemon/syncdutils.py
index 8629850cd40..5dabbeaccef 100644
--- a/geo-replication/syncdaemon/syncdutils.py
+++ b/geo-replication/syncdaemon/syncdutils.py
@@ -25,7 +25,13 @@ from os import waitpid as owaitpid
from conf import GLUSTERFS_LIBEXECDIR
sys.path.insert(1, GLUSTERFS_LIBEXECDIR)
-from events import eventtypes
+EVENTS_ENABLED = True
+try:
+ from events.eventtypes import GEOREP_FAULTY as EVENT_GEOREP_FAULTY
+except ImportError:
+ # Events APIs not installed, dummy eventtypes with None
+ EVENTS_ENABLED = False
+ EVENT_GEOREP_FAULTY = None
try:
from cPickle import PickleError
@@ -516,8 +522,9 @@ class ChangelogException(OSError):
def gf_event(event_type, **kwargs):
- from events.gf_event import gf_event as gfevent
- gfevent(event_type, **kwargs)
+ if EVENTS_ENABLED:
+ from events.gf_event import gf_event as gfevent
+ gfevent(event_type, **kwargs)
class GlusterLogLevel(object):