Search in sources :

Example 6 with CommonFlowDescriptor

use of org.openkilda.wfm.topology.stats.model.CommonFlowDescriptor in project open-kilda by telstra.

the class KildaEntryCacheServiceTest method shouldCompleteMeterStats.

@Test
public void shouldCompleteMeterStats() {
    Flow flow = buildFlow();
    MeterStatsData statsOrigin = getMeterStatsDataSrcSwitch();
    service.completeAndForwardMeterStats(statsOrigin);
    verify(carrier, atLeastOnce()).emitMeterStats(meterCacheCaptor.capture());
    List<MeterStatsAndDescriptor> statsEntries = meterCacheCaptor.getValue().getStatsEntries();
    assertDescriptionPopulation(statsEntries, statsOrigin.getStats().size(), 0);
    FlowPath forwardPath = flow.getForwardPath();
    UpdateFlowPathInfo pathInfo = new UpdateFlowPathInfo(flow.getFlowId(), flow.getYFlowId(), forwardPath.getCookie(), forwardPath.getMeterId(), FlowPathMapper.INSTANCE.mapToPathNodes(forwardPath));
    service.addOrUpdateCache(pathInfo);
    service.completeAndForwardMeterStats(statsOrigin);
    verify(carrier, atLeastOnce()).emitMeterStats(meterCacheCaptor.capture());
    statsEntries = meterCacheCaptor.getValue().getStatsEntries();
    assertDescriptionPopulation(statsEntries, statsOrigin.getStats().size(), 1);
    assertMeterCache(statsEntries, forwardPath.getMeterId().getValue(), new CommonFlowDescriptor(flow.getSrcSwitchId(), INGRESS, flow.getFlowId(), forwardPath.getCookie(), forwardPath.getMeterId()));
    FlowPath protectedForwardPath = flow.getProtectedForwardPath();
    UpdateFlowPathInfo pathInfo2 = new UpdateFlowPathInfo(flow.getFlowId(), flow.getYFlowId(), protectedForwardPath.getCookie(), protectedForwardPath.getMeterId(), FlowPathMapper.INSTANCE.mapToPathNodes(protectedForwardPath));
    service.addOrUpdateCache(pathInfo2);
    service.completeAndForwardMeterStats(statsOrigin);
    verify(carrier, atLeastOnce()).emitMeterStats(meterCacheCaptor.capture());
    statsEntries = meterCacheCaptor.getValue().getStatsEntries();
    assertDescriptionPopulation(statsEntries, statsOrigin.getStats().size(), 2);
    assertMeterCache(statsEntries, forwardPath.getMeterId().getValue(), new CommonFlowDescriptor(flow.getSrcSwitchId(), INGRESS, flow.getFlowId(), forwardPath.getCookie(), forwardPath.getMeterId()));
    assertMeterCache(statsEntries, protectedForwardPath.getMeterId().getValue(), new CommonFlowDescriptor(flow.getSrcSwitchId(), INGRESS, flow.getFlowId(), protectedForwardPath.getCookie(), protectedForwardPath.getMeterId()));
}
Also used : MeterStatsData(org.openkilda.messaging.info.stats.MeterStatsData) MeterStatsAndDescriptor(org.openkilda.wfm.topology.stats.model.MeterStatsAndDescriptor) CommonFlowDescriptor(org.openkilda.wfm.topology.stats.model.CommonFlowDescriptor) UpdateFlowPathInfo(org.openkilda.messaging.info.stats.UpdateFlowPathInfo) FlowPath(org.openkilda.model.FlowPath) Flow(org.openkilda.model.Flow) YFlow(org.openkilda.model.YFlow) Test(org.junit.Test)

Aggregations

Test (org.junit.Test)6 Flow (org.openkilda.model.Flow)6 YFlow (org.openkilda.model.YFlow)6 CommonFlowDescriptor (org.openkilda.wfm.topology.stats.model.CommonFlowDescriptor)6 FlowPath (org.openkilda.model.FlowPath)5 UpdateFlowPathInfo (org.openkilda.messaging.info.stats.UpdateFlowPathInfo)4 FlowStatsData (org.openkilda.messaging.info.stats.FlowStatsData)3 MeterStatsData (org.openkilda.messaging.info.stats.MeterStatsData)3 FlowStatsAndDescriptor (org.openkilda.wfm.topology.stats.model.FlowStatsAndDescriptor)3 MeterStatsAndDescriptor (org.openkilda.wfm.topology.stats.model.MeterStatsAndDescriptor)3 RemoveFlowPathInfo (org.openkilda.messaging.info.stats.RemoveFlowPathInfo)2 FlowStatsEntry (org.openkilda.messaging.info.stats.FlowStatsEntry)1 MeterId (org.openkilda.model.MeterId)1