16 package org.openkilda.northbound.service.impl;
41 import org.slf4j.Logger;
42 import org.slf4j.LoggerFactory;
43 import org.springframework.beans.factory.annotation.Autowired;
44 import org.springframework.beans.factory.annotation.Value;
45 import org.springframework.stereotype.Service;
47 import java.util.ArrayList;
48 import java.util.List;
49 import java.util.stream.Collectors;
54 private static final Logger logger = LoggerFactory.getLogger(
LinkServiceImpl.class);
65 @Value(
"#{kafkaTopicsConfig.getTopoEngTopic()}")
66 private String topologyEngineTopic;
71 @Value(
"#{kafkaTopicsConfig.getTopoNbTopic()}")
72 private String nbworkerTopic;
89 logger.debug(
"Get links request received");
91 messageProducer.send(nbworkerTopic, request);
92 List<IslInfoData> links = linksCollector.getResult(correlationId);
95 .map(linkMapper::toLinkDto)
96 .collect(Collectors.toList());
102 logger.debug(
"Get link properties request received");
106 messageProducer.send(nbworkerTopic, message);
107 List<LinkPropsData> links = linksPropsCollector.getResult(correlationId);
109 logger.debug(
"Found link props items: {}", links.size());
110 return links.stream()
111 .map(linkPropsMapper::toDto)
112 .collect(Collectors.toList());
117 logger.debug(
"Link props \"SET\" request received (consists of {} records)", linkPropsList.size());
119 ArrayList<String> pendingRequest =
new ArrayList<>(linkPropsList.size());
124 messageProducer.send(topologyEngineTopic, message);
126 pendingRequest.add(requestId);
129 int successCount = 0;
130 ArrayList<String> errors =
new ArrayList<>(pendingRequest.size());
131 for (String requestId : pendingRequest) {
138 errors.add(response.getError());
142 return new BatchResults(linkPropsList.size() - successCount, successCount, errors);
147 ArrayList<String> pendingChains =
new ArrayList<>();
152 messageProducer.send(topologyEngineTopic, message);
154 pendingChains.add(requestId);
157 int successCount = 0;
158 ArrayList<String> errors =
new ArrayList<>();
159 for (String requestId : pendingChains) {
160 List<LinkPropsResponse> responseBatch = teLinksCollector.getResult(requestId);
162 if (response.isSuccess()) {
165 errors.add(response.getError());
170 return new BatchResults(errors.size(), successCount, errors);
List< LinkPropsDto > getLinkProps(SwitchId srcSwitch, Integer srcPort, SwitchId dstSwitch, Integer dstPort)
List< LinkDto > getLinks()
BatchResults delLinkProps(List< LinkPropsDto > linkPropsList)
BatchResults setLinkProps(List< LinkPropsDto > linkPropsList)