diff options
author | Aravinda VK <avishwan@redhat.com> | 2016-09-21 17:43:00 +0530 |
---|---|---|
committer | Aravinda VK <avishwan@redhat.com> | 2016-09-28 23:22:28 -0700 |
commit | 567dee257e092401cdf0a62d4b89e13c39a0a5aa (patch) | |
tree | ed022b6e9df583bccdfb3566bbe2533cd512e083 | |
parent | 4721188a154acd9a0a4c096d8d73e97f3bf1b2a9 (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.py | 4 | ||||
-rw-r--r-- | geo-replication/syncdaemon/syncdutils.py | 13 |
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): |