use of org.openkilda.topology.domain.Flow in project open-kilda by telstra.
the class FlowServiceImplTest method updateFlow.
@Test
public void updateFlow() throws Exception {
long updatedBandwidth = 20000L;
FlowEndpointPayload firstEndpoint = new FlowEndpointPayload(srcSwitchId, 10, 100);
FlowEndpointPayload secondEndpoint = new FlowEndpointPayload(dstSwitchId, 20, 100);
FlowPayload flowPayload = new FlowPayload(flowId, 0L, secondEndpoint, firstEndpoint, 10000L, "", "", OutputVlanType.NONE);
FlowPayload newFlowPayload = new FlowPayload(flowId, 0L, secondEndpoint, firstEndpoint, updatedBandwidth, "", "", OutputVlanType.NONE);
flowService.createFlow(flowPayload, DEFAULT_CORRELATION_ID);
flowService.updateFlow(newFlowPayload, DEFAULT_CORRELATION_ID);
Set<Flow> flows = flowRepository.findByFlowId(flowId);
assertNotNull(flows);
assertFalse(flows.isEmpty());
assertEquals(2, flows.size());
for (Flow flow : flowRepository.findAll()) {
assertEquals(flowId, flow.getFlowId());
assertEquals(updatedBandwidth, flow.getBandwidth());
}
}
use of org.openkilda.topology.domain.Flow in project open-kilda by telstra.
the class FlowServiceImpl method pathFlow.
/**
* {@inheritDoc}
*/
@Override
public InfoMessage pathFlow(final FlowIdStatusPayload payload, final String correlationId) {
Set<Flow> flows = flowRepository.findByFlowId(payload.getId());
FlowPathPayload flowPathPayload = null;
for (Flow flow : flows) {
if ((flow.getCookie() & DIRECT_FLOW_COOKIE) == DIRECT_FLOW_COOKIE) {
flowPathPayload = new FlowPathPayload(flow.getFlowId(), flow.getFlowPath());
}
}
logger.debug("Flow with id={} path: {}", payload.getId(), flowPathPayload);
return new InfoMessage(new FlowPathResponse(flowPathPayload), System.currentTimeMillis(), correlationId, Destination.WFM);
}
use of org.openkilda.topology.domain.Flow in project open-kilda by telstra.
the class FlowServiceImpl method buildFlow.
/**
* Creates flow for further saving in database.
*
* @return {@link ImmutablePair} of direct and reverse {@link Flow} instances
*/
private Flow buildFlow(final List<Isl> path, final Switch source, final Switch destination, final FlowPayload payload, final int transitVlanId, final long cookie) {
List<String> pathToStore = new ArrayList<>(path.size() + 1);
pathToStore.add(payload.getSource().getSwitchId());
for (Isl isl : path) {
pathToStore.add(isl.getDestinationSwitch());
}
Flow flow = new Flow(source, destination, payload.getId(), cookie, pathToStore, payload.getMaximumBandwidth(), payload.getSource().getSwitchId(), payload.getSource().getPortId(), payload.getSource().getVlanId(), payload.getDestination().getSwitchId(), payload.getDestination().getPortId(), payload.getDestination().getVlanId(), payload.getDescription(), getTime(), transitVlanId);
logger.debug("Flow prepared: flow={}", flow);
return flow;
}
use of org.openkilda.topology.domain.Flow in project open-kilda by telstra.
the class FlowServiceImpl method getFlow.
/**
* {@inheritDoc}
*/
@Override
public InfoMessage getFlow(final FlowIdStatusPayload payload, final String correlationId) {
Set<Flow> flows = flowRepository.findByFlowId(payload.getId());
if (flows == null || flows.isEmpty()) {
logger.error("Flow with id={} not found", payload.getId());
throw new MessageException(ErrorType.NOT_FOUND, System.currentTimeMillis());
}
FlowResponse response = null;
for (Flow flow : flows) {
if ((flow.getCookie() & DIRECT_FLOW_COOKIE) == DIRECT_FLOW_COOKIE) {
response = new FlowResponse(getFlowPayloadByFlow(flow));
}
}
logger.debug("Flow with id={} get: {}", payload.getId(), response);
return new InfoMessage(response, System.currentTimeMillis(), correlationId, Destination.WFM);
}
use of org.openkilda.topology.domain.Flow in project open-kilda by telstra.
the class FlowServiceImplTest method deleteFlow.
@Test
public void deleteFlow() throws Exception {
FlowEndpointPayload firstEndpoint = new FlowEndpointPayload(srcSwitchId, 10, 100);
FlowEndpointPayload secondEndpoint = new FlowEndpointPayload(dstSwitchId, 20, 100);
FlowPayload flowPayload = new FlowPayload(flowId, 0L, secondEndpoint, firstEndpoint, 10000L, "", "", OutputVlanType.NONE);
FlowIdStatusPayload flowIdStatusPayload = new FlowIdStatusPayload(flowId);
flowService.createFlow(flowPayload, DEFAULT_CORRELATION_ID);
flowService.deleteFlow(flowIdStatusPayload, DEFAULT_CORRELATION_ID);
Set<Flow> flows = flowRepository.findByFlowId(flowId);
assertNotNull(flows);
assertTrue(flows.isEmpty());
}
Aggregations