graylog2-server icon indicating copy to clipboard operation
graylog2-server copied to clipboard

EventDefinitions can be enabled more than once

Open mpfz0r opened this issue 4 years ago • 1 comments

The {definitionId}/schedule endpoint does not check whether an EventDefinition is already enabled. This will lead to additional jobdefinitions and triggers, which will break the UI.

Expected Behavior

The request should be ignored

Possible Solution

--- graylog2-server/src/main/java/org/graylog/events/processor/EventDefinitionHandler.java
+++ graylog2-server/src/main/java/org/graylog/events/processor/EventDefinitionHandler.java
@@ -211,6 +211,10 @@ public class EventDefinitionHandler {
 
     private void createJobDefinitionAndTrigger(EventDefinitionDto eventDefinition,
                                                EventProcessorSchedulerConfig schedulerConfig) {
+        if (getJobDefinition(eventDefinition).isPresent()) {
+            LOG.warn("Not creating a second job definition for EventDefintion <{}>", eventDefinition);
+            return;
+        }
         final JobDefinitionDto jobDefinition = createJobDefinition(eventDefinition, schedulerConfig);
 

Steps to Reproduce (for bugs)

Call PUT to the schedule endpoint more than once.

mpfz0r avatar Apr 22 '21 14:04 mpfz0r

push. has same problem

aaron791109 avatar Sep 01 '22 09:09 aaron791109