use of org.openkilda.messaging.nbtopology.response.LinkPropsResponse in project open-kilda by telstra.
the class LinkOperationsBoltTest method shouldCreateLinkProps.
@Test
public void shouldCreateLinkProps() {
SwitchRepository switchRepository = persistenceManager.getRepositoryFactory().createSwitchRepository();
switchRepository.add(Switch.builder().switchId(SWITCH_ID_1).build());
switchRepository.add(Switch.builder().switchId(SWITCH_ID_2).build());
LinkOperationsBolt bolt = new LinkOperationsBolt(persistenceManager);
bolt.prepare(null, topologyContext, null);
LinkPropsPut linkPropsPutRequest = new LinkPropsPut(new LinkPropsDto(new NetworkEndpoint(SWITCH_ID_1, 1), new NetworkEndpoint(SWITCH_ID_2, 1), Collections.emptyMap()));
LinkPropsResponse response = (LinkPropsResponse) bolt.processRequest(null, linkPropsPutRequest).get(0);
assertNotNull(response.getLinkProps());
}
use of org.openkilda.messaging.nbtopology.response.LinkPropsResponse in project open-kilda by telstra.
the class LinkOperationsBolt method dropLinkProps.
private LinkPropsResponse dropLinkProps(LinkPropsDrop request) {
LinkProps linkPropsToDrop = LinkProps.builder().srcSwitchId(request.getPropsMask().getSource().getDatapath()).srcPort(request.getPropsMask().getSource().getPortNumber()).dstSwitchId(request.getPropsMask().getDest().getDatapath()).dstPort(request.getPropsMask().getDest().getPortNumber()).build();
LinkProps reverseLinkPropsToDrop = swapLinkProps(linkPropsToDrop);
try {
LinkProps result = deleteLinkProps(linkPropsToDrop, reverseLinkPropsToDrop);
return new LinkPropsResponse(request, LinkPropsMapper.INSTANCE.map(result), null);
} catch (Exception e) {
log.error("Unhandled exception in drop linkprops operation.", e);
return new LinkPropsResponse(request, null, e.getMessage());
}
}
use of org.openkilda.messaging.nbtopology.response.LinkPropsResponse in project open-kilda by telstra.
the class LinkOperationsBolt method putLinkProps.
private LinkPropsResponse putLinkProps(LinkPropsPut request) {
try {
LinkProps toSetForward = LinkPropsMapper.INSTANCE.map(request.getLinkProps());
LinkProps toSetBackward = swapLinkProps(toSetForward);
LinkProps result = createOrUpdateProps(toSetForward);
createOrUpdateProps(toSetBackward);
return new LinkPropsResponse(request, LinkPropsMapper.INSTANCE.map(result), null);
} catch (LinkPropsException e) {
throw new MessageException(ErrorType.DATA_INVALID, "Can't create/update link props", e.getMessage());
} catch (Exception e) {
log.error("Unhandled exception in create or update linkprops operation.", e);
return new LinkPropsResponse(request, null, e.getMessage());
}
}
use of org.openkilda.messaging.nbtopology.response.LinkPropsResponse 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.messaging.nbtopology.response.LinkPropsResponse 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());
}
Aggregations