Search in sources :

Example 1 with RulesSyncResult

use of org.openkilda.northbound.dto.v1.switches.RulesSyncResult in project open-kilda by telstra.

the class JsonSerializationTest method rulesSyncResultTest.

@Test
public void rulesSyncResultTest() throws IOException {
    RulesSyncResult dto = new RulesSyncResult(singletonList(0L), singletonList(1L), singletonList(2L), singletonList(3L));
    assertEquals(dto, pass(dto, RulesSyncResult.class));
}
Also used : RulesSyncResult(org.openkilda.northbound.dto.v1.switches.RulesSyncResult) Test(org.junit.Test)

Example 2 with RulesSyncResult

use of org.openkilda.northbound.dto.v1.switches.RulesSyncResult in project open-kilda by telstra.

the class SwitchServiceTest method shouldSynchronizeRules.

@Test
public void shouldSynchronizeRules() throws Exception {
    String correlationId = "sync-rules";
    RequestCorrelationId.create(correlationId);
    Long missingRule = 100L;
    Long misconfiguredRule = 11L;
    Long excessRule = 101L;
    Long properRule = 10L;
    SwitchId switchId = new SwitchId(1L);
    RulesSyncEntry rulesSyncEntry = new RulesSyncEntry(singletonList(missingRule), singletonList(misconfiguredRule), singletonList(properRule), singletonList(excessRule), singletonList(missingRule), singletonList(excessRule));
    SwitchSyncResponse rules = new SwitchSyncResponse(switchId, rulesSyncEntry, MetersSyncEntry.builder().build(), GroupSyncEntry.builder().build(), LogicalPortsSyncEntry.builder().build());
    messageExchanger.mockResponse(correlationId, rules);
    RulesSyncResult result = switchService.syncRules(switchId).get();
    assertThat(result.getMissingRules(), is(singletonList(missingRule)));
    assertThat(result.getInstalledRules(), is(singletonList(missingRule)));
    assertThat(result.getExcessRules(), is(singletonList(excessRule)));
    assertThat(result.getInstalledRules(), is(singletonList(missingRule)));
}
Also used : RulesSyncEntry(org.openkilda.messaging.info.switches.RulesSyncEntry) SwitchId(org.openkilda.model.SwitchId) SwitchSyncResponse(org.openkilda.messaging.info.switches.SwitchSyncResponse) RulesSyncResult(org.openkilda.northbound.dto.v1.switches.RulesSyncResult) Test(org.junit.Test)

Example 3 with RulesSyncResult

use of org.openkilda.northbound.dto.v1.switches.RulesSyncResult in project open-kilda by telstra.

the class StubServiceFactory method getNorthboundStub.

/**
 * Get a stub for {@link NorthboundService}. The instance is tied to the factory state.
 */
public NorthboundService getNorthboundStub() {
    NorthboundService serviceMock = mock(NorthboundService.class);
    when(serviceMock.getActiveSwitches()).thenAnswer(invocation -> topologyDefinition.getActiveSwitches().stream().map(sw -> new SwitchDto(sw.getDpId(), "", 0, "", "", SwitchChangeType.ACTIVATED, false, "", "", "", "", "", "", new SwitchLocationDto(0.0, 0.0, "", "", ""))).collect(toList()));
    when(serviceMock.getActiveLinks()).thenAnswer(invocation -> topologyDefinition.getIslsForActiveSwitches().stream().flatMap(link -> Stream.of(IslInfoData.builder().latency(0).source(new PathNode(link.getSrcSwitch().getDpId(), link.getSrcPort(), 0)).destination(new PathNode(link.getDstSwitch().getDpId(), link.getDstPort(), 1)).speed(link.getMaxBandwidth()).state(IslChangeType.DISCOVERED).availableBandwidth(0).build(), IslInfoData.builder().latency(0).source(new PathNode(link.getDstSwitch().getDpId(), link.getDstPort(), 0)).destination(new PathNode(link.getSrcSwitch().getDpId(), link.getSrcPort(), 1)).speed(link.getMaxBandwidth()).state(IslChangeType.DISCOVERED).availableBandwidth(0).build())).collect(toList()));
    when(serviceMock.getAllFlows()).thenReturn(new ArrayList<>(flowPayloads.values()));
    when(serviceMock.getFlow(any())).thenAnswer(invocation -> {
        String flowId = (String) invocation.getArguments()[0];
        return flowPayloads.containsKey(flowId) ? SerializationUtils.clone(flowPayloads.get(flowId)) : null;
    });
    when(serviceMock.getFlowStatus(any())).thenAnswer(invocation -> {
        String flowId = (String) invocation.getArguments()[0];
        return flows.containsKey(flowId) ? new FlowIdStatusPayload(flowId, FlowState.UP) : null;
    });
    when(serviceMock.addFlow(any())).thenAnswer(invocation -> {
        FlowPayload result = SerializationUtils.clone(((FlowPayload) invocation.getArguments()[0]));
        result.setLastUpdated(LocalTime.now().toString());
        result.setStatus(FlowState.IN_PROGRESS.toString());
        putFlow(result.getId(), result);
        return result;
    });
    when(serviceMock.updateFlow(any(), any())).thenAnswer(invocation -> {
        String flowId = (String) invocation.getArguments()[0];
        FlowPayload result = SerializationUtils.clone(((FlowPayload) invocation.getArguments()[1]));
        result.setLastUpdated(LocalTime.now().toString());
        putFlow(flowId, result);
        return result;
    });
    when(serviceMock.deleteFlow(any())).thenAnswer(invocation -> {
        String flowId = (String) invocation.getArguments()[0];
        flows.remove(flowId);
        return flowPayloads.remove(flowId);
    });
    when(serviceMock.synchronizeSwitchRules(any())).thenReturn(new RulesSyncResult(emptyList(), emptyList(), emptyList(), emptyList()));
    when(serviceMock.validateSwitchRules(any())).thenReturn(new RulesValidationResult(emptyList(), emptyList(), emptyList()));
    return serviceMock;
}
Also used : FlowPayload(org.openkilda.messaging.payload.flow.FlowPayload) RulesValidationResult(org.openkilda.northbound.dto.v1.switches.RulesValidationResult) SwitchDto(org.openkilda.northbound.dto.v1.switches.SwitchDto) FlowIdStatusPayload(org.openkilda.messaging.payload.flow.FlowIdStatusPayload) NorthboundService(org.openkilda.testing.service.northbound.NorthboundService) SwitchLocationDto(org.openkilda.northbound.dto.v1.switches.SwitchLocationDto) PathNode(org.openkilda.messaging.info.event.PathNode) RulesSyncResult(org.openkilda.northbound.dto.v1.switches.RulesSyncResult)

Aggregations

RulesSyncResult (org.openkilda.northbound.dto.v1.switches.RulesSyncResult)3 Test (org.junit.Test)2 PathNode (org.openkilda.messaging.info.event.PathNode)1 RulesSyncEntry (org.openkilda.messaging.info.switches.RulesSyncEntry)1 SwitchSyncResponse (org.openkilda.messaging.info.switches.SwitchSyncResponse)1 FlowIdStatusPayload (org.openkilda.messaging.payload.flow.FlowIdStatusPayload)1 FlowPayload (org.openkilda.messaging.payload.flow.FlowPayload)1 SwitchId (org.openkilda.model.SwitchId)1 RulesValidationResult (org.openkilda.northbound.dto.v1.switches.RulesValidationResult)1 SwitchDto (org.openkilda.northbound.dto.v1.switches.SwitchDto)1 SwitchLocationDto (org.openkilda.northbound.dto.v1.switches.SwitchLocationDto)1 NorthboundService (org.openkilda.testing.service.northbound.NorthboundService)1