use of org.graylog.plugins.pipelineprocessor.rest.PipelineConnections in project graylog2-server by Graylog2.
the class LegacyDefaultStreamMigration method doRun.
@Override
public void doRun() {
try {
final PipelineConnections defaultConnections = connectionsService.load(LEGACY_STREAM_ID);
connectionsService.save(defaultConnections.toBuilder().streamId(Stream.DEFAULT_STREAM_ID).build());
connectionsService.delete(LEGACY_STREAM_ID);
clusterConfigService.write(LegacyDefaultStreamMigrated.create(true));
LOG.info("Pipeline connections to legacy default streams migrated successfully.");
} catch (NotFoundException e) {
LOG.info("Legacy default stream has no connections, no migration needed.");
}
}
use of org.graylog.plugins.pipelineprocessor.rest.PipelineConnections in project graylog2-server by Graylog2.
the class MongoDbPipelineStreamConnectionsService method save.
@Override
public PipelineConnections save(PipelineConnections connections) {
PipelineConnections existingConnections = dbCollection.findOne(DBQuery.is("stream_id", connections.streamId()));
if (existingConnections == null) {
existingConnections = PipelineConnections.create(null, connections.streamId(), Collections.emptySet());
}
final PipelineConnections toSave = existingConnections.toBuilder().pipelineIds(connections.pipelineIds()).build();
final WriteResult<PipelineConnections, String> save = dbCollection.save(toSave);
final PipelineConnections savedConnections = save.getSavedObject();
clusterBus.post(PipelineConnectionsChangedEvent.create(savedConnections.streamId(), savedConnections.pipelineIds()));
return savedConnections;
}
use of org.graylog.plugins.pipelineprocessor.rest.PipelineConnections in project graylog2-server by Graylog2.
the class MongoDbPipelineStreamConnectionsService method delete.
@Override
public void delete(String streamId) {
try {
final PipelineConnections connections = load(streamId);
final Set<String> pipelineIds = connections.pipelineIds();
dbCollection.removeById(connections.id());
clusterBus.post(PipelineConnectionsChangedEvent.create(streamId, pipelineIds));
} catch (NotFoundException e) {
log.debug("No connections found for stream " + streamId);
}
}
use of org.graylog.plugins.pipelineprocessor.rest.PipelineConnections in project graylog2-server by Graylog2.
the class PipelineFacade method resolveNativeEntity.
@Override
public Graph<EntityDescriptor> resolveNativeEntity(EntityDescriptor entityDescriptor) {
final MutableGraph<EntityDescriptor> mutableGraph = GraphBuilder.directed().build();
mutableGraph.addNode(entityDescriptor);
final ModelId modelId = entityDescriptor.id();
try {
final PipelineDao pipelineDao = pipelineService.load(modelId.id());
final String pipelineSource = pipelineDao.source();
final Collection<String> referencedRules = referencedRules(pipelineSource);
referencedRules.stream().map(ModelId::of).map(id -> EntityDescriptor.create(id, ModelTypes.PIPELINE_RULE_V1)).forEach(rule -> mutableGraph.putEdge(entityDescriptor, rule));
final Set<PipelineConnections> pipelineConnections = connectionsService.loadByPipelineId(pipelineDao.id());
pipelineConnections.stream().map(PipelineConnections::streamId).map(ModelId::of).map(id -> EntityDescriptor.create(id, ModelTypes.STREAM_V1)).forEach(stream -> mutableGraph.putEdge(entityDescriptor, stream));
} catch (NotFoundException e) {
LOG.debug("Couldn't find pipeline {}", entityDescriptor, e);
}
return ImmutableGraph.copyOf(mutableGraph);
}
use of org.graylog.plugins.pipelineprocessor.rest.PipelineConnections in project graylog2-server by Graylog2.
the class PipelineFacadeTest method exportEntity.
@Test
public void exportEntity() {
final PipelineDao pipeline = PipelineDao.builder().id("pipeline-1234").title("title").description("description").source("pipeline \"Test\"\nstage 0 match either\nrule \"debug\"\nend").build();
final PipelineConnections connections = PipelineConnections.create("id", "stream-1234", Collections.singleton("pipeline-1234"));
connectionsService.save(connections);
final EntityDescriptor descriptor = EntityDescriptor.create(pipeline.id(), ModelTypes.PIPELINE_V1);
final EntityDescriptor streamDescriptor = EntityDescriptor.create("stream-1234", ModelTypes.STREAM_V1);
final EntityDescriptorIds entityDescriptorIds = EntityDescriptorIds.of(descriptor, streamDescriptor);
final Entity entity = facade.exportNativeEntity(pipeline, entityDescriptorIds);
assertThat(entity).isInstanceOf(EntityV1.class);
assertThat(entity.id()).isEqualTo(ModelId.of(entityDescriptorIds.get(descriptor).orElse(null)));
assertThat(entity.type()).isEqualTo(ModelTypes.PIPELINE_V1);
final EntityV1 entityV1 = (EntityV1) entity;
final PipelineEntity pipelineEntity = objectMapper.convertValue(entityV1.data(), PipelineEntity.class);
assertThat(pipelineEntity.title()).isEqualTo(ValueReference.of("title"));
assertThat(pipelineEntity.description()).isEqualTo(ValueReference.of("description"));
assertThat(pipelineEntity.source().asString(Collections.emptyMap())).startsWith("pipeline \"Test\"");
assertThat(pipelineEntity.connectedStreams()).containsOnly(ValueReference.of(entityDescriptorIds.get(streamDescriptor).orElse(null)));
}
Aggregations