diff options
| author | Aravinda VK <avishwan@redhat.com> | 2019-02-21 11:25:55 +0530 | 
|---|---|---|
| committer | Aravinda VK <avishwan@redhat.com> | 2019-02-26 05:11:49 +0000 | 
| commit | e54a8ee281010106e46f67f80494da8cf80908e5 (patch) | |
| tree | 2d210e39f5d4bddcd58e3fb12f75c75982fb8939 | |
| parent | 15403f96941caab4a4aa96630e47a9e831d32302 (diff) | |
eventsapi: Fix Python3 compatibility issues
- Fixed Relative import and non-package import related issues.
- socketserver import issues fix
- Renamed installed directory name to `gfevents` from `events`(To
  avoid any issues with other global libs)
Fixes: bz#1649054
Change-Id: I3dc38bc92b23387a6dfbcc0ab8283178235bf756
Signed-off-by: Aravinda VK <avishwan@redhat.com>
(cherry picked from commit cd68f7b88b9a2c9a4e4ff9fca61517384e54130a)
| -rw-r--r-- | events/src/Makefile.am | 4 | ||||
| -rw-r--r-- | events/src/gf_event.py | 6 | ||||
| -rw-r--r-- | events/src/glustereventsd.py | 7 | ||||
| -rw-r--r-- | events/src/peer_eventsapi.py | 44 | ||||
| -rw-r--r-- | events/src/utils.py | 19 | ||||
| -rw-r--r-- | geo-replication/syncdaemon/syncdutils.py | 10 | ||||
| -rw-r--r-- | glusterfs.spec.in | 5 | 
7 files changed, 52 insertions, 43 deletions
diff --git a/events/src/Makefile.am b/events/src/Makefile.am index 4e83a469cc2..3b229691897 100644 --- a/events/src/Makefile.am +++ b/events/src/Makefile.am @@ -5,7 +5,7 @@ EXTRA_DIST = glustereventsd.py __init__.py  eventsapiconf.py.in \  BUILT_SOURCES = eventtypes.py  CLEANFILES = eventtypes.py -eventsdir = $(GLUSTERFS_LIBEXECDIR)/events +eventsdir = $(GLUSTERFS_LIBEXECDIR)/gfevents  if BUILD_EVENTS  events_PYTHON = __init__.py gf_event.py eventsapiconf.py eventtypes.py \  	utils.py @@ -28,7 +28,7 @@ eventspeerscript_SCRIPTS = peer_eventsapi.py  install-exec-hook:  	$(mkdir_p) $(DESTDIR)$(sbindir)  	rm -f $(DESTDIR)$(sbindir)/glustereventsd -	ln -s $(GLUSTERFS_LIBEXECDIR)/events/glustereventsd.py \ +	ln -s $(GLUSTERFS_LIBEXECDIR)/gfevents/glustereventsd.py \  		$(DESTDIR)$(sbindir)/glustereventsd  	rm -f $(DESTDIR)$(sbindir)/gluster-eventsapi  	ln -s $(GLUSTERFS_LIBEXECDIR)/peer_eventsapi.py \ diff --git a/events/src/gf_event.py b/events/src/gf_event.py index a60adecf867..138dc8e9bd9 100644 --- a/events/src/gf_event.py +++ b/events/src/gf_event.py @@ -13,10 +13,10 @@  import socket  import time -from .eventsapiconf import SERVER_ADDRESS, EVENTS_ENABLED -from .eventtypes import all_events +from gfevents.eventsapiconf import SERVER_ADDRESS, EVENTS_ENABLED +from gfevents.eventtypes import all_events -from .utils import logger, setup_logger, get_config +from gfevents.utils import logger, setup_logger, get_config  # Run this when this lib loads  setup_logger() diff --git a/events/src/glustereventsd.py b/events/src/glustereventsd.py index 324695ecea3..c4c7b65e332 100644 --- a/events/src/glustereventsd.py +++ b/events/src/glustereventsd.py @@ -28,10 +28,13 @@ from eventsapiconf import AUTO_BOOL_ATTRIBUTES, AUTO_INT_ATTRIBUTES  from utils import logger, PidFile, PidFileLockFailed, boolify -class GlusterEventsRequestHandler(SocketServer.BaseRequestHandler): +class GlusterEventsRequestHandler(socketserver.BaseRequestHandler):      def handle(self):          data = self.request[0].strip() +        if sys.version_info >= (3,): +            data = self.request[0].strip().decode("utf-8") +          logger.debug("EVENT: {0} from {1}".format(repr(data),                                                    self.client_address[0]))          try: @@ -98,7 +101,7 @@ def init_event_server():      # Start the Eventing Server, UDP Server      try: -        server = SocketServer.ThreadingUDPServer( +        server = socketserver.ThreadingUDPServer(              (SERVER_ADDRESS, port),              GlusterEventsRequestHandler)      except socket.error as e: diff --git a/events/src/peer_eventsapi.py b/events/src/peer_eventsapi.py index fbfb1d66bb2..e8bd4bd31af 100644 --- a/events/src/peer_eventsapi.py +++ b/events/src/peer_eventsapi.py @@ -27,28 +27,28 @@ from gluster.cliutils import (Cmd, node_output_ok, node_output_notok,                                sync_file_to_peers, GlusterCmdException,                                output_error, execute_in_peers, runcli,                                set_common_args_func) -from events.utils import LockedOpen, get_jwt_token, save_https_cert - -from events.eventsapiconf import (WEBHOOKS_FILE_TO_SYNC, -                                  WEBHOOKS_FILE, -                                  DEFAULT_CONFIG_FILE, -                                  CUSTOM_CONFIG_FILE, -                                  CUSTOM_CONFIG_FILE_TO_SYNC, -                                  EVENTSD, -                                  CONFIG_KEYS, -                                  BOOL_CONFIGS, -                                  INT_CONFIGS, -                                  PID_FILE, -                                  RESTART_CONFIGS, -                                  ERROR_INVALID_CONFIG, -                                  ERROR_WEBHOOK_NOT_EXISTS, -                                  ERROR_CONFIG_SYNC_FAILED, -                                  ERROR_WEBHOOK_ALREADY_EXISTS, -                                  ERROR_PARTIAL_SUCCESS, -                                  ERROR_ALL_NODES_STATUS_NOT_OK, -                                  ERROR_SAME_CONFIG, -                                  ERROR_WEBHOOK_SYNC_FAILED, -                                  CERTS_DIR) +from gfevents.utils import LockedOpen, get_jwt_token, save_https_cert + +from gfevents.eventsapiconf import (WEBHOOKS_FILE_TO_SYNC, +                                    WEBHOOKS_FILE, +                                    DEFAULT_CONFIG_FILE, +                                    CUSTOM_CONFIG_FILE, +                                    CUSTOM_CONFIG_FILE_TO_SYNC, +                                    EVENTSD, +                                    CONFIG_KEYS, +                                    BOOL_CONFIGS, +                                    INT_CONFIGS, +                                    PID_FILE, +                                    RESTART_CONFIGS, +                                    ERROR_INVALID_CONFIG, +                                    ERROR_WEBHOOK_NOT_EXISTS, +                                    ERROR_CONFIG_SYNC_FAILED, +                                    ERROR_WEBHOOK_ALREADY_EXISTS, +                                    ERROR_PARTIAL_SUCCESS, +                                    ERROR_ALL_NODES_STATUS_NOT_OK, +                                    ERROR_SAME_CONFIG, +                                    ERROR_WEBHOOK_SYNC_FAILED, +                                    CERTS_DIR)  def handle_output_error(err, errcode=1, json_output=False): diff --git a/events/src/utils.py b/events/src/utils.py index fcdcbd47acc..38b707a1b28 100644 --- a/events/src/utils.py +++ b/events/src/utils.py @@ -9,6 +9,7 @@  #  cases as published by the Free Software Foundation.  # +import sys  import json  import os  import logging @@ -26,13 +27,15 @@ import hmac  from hashlib import sha256  from calendar import timegm -from .eventsapiconf import (LOG_FILE, -                           WEBHOOKS_FILE, -                           DEFAULT_CONFIG_FILE, -                           CUSTOM_CONFIG_FILE, -                           UUID_FILE, -                           CERTS_DIR) -from . import eventtypes +sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) + +from gfevents.eventsapiconf import (LOG_FILE, +                                    WEBHOOKS_FILE, +                                    DEFAULT_CONFIG_FILE, +                                    CUSTOM_CONFIG_FILE, +                                    UUID_FILE, +                                    CERTS_DIR) +from gfevents import eventtypes  # Webhooks list @@ -387,7 +390,7 @@ class PidFile(object):  def webhook_monitor(proc_queue, webhooks):      queues = {}      for url, data in webhooks.items(): -        if isinstance(data, str) or isinstance(data, unicode): +        if isinstance(data, str):              token = data              secret = None          else: diff --git a/geo-replication/syncdaemon/syncdutils.py b/geo-replication/syncdaemon/syncdutils.py index fd96ca70b2f..5c524c8b8cf 100644 --- a/geo-replication/syncdaemon/syncdutils.py +++ b/geo-replication/syncdaemon/syncdutils.py @@ -37,10 +37,10 @@ from conf import GLUSTERFS_LIBEXECDIR, UUID_FILE  sys.path.insert(1, GLUSTERFS_LIBEXECDIR)  EVENTS_ENABLED = True  try: -    from events.eventtypes import GEOREP_FAULTY as EVENT_GEOREP_FAULTY -    from events.eventtypes import GEOREP_ACTIVE as EVENT_GEOREP_ACTIVE -    from events.eventtypes import GEOREP_PASSIVE as EVENT_GEOREP_PASSIVE -    from events.eventtypes import GEOREP_CHECKPOINT_COMPLETED \ +    from gfevents.eventtypes import GEOREP_FAULTY as EVENT_GEOREP_FAULTY +    from gfevents.eventtypes import GEOREP_ACTIVE as EVENT_GEOREP_ACTIVE +    from gfevents.eventtypes import GEOREP_PASSIVE as EVENT_GEOREP_PASSIVE +    from gfevents.eventtypes import GEOREP_CHECKPOINT_COMPLETED \          as EVENT_GEOREP_CHECKPOINT_COMPLETED  except ImportError:      # Events APIs not installed, dummy eventtypes with None @@ -599,7 +599,7 @@ class ChangelogException(OSError):  def gf_event(event_type, **kwargs):      if EVENTS_ENABLED: -        from events.gf_event import gf_event as gfevent +        from gfevents.gf_event import gf_event as gfevent          gfevent(event_type, **kwargs) diff --git a/glusterfs.spec.in b/glusterfs.spec.in index f366455d569..2fc8c0354b4 100644 --- a/glusterfs.spec.in +++ b/glusterfs.spec.in @@ -1497,7 +1497,7 @@ exit 0  %dir %{_sharedstatedir}/glusterd  %dir %{_sharedstatedir}/glusterd/events  %dir %{_libexecdir}/glusterfs -     %{_libexecdir}/glusterfs/events +     %{_libexecdir}/glusterfs/gfevents       %{_libexecdir}/glusterfs/peer_eventsapi.py*  %{_sbindir}/glustereventsd  %{_sbindir}/gluster-eventsapi @@ -1510,6 +1510,9 @@ exit 0  %endif  %changelog +* Sun Feb 24 2019 Aravinda VK <avishwan@redhat.com> +- Renamed events package to gfevents +  * Thu Feb 21 2019 Jiffin Tony Thottan <jthottan@redhat.com>  - Obsoleting gluster-gnfs package  | 
