@@ -20,6 +20,15 @@ def _wait(self, condition, attempts, sleep_duration=1):
20
20
print (self ._server .extract_all_logs ())
21
21
raise ServerTimeoutError ()
22
22
23
+ def _waitWithParam (self , condition , attempts , contion_args , sleep_duration = 1 ):
24
+ count = 0
25
+ while not condition (contion_args ):
26
+ time .sleep (sleep_duration )
27
+ count += 1
28
+ if count > attempts :
29
+ print (self ._server .extract_all_logs ())
30
+ raise ServerTimeoutError ()
31
+
23
32
def _wait_until_graylog_has_started (self ):
24
33
"""
25
34
We wait until the default deflector is up, as it seems to be the last operation done on startup
@@ -54,14 +63,25 @@ def create_correlation_count(self, *args, **kwargs):
54
63
def get_events (self ):
55
64
return self ._api .get_events ()
56
65
57
- def get_events_count (self ):
58
- events = self .get_events ()
59
- return events ['total_events' ]
60
-
61
- def _has_event (self ):
62
- events_count = self .get_events_count ()
66
+ def get_events_count (self , event_definition_type = None ):
67
+ response = self .get_events ()
68
+ total = response ['total_events' ]
69
+ if event_definition_type is None :
70
+ return total
71
+ result = 0
72
+ for i in range (total ):
73
+ event = response ['events' ][i ]['event' ]
74
+ if event ['event_definition_type' ] == event_definition_type :
75
+ result += 1
76
+ return result
77
+
78
+ def _has_event (self , event_definition_type = None ):
79
+ events_count = self .get_events_count (event_definition_type )
63
80
return events_count == 1
64
81
65
- def wait_until_event (self ):
66
- self ._wait (self ._has_event , 60 )
82
+ def wait_until_event (self , event_definition_type = None ):
83
+ if event_definition_type is None :
84
+ self ._wait (self ._has_event , 60 )
85
+ else :
86
+ self ._waitWithParam (self ._has_event , 60 , event_definition_type )
67
87
0 commit comments