diff options
| author | Aravinda VK <avishwan@redhat.com> | 2016-08-17 13:46:00 +0530 | 
|---|---|---|
| committer | Atin Mukherjee <amukherj@redhat.com> | 2016-08-30 18:34:59 -0700 | 
| commit | b71ae7d77d7ab1581d266f6435d134958844d0db (patch) | |
| tree | 1e2044ee1c7d7ec4dc5a620693484fb091ffb2c9 /events/src/gf_event.py | |
| parent | c1f5cf0bda47fc34725084ee3988b0efe2dcfc8a (diff) | |
eventsapi: Add support for Client side Events
Client side gf_event uses ctx->cmd_args.volfile_server to push
notifications to the eventsd.
Socket server changed from Unix domain socket to UDP to support
external events.
Following to be addressed in different patch
- Port used for eventsd is 24009. Make it configurable
  Already configurable in Server side. Configurable in gf_event API
  is required.
- Auth Token yet to be added as discussed in
  https://www.gluster.org/pipermail/gluster-devel/2016-August/050324.html
Change-Id: I159acf80b681d10b82d52cfb3ffdf85cb896542d
BUG: 1367774
Signed-off-by: Aravinda VK <avishwan@redhat.com>
Reviewed-on: http://review.gluster.org/15189
Smoke: Gluster Build System <jenkins@build.gluster.org>
Reviewed-by: Prashanth Pai <ppai@redhat.com>
Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
Diffstat (limited to 'events/src/gf_event.py')
| -rw-r--r-- | events/src/gf_event.py | 20 | 
1 files changed, 15 insertions, 5 deletions
diff --git a/events/src/gf_event.py b/events/src/gf_event.py index 20dfc8a4f17..f9ece6adc28 100644 --- a/events/src/gf_event.py +++ b/events/src/gf_event.py @@ -16,7 +16,7 @@ import time  from eventsapiconf import SERVER_ADDRESS, EVENTS_ENABLED  from eventtypes import all_events -from utils import logger, setup_logger +from utils import logger, setup_logger, get_config  # Run this when this lib loads  setup_logger() @@ -31,10 +31,9 @@ def gf_event(event_type, **kwargs):          return      try: -        client = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) -        client.connect(SERVER_ADDRESS) +        client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)      except socket.error as e: -        logger.error("Unable to connect to events.sock: {0}".format(e)) +        logger.error("Unable to connect to events Server: {0}".format(e))          return      # Convert key value args into KEY1=VALUE1;KEY2=VALUE2;.. @@ -45,7 +44,18 @@ def gf_event(event_type, **kwargs):      # <TIMESTAMP> <EVENT_TYPE> <MSG>      msg = "{0} {1} {2}".format(int(time.time()), event_type, msg.strip(";")) +    port = get_config("port") +    if port is None: +        logger.error("Unable to get eventsd port details") +        return +      try: -        client.sendall(msg) +        sent = client.sendto(msg, (SERVER_ADDRESS, port)) +        assert sent == len(msg)      except socket.error as e:          logger.error("Unable to Send message: {0}".format(e)) +    except AssertionError: +        logger.error("Unable to send message. Sent: {0}, Actual: {1}".format( +            sent, len(msg))) +    finally: +        client.close()  | 
