From 73fe224cd32c2a4e7ceac1f9dfd84ac467ebbd8e Mon Sep 17 00:00:00 2001 From: Christophe Betoule Date: Mon, 14 Mar 2022 11:17:54 +0100 Subject: [PATCH] Update Servicehandler checks Update Tx/Rx service handler checks to be compliant with service models of openROADM MSA JIRA: TRNSPRTPCE-646 Signed-off-by: Christophe Betoule Change-Id: I0f3f7f7c25fc4988bcf433382a47de5175768a5c --- .../RendererServiceOperationsImpl.java | 16 ++- .../checks/ServicehandlerTxRxCheck.java | 94 +------------ .../checks/ServicehandlerTxRxCheckTest.java | 129 +----------------- 3 files changed, 16 insertions(+), 223 deletions(-) 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 652aea92c..df4d6624d 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 @@ -49,7 +49,6 @@ import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev21 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.ServicePowerTurndownOutput; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.TransportpceOlmService; 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.portmapping.rev220114.mapping.Mapping; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.RendererRpcResultSp; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.RendererRpcResultSpBuilder; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.ServiceDeleteInput; @@ -204,10 +203,17 @@ public class RendererServiceOperationsImpl implements RendererServiceOperations OPERATION_FAILED); } PathDescription pathDescription = pathDescriptionOpt.get(); - Mapping mapping = portMapping.getMapping(service.getServiceAEnd().getNodeId().getValue(), - service.getServiceAEnd().getTxDirection().getPort().getPortName()); - String serviceType = ServiceTypes.getServiceType(service.getServiceAEnd().getServiceFormat().getName(), - service.getServiceAEnd().getServiceRate(), mapping); + String serviceType = + ServiceTypes.getServiceType( + service.getServiceAEnd().getServiceFormat().getName(), + service.getServiceAEnd().getServiceRate(), + service.getServiceAEnd().getTxDirection() == null + || service.getServiceAEnd().getTxDirection().getPort() == null + || service.getServiceAEnd().getTxDirection().getPort().getPortName() == null + ? null + : portMapping.getMapping( + service.getServiceAEnd().getNodeId().getValue(), + service.getServiceAEnd().getTxDirection().getPort().getPortName())); switch (serviceType) { case StringConstants.SERVICE_TYPE_100GE_T: case StringConstants.SERVICE_TYPE_400GE: diff --git a/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/validation/checks/ServicehandlerTxRxCheck.java b/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/validation/checks/ServicehandlerTxRxCheck.java index fbca473af..5cc60ab40 100644 --- a/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/validation/checks/ServicehandlerTxRxCheck.java +++ b/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/validation/checks/ServicehandlerTxRxCheck.java @@ -10,10 +10,6 @@ package org.opendaylight.transportpce.servicehandler.validation.checks; import org.opendaylight.transportpce.servicehandler.ServiceEndpointType; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.ServiceEndpoint; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service.endpoint.RxDirection; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service.endpoint.TxDirection; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service.lgx.Lgx; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service.port.Port; import org.opendaylight.yang.gen.v1.http.org.openroadm.service.format.rev190531.ServiceFormat; /** @@ -47,6 +43,10 @@ public final class ServicehandlerTxRxCheck { return SERVICE + endpointType + " is not set"; } + public static String rateNull(ServiceEndpointType endpointType) { + return "Something wrong when accessing " + SERVICE + endpointType + " rate, format or clli"; + } + public static String rateNotSet(ServiceEndpointType endpointType) { return SERVICE + endpointType + " rate is not set"; } @@ -63,7 +63,6 @@ public final class ServicehandlerTxRxCheck { } } - /** * Check if a String is not null and not equal to ''. * @@ -75,85 +74,6 @@ public final class ServicehandlerTxRxCheck { return (value != null && !value.isEmpty()); } - /** - * check if Port info is compliant. - * - * @param port - * port info - * @return true if String ok false if not - */ - @SuppressWarnings("java:S1067") - //sonar issue Reduce the number of conditional operators (4) used in the expression (maximum allowed 3) - //won't be fixed because of functional checks needed - public static boolean checkPort(Port port) { - if (port == null) { - return false; - } - String portDeviceName = port.getPortDeviceName(); - String portType = port.getPortType(); - String portName = port.getPortName(); - String portRack = port.getPortRack(); - String portShelf = port.getPortShelf(); - - return checkString(portDeviceName) - && checkString(portType) - && checkString(portName) - && checkString(portRack) - && checkString(portShelf); - } - - /** - * Check if lgx info is compliant. - * - * @param lgx - * lgx info - * @return true if String ok false if not - */ - public static boolean checkLgx(Lgx lgx) { - if (lgx == null) { - return false; - } - String lgxDeviceName = lgx.getLgxDeviceName(); - String lgxPortName = lgx.getLgxPortName(); - String lgxPortRack = lgx.getLgxPortRack(); - String lgxPortShelf = lgx.getLgxPortShelf(); - return checkString(lgxDeviceName) - && checkString(lgxPortName) - && checkString(lgxPortRack) - && checkString(lgxPortShelf); - } - - /** - * Check if Tx/Rx Direction complaincy info. - * - * @param txDirection - * TxDirection - * @param rxDirection - * RxDirection - * - * @return true if check is ok false else - */ - public static ComplianceCheckResult checkTxOrRxInfo(TxDirection txDirection, RxDirection rxDirection) { - if (txDirection == null) { - return new ComplianceCheckResult(false, LogMessages.TXDIR_NOT_SET); - } - if (rxDirection == null) { - return new ComplianceCheckResult(false, LogMessages.RXDIR_NOT_SET); - } - if (!checkPort(txDirection.getPort())) { - return new ComplianceCheckResult(false, LogMessages.TXDIR_PORT_NOT_SET); - } - if (!checkLgx(txDirection.getLgx())) { - return new ComplianceCheckResult(false, LogMessages.TXDIR_LGX_NOT_SET); - } - if (!checkPort(rxDirection.getPort())) { - return new ComplianceCheckResult(false, LogMessages.RXDIR_PORT_NOT_SET); - } - if (!checkLgx(rxDirection.getLgx())) { - return new ComplianceCheckResult(false, LogMessages.RXDIR_LGX_NOT_SET); - } - return new ComplianceCheckResult(true, ""); - } /** * Check Compliance of Service TxRx info. @@ -184,12 +104,6 @@ public final class ServicehandlerTxRxCheck { return new ComplianceCheckResult(false, LogMessages.clliNotSet(endpointType)); } - ComplianceCheckResult complianceCheckResult - = checkTxOrRxInfo(serviceEnd.getTxDirection(), serviceEnd.getRxDirection()); - if (!complianceCheckResult.hasPassed()) { - return new ComplianceCheckResult(false, complianceCheckResult.getMessage()); - } - return new ComplianceCheckResult(true, ""); } diff --git a/servicehandler/src/test/java/org/opendaylight/transportpce/servicehandler/validation/checks/ServicehandlerTxRxCheckTest.java b/servicehandler/src/test/java/org/opendaylight/transportpce/servicehandler/validation/checks/ServicehandlerTxRxCheckTest.java index 0c660c3b7..af1348090 100644 --- a/servicehandler/src/test/java/org/opendaylight/transportpce/servicehandler/validation/checks/ServicehandlerTxRxCheckTest.java +++ b/servicehandler/src/test/java/org/opendaylight/transportpce/servicehandler/validation/checks/ServicehandlerTxRxCheckTest.java @@ -11,130 +11,14 @@ package org.opendaylight.transportpce.servicehandler.validation.checks; import static org.opendaylight.transportpce.servicehandler.validation.checks.ServicehandlerTxRxCheck.LogMessages; import org.junit.Assert; -import org.junit.Ignore; import org.junit.Test; import org.opendaylight.transportpce.servicehandler.ServiceEndpointType; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service.ServiceAEndBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service.endpoint.RxDirectionBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service.endpoint.TxDirectionBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service.lgx.LgxBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service.port.PortBuilder; import org.opendaylight.yang.gen.v1.http.org.openroadm.service.format.rev190531.ServiceFormat; import org.opendaylight.yangtools.yang.common.Uint32; public class ServicehandlerTxRxCheckTest { - @Test - public void checkPortShouldBeFalseForNullPort() { - Assert.assertFalse(ServicehandlerTxRxCheck.checkPort(null)); - } - - @Test - public void checkLgxShouldBeFalseForNullLgx() { - Assert.assertFalse(ServicehandlerTxRxCheck.checkLgx(null)); - } - - @Test - public void checkTxOrRxInfoForNullTx() { - ComplianceCheckResult result = ServicehandlerTxRxCheck.checkTxOrRxInfo( - null, - new RxDirectionBuilder() - .setPort(new PortBuilder().setPortDeviceName("q") - .setPortName("n").setPortRack("r").setPortShelf("s").setPortType("t").build()) - .setLgx(new LgxBuilder().setLgxDeviceName("l") - .setLgxPortName("p").setLgxPortRack("r").setLgxPortShelf("s").build()) - .build()); - - Assert.assertFalse(result.hasPassed()); - Assert.assertEquals(LogMessages.TXDIR_NOT_SET, result.getMessage()); - } - - @Test - public void checkTxOrRxInfoForNullTxPort() { - ComplianceCheckResult result = ServicehandlerTxRxCheck.checkTxOrRxInfo( - new TxDirectionBuilder() - .setLgx(new LgxBuilder().setLgxDeviceName("l") - .setLgxPortName("p").setLgxPortRack("r").setLgxPortShelf("s").build()) - .build(), - new RxDirectionBuilder() - .setPort(new PortBuilder().setPortDeviceName("q") - .setPortName("n").setPortRack("r").setPortShelf("s").setPortType("t").build()) - .setLgx(new LgxBuilder().setLgxDeviceName("l") - .setLgxPortName("p").setLgxPortRack("r").setLgxPortShelf("s").build()) - .build()); - - Assert.assertFalse(result.hasPassed()); - Assert.assertEquals(LogMessages.TXDIR_PORT_NOT_SET, result.getMessage()); - } - - @Test - public void checkTxOrRxInfoForNullTxLgx() { - ComplianceCheckResult result = ServicehandlerTxRxCheck.checkTxOrRxInfo( - new TxDirectionBuilder() - .setPort(new PortBuilder().setPortDeviceName("q") - .setPortName("n").setPortRack("r").setPortShelf("s").setPortType("t").build()).build(), - new RxDirectionBuilder() - .setPort(new PortBuilder().setPortDeviceName("q") - .setPortName("n").setPortRack("r").setPortShelf("s").setPortType("t").build()) - .setLgx(new LgxBuilder().setLgxDeviceName("l") - .setLgxPortName("p").setLgxPortRack("r").setLgxPortShelf("s").build()) - .build()); - - Assert.assertFalse(result.hasPassed()); - Assert.assertEquals(LogMessages.TXDIR_LGX_NOT_SET, result.getMessage()); - } - - @Test - public void checkTxOrRxInfoForNullRx() { - ComplianceCheckResult result = ServicehandlerTxRxCheck.checkTxOrRxInfo( - new TxDirectionBuilder() - .setPort(new PortBuilder().setPortDeviceName("q") - .setPortName("n").setPortRack("r").setPortShelf("s").setPortType("t").build()) - .setLgx(new LgxBuilder().setLgxDeviceName("l") - .setLgxPortName("p").setLgxPortRack("r").setLgxPortShelf("s").build()) - .build(), - null); - - Assert.assertFalse(result.hasPassed()); - Assert.assertEquals(LogMessages.RXDIR_NOT_SET, result.getMessage()); - } - - @Test - public void checkTxOrRxInfoForNullRxPort() { - ComplianceCheckResult result = ServicehandlerTxRxCheck.checkTxOrRxInfo( - new TxDirectionBuilder() - .setPort(new PortBuilder().setPortDeviceName("q") - .setPortName("n").setPortRack("r").setPortShelf("s").setPortType("t").build()) - .setLgx(new LgxBuilder().setLgxDeviceName("l") - .setLgxPortName("p").setLgxPortRack("r").setLgxPortShelf("s").build()) - .build(), - new RxDirectionBuilder() - .setLgx(new LgxBuilder().setLgxDeviceName("l") - .setLgxPortName("p").setLgxPortRack("r").setLgxPortShelf("s").build()) - .build()); - - Assert.assertFalse(result.hasPassed()); - Assert.assertEquals(LogMessages.RXDIR_PORT_NOT_SET, result.getMessage()); - } - - @Test - public void checkTxOrRxInfoForNullRxLgx() { - ComplianceCheckResult result = ServicehandlerTxRxCheck.checkTxOrRxInfo( - new TxDirectionBuilder() - .setPort(new PortBuilder().setPortDeviceName("q") - .setPortName("n").setPortRack("r").setPortShelf("s").setPortType("t").build()) - .setLgx(new LgxBuilder().setLgxDeviceName("l") - .setLgxPortName("p").setLgxPortRack("r").setLgxPortShelf("s").build()) - .build(), - new RxDirectionBuilder() - .setPort(new PortBuilder().setPortDeviceName("q") - .setPortName("n").setPortRack("r").setPortShelf("s").setPortType("t").build()) - .build()); - - Assert.assertFalse(result.hasPassed()); - Assert.assertEquals(LogMessages.RXDIR_LGX_NOT_SET, result.getMessage()); - } - @Test public void checkForServiceEndNull() { ComplianceCheckResult result = ServicehandlerTxRxCheck.check(null, ServiceEndpointType.SERVICEAEND); @@ -143,14 +27,13 @@ public class ServicehandlerTxRxCheckTest { Assert.assertEquals(LogMessages.endpointTypeNotSet(ServiceEndpointType.SERVICEAEND), result.getMessage()); } - @Ignore @Test public void checkForServiceRateNull() { ComplianceCheckResult result = ServicehandlerTxRxCheck.check(new ServiceAEndBuilder().build(), ServiceEndpointType.SERVICEAEND); Assert.assertFalse(result.hasPassed()); - Assert.assertEquals(LogMessages.rateNotSet(ServiceEndpointType.SERVICEAEND), result.getMessage()); + Assert.assertEquals(LogMessages.rateNull(ServiceEndpointType.SERVICEAEND), result.getMessage()); } @Test @@ -180,14 +63,4 @@ public class ServicehandlerTxRxCheckTest { Assert.assertFalse(result.hasPassed()); Assert.assertEquals(LogMessages.clliNotSet(ServiceEndpointType.SERVICEAEND), result.getMessage()); } - - @Test - public void checkForFailTxOrRx() { - ComplianceCheckResult result = ServicehandlerTxRxCheck.check(new ServiceAEndBuilder() - .setServiceRate(Uint32.valueOf(3)).setClli("cc").setServiceFormat(ServiceFormat.Ethernet).build(), - ServiceEndpointType.SERVICEAEND); - - Assert.assertFalse(result.hasPassed()); - Assert.assertEquals(LogMessages.TXDIR_NOT_SET, result.getMessage()); - } } -- 2.36.6