private void removeProcessorStreamMapping(TopologyProcessor topologyProcessor, List<Long> streamIds) { if (topologyProcessor != null) { for (Long outputStreamId : streamIds) { TopologyProcessorStreamMap mapping = new TopologyProcessorStreamMap(topologyProcessor.getId(), topologyProcessor.getVersionId(), outputStreamId); dao.<TopologyProcessorStreamMap>remove(mapping.getStorableKey()); } } }
private List<Long> getOutputStreamIds(TopologyProcessor topologyProcessor) { List<Long> streamIds = new ArrayList<>(); if (topologyProcessor != null) { QueryParam qp1 = new QueryParam(TopologyProcessorStreamMap.FIELD_PROCESSOR_ID, String.valueOf(topologyProcessor.getId())); QueryParam qp2 = new QueryParam(TopologyProcessorStreamMap.FIELD_VERSION_ID, String.valueOf(topologyProcessor.getVersionId())); for (TopologyProcessorStreamMap mapping : listTopologyProcessorStreamMapping(ImmutableList.of(qp1, qp2))) { streamIds.add(mapping.getStreamId()); } } return streamIds; }
private void setReconfigureTarget(TopologyStream stream) { // reconfigure all targets of processors that use this output stream List<QueryParam> params = QueryParam.params( TopologyProcessorStreamMap.FIELD_VERSION_ID, String.valueOf(stream.getVersionId()), TopologyProcessorStreamMap.FIELD_STREAM_ID, String.valueOf(stream.getId())); listTopologyProcessorStreamMapping(params) .stream() .map(sm -> getTopologyProcessor(stream.getTopologyId(), sm.getProcessorId(), sm.getVersionId())) .flatMap(p -> getEdgesFrom(p).stream()) .filter(e -> e.getStreamGroupings().stream().map(StreamGrouping::getStreamId).anyMatch(sgid -> sgid.equals(stream.getId()))) .forEach(e -> setReconfigureTarget(e, stream)); // reconfigure all targets of source that use this output stream params = QueryParam.params( TopologySourceStreamMap.FIELD_VERSION_ID, String.valueOf(stream.getVersionId()), TopologySourceStreamMap.FIELD_STREAM_ID, String.valueOf(stream.getId())); listTopologySourceStreamMapping(params) .stream() .map(sm -> getTopologySource(stream.getTopologyId(), sm.getSourceId(), sm.getVersionId())) .flatMap(source -> getEdgesFrom(source).stream()) .filter(e -> e.getStreamGroupings().stream().map(StreamGrouping::getStreamId).anyMatch(sgid -> sgid.equals(stream.getId()))) .forEach(e -> setReconfigureTarget(e, stream)); }
private void addProcessorStreamMapping(TopologyProcessor topologyProcessor, List<Long> streamIds) { for (Long outputStreamId : streamIds) { dao.<TopologyProcessorStreamMap>add(new TopologyProcessorStreamMap(topologyProcessor.getId(), topologyProcessor.getVersionId(), outputStreamId)); } }
private void createProcessorStreamMapping(TopologyProcessor topologyProcessor, List<TopologyStream> streams) { for (TopologyStream outputStream : streams) { TopologyStream addedStream = addStreamInfo(topologyProcessor.getTopologyId(), outputStream); dao.<TopologyProcessorStreamMap>add(new TopologyProcessorStreamMap(topologyProcessor.getId(), topologyProcessor.getVersionId(), addedStream.getId())); } }
private List<TopologyStream> getOutputStreams(TopologyProcessor topologyProcessor) { List<TopologyStream> streams = new ArrayList<>(); if (topologyProcessor != null) { QueryParam qp1 = new QueryParam(TopologyProcessorStreamMap.FIELD_PROCESSOR_ID, String.valueOf(topologyProcessor.getId())); QueryParam qp2 = new QueryParam(TopologyProcessorStreamMap.FIELD_VERSION_ID, String.valueOf(topologyProcessor.getVersionId())); for (TopologyProcessorStreamMap mapping : listTopologyProcessorStreamMapping(ImmutableList.of(qp1, qp2))) { TopologyStream topologyStream = getStreamInfo(topologyProcessor.getTopologyId(), mapping.getStreamId(), topologyProcessor.getVersionId()); if (topologyStream != null) { streams.add(topologyStream); } } } return streams; }