Skip to content

Commit 5037d19

Browse files
committed
Added events() and send_events() functions (closes #13, #14)
1 parent 444d8d5 commit 5037d19

4 files changed

Lines changed: 24 additions & 6 deletions

File tree

riemann_client/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
"""A Python Riemann client and command line tool"""
22

3-
__version__ = '4.1.2'
3+
__version__ = '5.0.0-dev'
44
__author__ = 'Sam Clements <sam.clements@datasift.com>'

riemann_client/client.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,23 @@ def create_event(data):
3939
setattr(event, name, value)
4040
return event
4141

42-
def send_event(self, event):
43-
"""Wraps an event in a message and sends it to Riemann"""
42+
def send_events(self, events):
43+
"""Wraps a list of events in a message and sends them to Riemann"""
4444
message = riemann_client.riemann_pb2.Msg()
45-
message.events.add().MergeFrom(event)
45+
for event in events:
46+
message.events.add().MergeFrom(event)
4647
return self.transport.send(message)
4748

49+
def send_event(self, event):
50+
"""Sends a single event to Riemann using send_events()"""
51+
return self.send_events((event,))
52+
53+
def events(self, *events):
54+
"""Sends multiple events, calling create_event() on each dict passed"""
55+
return self.send_events(self.create_event(e) for e in events)
56+
4857
def event(self, **data):
49-
"""Sends an event"""
58+
"""Sends an event, using keyword arguments to create an Event"""
5059
return self.send_event(self.create_event(data))
5160

5261
@staticmethod

riemann_client/tests/test_riemann_client.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,15 @@ def test_udp_query(self):
6363
with py.test.raises(Exception):
6464
client.query('true')
6565

66+
def test_events(self, client):
67+
message = client.events({'service': 'one'}, {'service': 'two'})
68+
assert message.events[0].service == 'one'
69+
assert message.events[1].service == 'two'
70+
71+
def test_events_len(self, client):
72+
message = client.events({'service': 'one'}, {'service': 'two'})
73+
assert len(message.events) == 2
74+
6675

6776
@py.test.fixture
6877
def event(unique):

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
setuptools.setup(
66
name='riemann-client',
7-
version='4.1.2',
7+
version='5.0.0-dev',
88

99
author="Sam Clements",
1010
author_email="sam.clements@datasift.com",

0 commit comments

Comments
 (0)