use of org.openkilda.messaging.nbtopology.response.FlowLoopsResponse in project open-kilda by telstra.
the class FlowOperationsBolt method processGetFlowLoopsRequest.
private List<InfoData> processGetFlowLoopsRequest(GetFlowLoopsRequest request) {
try {
SwitchId switchId = request.getSwitchId() == null ? null : new SwitchId(request.getSwitchId());
List<FlowLoopDto> flowLoops = flowOperationsService.getLoopedFlows(request.getFlowId(), switchId).stream().map(this::map).collect(Collectors.toList());
FlowLoopsResponse flowLoopsResponse = new FlowLoopsResponse();
flowLoopsResponse.setPayload(flowLoops);
return Collections.singletonList(flowLoopsResponse);
} catch (Exception e) {
throw new MessageException(ErrorType.INTERNAL_ERROR, "Can not dump flow loops", "Internal Error");
}
}
use of org.openkilda.messaging.nbtopology.response.FlowLoopsResponse in project open-kilda by telstra.
the class FlowServiceImpl method getFlowLoops.
@Override
public CompletableFuture<List<FlowLoopResponse>> getFlowLoops(String flowId, String switchId) {
logger.info("Get flow loops for flow {} and switch {}", flowId, switchId);
GetFlowLoopsRequest request = new GetFlowLoopsRequest(flowId, switchId);
CommandMessage message = new CommandMessage(request, System.currentTimeMillis(), RequestCorrelationId.getId(), Destination.WFM);
return messagingChannel.sendAndGet(nbworkerTopic, message).thenApply(result -> Optional.of(result).map(FlowLoopsResponse.class::cast).map(FlowLoopsResponse::getPayload).orElse(Collections.emptyList()).stream().map(flowMapper::toFlowLoopResponse).collect(Collectors.toList()));
}
Aggregations