|
24 | 24 | import org.graylog.plugins.pipelineprocessor.processors.PipelineInterpreter; |
25 | 25 | import org.graylog.plugins.pipelineprocessor.simulator.PipelineInterpreterTracer; |
26 | 26 | import org.graylog2.database.NotFoundException; |
27 | | -import org.graylog2.indexer.messages.DocumentNotFoundException; |
28 | | -import org.graylog2.indexer.messages.Messages; |
29 | | -import org.graylog2.indexer.results.ResultMessage; |
30 | 27 | import org.graylog2.messageprocessors.OrderedMessageProcessors; |
31 | 28 | import org.graylog2.plugin.Message; |
32 | 29 | import org.graylog2.plugin.messageprocessors.MessageProcessor; |
33 | 30 | import org.graylog2.plugin.rest.PluginRestResource; |
34 | 31 | import org.graylog2.plugin.streams.Stream; |
35 | 32 | import org.graylog2.rest.models.messages.responses.ResultMessageSummary; |
| 33 | +import org.graylog2.rest.resources.messages.MessageResource; |
36 | 34 | import org.graylog2.shared.rest.resources.RestResource; |
37 | 35 | import org.graylog2.shared.security.RestPermissions; |
38 | 36 | import org.graylog2.streams.StreamService; |
|
54 | 52 | @RequiresAuthentication |
55 | 53 | public class SimulatorResource extends RestResource implements PluginRestResource { |
56 | 54 | private final OrderedMessageProcessors orderedMessageProcessors; |
57 | | - private final Messages messages; |
| 55 | + private final MessageResource messageResource; |
58 | 56 | private final StreamService streamService; |
59 | 57 |
|
60 | 58 | @Inject |
61 | | - public SimulatorResource(OrderedMessageProcessors orderedMessageProcessors, Messages messages, StreamService streamService) { |
| 59 | + public SimulatorResource(OrderedMessageProcessors orderedMessageProcessors, MessageResource messageResource, StreamService streamService) { |
62 | 60 | this.orderedMessageProcessors = orderedMessageProcessors; |
63 | | - this.messages = messages; |
| 61 | + this.messageResource = messageResource; |
64 | 62 | this.streamService = streamService; |
65 | 63 | } |
66 | 64 |
|
67 | 65 | @ApiOperation(value = "Simulate the execution of the pipeline message processor") |
68 | 66 | @POST |
69 | 67 | @RequiresPermissions(PipelineRestPermissions.PIPELINE_RULE_READ) |
70 | 68 | public SimulationResponse simulate(@ApiParam(name = "simulation", required = true) @NotNull SimulationRequest request) throws NotFoundException { |
71 | | - checkPermission(RestPermissions.MESSAGES_READ, request.messageId()); |
72 | 69 | checkPermission(RestPermissions.STREAMS_READ, request.streamId()); |
73 | | - try { |
74 | | - final ResultMessage resultMessage = messages.get(request.messageId(), request.index()); |
75 | | - final Message message = resultMessage.getMessage(); |
76 | | - if (!request.streamId().equals("default")) { |
77 | | - final Stream stream = streamService.load(request.streamId()); |
78 | | - message.addStream(stream); |
79 | | - } |
80 | 70 |
|
81 | | - final List<ResultMessageSummary> simulationResults = new ArrayList<>(); |
82 | | - final PipelineInterpreterTracer pipelineInterpreterTracer = new PipelineInterpreterTracer(); |
| 71 | + final Message message = new Message(request.message()); |
| 72 | + if (!request.streamId().equals("default")) { |
| 73 | + final Stream stream = streamService.load(request.streamId()); |
| 74 | + message.addStream(stream); |
| 75 | + } |
| 76 | + |
| 77 | + final List<ResultMessageSummary> simulationResults = new ArrayList<>(); |
| 78 | + final PipelineInterpreterTracer pipelineInterpreterTracer = new PipelineInterpreterTracer(); |
83 | 79 |
|
84 | | - for (MessageProcessor messageProcessor : orderedMessageProcessors) { |
85 | | - if (messageProcessor instanceof PipelineInterpreter) { |
86 | | - org.graylog2.plugin.Messages processedMessages = ((PipelineInterpreter)messageProcessor).process(message, pipelineInterpreterTracer.getSimulatorInterpreterListener()); |
87 | | - for (Message processedMessage : processedMessages) { |
88 | | - simulationResults.add(ResultMessageSummary.create(null, processedMessage.getFields(), "")); |
89 | | - } |
| 80 | + for (MessageProcessor messageProcessor : orderedMessageProcessors) { |
| 81 | + if (messageProcessor instanceof PipelineInterpreter) { |
| 82 | + org.graylog2.plugin.Messages processedMessages = ((PipelineInterpreter) messageProcessor).process(message, pipelineInterpreterTracer.getSimulatorInterpreterListener()); |
| 83 | + for (Message processedMessage : processedMessages) { |
| 84 | + simulationResults.add(ResultMessageSummary.create(null, processedMessage.getFields(), "")); |
90 | 85 | } |
91 | 86 | } |
92 | | - |
93 | | - return SimulationResponse.create(simulationResults, pipelineInterpreterTracer.getExecutionTrace(), pipelineInterpreterTracer.took()); |
94 | | - } catch (DocumentNotFoundException e) { |
95 | | - throw new NotFoundException(e); |
96 | 87 | } |
| 88 | + |
| 89 | + return SimulationResponse.create(simulationResults, pipelineInterpreterTracer.getExecutionTrace(), pipelineInterpreterTracer.took()); |
97 | 90 | } |
98 | 91 | } |
0 commit comments