Skip to content

Commit

Permalink
Fake event module result
Browse files Browse the repository at this point in the history
Sensu Go backend processes events in asynchronous fashion, which makes
it almost impossible to retrieve the processed event shortly after it
has been sent to the backend.

Currently, after we submit an event, we query the backend for the last
event. What we get back is one of the following three options:

 1. nothing, if our event is the first event ever and the backend did
    not manage to process it yet;
 2. previous event, if there is at least one preexisting event on the
    backend and our event has not been processed yet;
 3. our actual event, if the backend processed our event fast enough.

In the real world setting, the third scenario almost never happens,
which means that our event module is returning bogus results most of
the time.

To rectify the situation, we now simply return back the payload we sent
to the backend. This ensures that we return back relevant pieces of
information instead of some random or event or even none.
  • Loading branch information
Tadej Borovšak authored and aljazkosir committed Jun 2, 2020
1 parent 4e72371 commit cfba7c4
Showing 1 changed file with 4 additions and 5 deletions.
9 changes: 4 additions & 5 deletions plugins/modules/event.py
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@

RETURN = '''
object:
description: object representing Sensu event
description: object representing Sensu event (deprecated)
returned: success
type: dict
'''
Expand Down Expand Up @@ -221,10 +221,9 @@ def _build_api_payload(client, params):


def send_event(client, path, payload, check_mode):
if check_mode:
return True, payload
utils.put(client, path, payload)
return True, utils.get(client, path)
if not check_mode:
utils.put(client, path, payload)
return True, payload


def main():
Expand Down

0 comments on commit cfba7c4

Please sign in to comment.