use of org.openkilda.northbound.dto.v1.links.LinkPropsDto in project open-kilda by telstra.
the class JsonSerializationTest method linksPropsDtoTest.
@Test
public void linksPropsDtoTest() throws IOException {
LinkPropsDto dto = new LinkPropsDto(SWITCH_ID, 0, SWITCH_ID, 1, Collections.singletonMap("key", "val"));
assertEquals(dto, pass(dto, LinkPropsDto.class));
}
use of org.openkilda.northbound.dto.v1.links.LinkPropsDto in project open-kilda by telstra.
the class LinkServiceImpl method setLinkProps.
@Override
public CompletableFuture<BatchResults> setLinkProps(List<LinkPropsDto> linkPropsList) {
logger.debug("Link props \"SET\" request received (consists of {} records)", linkPropsList.size());
List<String> errors = new ArrayList<>();
List<CompletableFuture<?>> pendingRequest = new ArrayList<>(linkPropsList.size());
for (LinkPropsDto requestItem : linkPropsList) {
org.openkilda.messaging.model.LinkPropsDto linkProps;
try {
linkProps = linkPropsMapper.toLinkProps(requestItem);
} catch (IllegalArgumentException e) {
errors.add(e.getMessage());
continue;
}
LinkPropsPut commandRequest = new LinkPropsPut(linkProps);
String requestId = idFactory.produceChained(RequestCorrelationId.getId());
CommandMessage message = new CommandMessage(commandRequest, System.currentTimeMillis(), requestId);
pendingRequest.add(messagingChannel.sendAndGet(nbworkerTopic, message));
}
return collectResponses(pendingRequest, LinkPropsResponse.class).thenApply(responses -> getLinkPropsResult(responses, errors));
}
use of org.openkilda.northbound.dto.v1.links.LinkPropsDto in project open-kilda by telstra.
the class LinkServiceTest method dropLinkProps.
@Test
public void dropLinkProps() {
final String correlationId = getClass().getCanonicalName();
LinkPropsDto input = new LinkPropsDto("ff:fe:00:00:00:00:00:01", 8, "ff:fe:00:00:00:00:00:05", null, null);
LinkPropsDrop request = new LinkPropsDrop(new LinkPropsMask(new NetworkEndpointMask(new SwitchId(input.getSrcSwitch()), input.getSrcPort()), new NetworkEndpointMask(new SwitchId(input.getDstSwitch()), input.getDstPort())));
org.openkilda.messaging.model.LinkPropsDto linkProps = new org.openkilda.messaging.model.LinkPropsDto(new NetworkEndpoint(new SwitchId(input.getSrcSwitch()), input.getSrcPort()), new NetworkEndpoint(new SwitchId("ff:fe:00:00:00:00:00:02"), 9), new HashMap<>());
LinkPropsResponse payload = new LinkPropsResponse(request, linkProps, null);
String requestIdBatch = idFactory.produceChained(String.valueOf(requestIdIndex++), correlationId);
messageExchanger.mockChunkedResponse(requestIdBatch, Collections.singletonList(payload));
RequestCorrelationId.create(correlationId);
BatchResults result = linkService.delLinkProps(Collections.singletonList(input)).join();
assertThat(result.getFailures(), is(0));
assertThat(result.getSuccesses(), is(1));
assertTrue(result.getMessages().isEmpty());
}
use of org.openkilda.northbound.dto.v1.links.LinkPropsDto in project open-kilda by telstra.
the class LinkServiceTest method putLinkProps.
@Test
public void putLinkProps() {
final String correlationId = getClass().getCanonicalName();
HashMap<String, String> requestProps = new HashMap<>();
requestProps.put("test", "value");
org.openkilda.messaging.model.LinkPropsDto linkProps = new org.openkilda.messaging.model.LinkPropsDto(new NetworkEndpoint(new SwitchId("ff:fe:00:00:00:00:00:01"), 8), new NetworkEndpoint(new SwitchId("ff:fe:00:00:00:00:00:02"), 9), requestProps);
LinkPropsRequest request = new LinkPropsPut(linkProps);
LinkPropsResponse payload = new LinkPropsResponse(request, linkProps, null);
String subCorrelationId = idFactory.produceChained(String.valueOf(requestIdIndex++), correlationId);
messageExchanger.mockResponse(subCorrelationId, payload);
LinkPropsDto inputItem = new LinkPropsDto(linkProps.getSource().getDatapath().toString(), linkProps.getSource().getPortNumber(), linkProps.getDest().getDatapath().toString(), linkProps.getDest().getPortNumber(), requestProps);
RequestCorrelationId.create(correlationId);
BatchResults result = linkService.setLinkProps(Collections.singletonList(inputItem)).join();
assertThat(result.getFailures(), is(0));
assertThat(result.getSuccesses(), is(1));
assertTrue(result.getMessages().isEmpty());
}
use of org.openkilda.northbound.dto.v1.links.LinkPropsDto in project open-kilda by telstra.
the class NorthboundServiceImpl method getLinkProps.
@Override
public List<LinkPropsDto> getLinkProps(SwitchId srcSwitch, Integer srcPort, SwitchId dstSwitch, Integer dstPort) {
UriComponentsBuilder uriBuilder = UriComponentsBuilder.fromUriString("/api/v1/link/props");
if (srcSwitch != null) {
uriBuilder.queryParam("src_switch", srcSwitch);
}
if (srcPort != null) {
uriBuilder.queryParam("src_port", srcPort);
}
if (dstSwitch != null) {
uriBuilder.queryParam("dst_switch", dstSwitch);
}
if (dstPort != null) {
uriBuilder.queryParam("dst_port", dstPort);
}
LinkPropsDto[] linkProps = restTemplate.exchange(uriBuilder.build().toString(), HttpMethod.GET, new HttpEntity(buildHeadersWithCorrelationId()), LinkPropsDto[].class).getBody();
return Arrays.asList(linkProps);
}
Aggregations