From be2c69594d2469568906156f4424189d8720f639 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jonas=20M=C3=A5rtensson?= Date: Tue, 13 Jun 2023 07:55:08 +0000 Subject: [PATCH] Only verify PreFEC BER if end node is Xponder MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Trying to read PreFEC BER from end nodes when creating a ROADM-to-ROADM service is unnecessary since only Xponders report this parameter. Adapt renderer unitary tests JIRA: TRNSPRTPCE-158 Change-Id: Id1a9bfe69296abaeffe63d589a79d113bf8d9bcc Signed-off-by: Jonas MÃ¥rtensson Co-authored-by: Gilles Thouenon --- .../RendererServiceOperationsImpl.java | 4 +++ .../RendererServiceOperationsImplTest.java | 27 ++++++++++++++++++- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/RendererServiceOperationsImpl.java b/renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/RendererServiceOperationsImpl.java index a449876a3..c9993e229 100644 --- a/renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/RendererServiceOperationsImpl.java +++ b/renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/RendererServiceOperationsImpl.java @@ -537,6 +537,10 @@ public class RendererServiceOperationsImpl implements RendererServiceOperations justification = "call in call() method") private boolean isServiceActivated(String nodeId, String tpId) { LOG.info("Starting service activation test on node {} and tp {}", nodeId, tpId); + if (!NodeTypes.Xpdr.equals(portMapping.getNode(nodeId).getNodeInfo().getNodeType())) { + LOG.info("Device {} is not xponder, can't verify PreFEC", nodeId); + return true; + } for (int i = 0; i < 3; i++) { List measurements = getMeasurements(nodeId, tpId); if (measurements == null) { diff --git a/renderer/src/test/java/org/opendaylight/transportpce/renderer/provisiondevice/RendererServiceOperationsImplTest.java b/renderer/src/test/java/org/opendaylight/transportpce/renderer/provisiondevice/RendererServiceOperationsImplTest.java index 5f0c89650..a16530d1c 100644 --- a/renderer/src/test/java/org/opendaylight/transportpce/renderer/provisiondevice/RendererServiceOperationsImplTest.java +++ b/renderer/src/test/java/org/opendaylight/transportpce/renderer/provisiondevice/RendererServiceOperationsImplTest.java @@ -48,8 +48,11 @@ import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev21 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.ServicePowerTurndownOutputBuilder; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.get.pm.output.Measurements; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.get.pm.output.MeasurementsBuilder; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev231221.network.Nodes; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev231221.network.nodes.NodeInfo; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.ServiceImplementationRequestInput; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.ServiceImplementationRequestOutput; +import org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.NodeTypes; import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.types.rev161014.ResourceTypeEnum; import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev220926.PmGranularity; import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev220926.olm.get.pm.input.ResourceIdentifierBuilder; @@ -74,6 +77,10 @@ public class RendererServiceOperationsImplTest { private ServicePowerTurndown servicePowerTurndown; @Mock private GetPm getPm; + @Mock + private Nodes node; + @Mock + private NodeInfo nodeInfo; private RendererServiceOperationsImpl rendererServiceOperations; @@ -99,6 +106,10 @@ public class RendererServiceOperationsImplTest { .buildFuture()).when(servicePowerSetup).invoke(any()); doReturn(RpcResultBuilder.success(new GetPmOutputBuilder().setNodeId("node id").build()).buildFuture()) .when(getPm).invoke(any()); + when(portMapping.getNode(any())).thenReturn(node); + when(node.getNodeInfo()).thenReturn(nodeInfo); + when(nodeInfo.getNodeType()).thenReturn(NodeTypes.Xpdr); + ServiceImplementationRequestOutput result = this.rendererServiceOperations.serviceImplementation(input, false) .get(); assertEquals(ResponseCodes.RESPONSE_OK, result.getConfigurationResponseCommon().getResponseCode()); @@ -149,7 +160,9 @@ public class RendererServiceOperationsImplTest { .buildFuture()).when(servicePowerSetup).invoke(any()); doReturn(RpcResultBuilder.success(new GetPmOutputBuilder().setNodeId("node id").build()).buildFuture()) .when(getPm).invoke(any()); - + when(portMapping.getNode(any())).thenReturn(node); + when(node.getNodeInfo()).thenReturn(nodeInfo); + when(nodeInfo.getNodeType()).thenReturn(NodeTypes.Xpdr); String[] interfaceTokens = { StringConstants.NETWORK_TOKEN, StringConstants.CLIENT_TOKEN, StringConstants.TTP_TOKEN, StringConstants.PP_TOKEN }; for (String tpToken : interfaceTokens) { @@ -239,6 +252,11 @@ public class RendererServiceOperationsImplTest { .buildFuture()).when(servicePowerSetup).invoke(any()); GetPmOutput getPmOutput1 = null; when(getPm.invoke(any())).thenReturn(RpcResultBuilder.success(getPmOutput1).buildFuture()); + + when(portMapping.getNode(any())).thenReturn(node); + when(node.getNodeInfo()).thenReturn(nodeInfo); + when(nodeInfo.getNodeType()).thenReturn(NodeTypes.Xpdr); + ServiceImplementationRequestOutput result = this.rendererServiceOperations.serviceImplementation(input, false) .get(); assertEquals(ResponseCodes.RESPONSE_OK, result.getConfigurationResponseCommon().getResponseCode()); @@ -261,6 +279,9 @@ public class RendererServiceOperationsImplTest { new MeasurementsBuilder().setPmparameterName("preFECCorrectedErrors").setPmparameterValue("1").build()); GetPmOutput getPmOutput = new GetPmOutputBuilder().setNodeId("node1").setMeasurements(measurementsList).build(); when(getPm.invoke(any())).thenReturn(RpcResultBuilder.success(getPmOutput).buildFuture()); + when(portMapping.getNode(any())).thenReturn(node); + when(node.getNodeInfo()).thenReturn(nodeInfo); + when(nodeInfo.getNodeType()).thenReturn(NodeTypes.Xpdr); ServiceImplementationRequestInput input = ServiceDataUtils .buildServiceImplementationRequestInputTerminationPointResource(StringConstants.NETWORK_TOKEN); @@ -285,6 +306,10 @@ public class RendererServiceOperationsImplTest { .setPmparameterValue("112000000000d").build()); GetPmOutput getPmOutput = new GetPmOutputBuilder().setNodeId("node1").setMeasurements(measurementsList).build(); when(getPm.invoke(any())).thenReturn(RpcResultBuilder.success(getPmOutput).buildFuture()); + when(portMapping.getNode(any())).thenReturn(node); + when(node.getNodeInfo()).thenReturn(nodeInfo); + when(nodeInfo.getNodeType()).thenReturn(NodeTypes.Xpdr); + when(rpcService.getRpc(ServicePowerTurndown.class)).thenReturn(servicePowerTurndown); doReturn(RpcResultBuilder .success(new ServicePowerTurndownOutputBuilder() .setResult("result") -- 2.36.6