From d186eda2392dc9d034a709fe3a80eb4cbba2510c Mon Sep 17 00:00:00 2001 From: Martial COULIBALY Date: Tue, 3 Jul 2018 14:53:07 +0200 Subject: [PATCH] Bug corrections in ServiceHandler - Change CONFIGURATION datastore to OPERATIONAL which is the right LogicalDatastoreType to look into to get services already created. - Fix the bug mappingServices method in ModelMappingUtils class. Change-Id: I23a0871e0f1d50180c3b09f185693888e2a83840 Signed-off-by: Martial COULIBALY Co-authored-by: Doha Khaled --- .../servicehandler/ModelMappingUtils.java | 1 + .../impl/ServicehandlerImpl.java | 13 ++++--- .../impl/ServiceHandlerImplTest.java | 37 ++++++++++++++++++- 3 files changed, 44 insertions(+), 7 deletions(-) diff --git a/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/ModelMappingUtils.java b/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/ModelMappingUtils.java index 2b0ee83e5..6e385ca71 100644 --- a/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/ModelMappingUtils.java +++ b/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/ModelMappingUtils.java @@ -220,6 +220,7 @@ public final class ModelMappingUtils { .setCustomerContact(serviceCreateInput.getCustomerContact()) .setHardConstraints(serviceCreateInput.getHardConstraints()) .setSoftConstraints(serviceCreateInput.getSoftConstraints()) + .setSdncRequestHeader(serviceCreateInput.getSdncRequestHeader()) .setLifecycleState(LifecycleState.Planned).setServiceAEnd(aend).setServiceZEnd(zend); } else if (serviceReconfigureInput != null) { diff --git a/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/impl/ServicehandlerImpl.java b/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/impl/ServicehandlerImpl.java index 5dc24b336..cf2c7a304 100644 --- a/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/impl/ServicehandlerImpl.java +++ b/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/impl/ServicehandlerImpl.java @@ -7,7 +7,8 @@ */ package org.opendaylight.transportpce.servicehandler.impl; -import java.time.LocalDateTime; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; import java.time.format.DateTimeFormatter; import java.util.Optional; import java.util.concurrent.ExecutionException; @@ -276,12 +277,12 @@ public class ServicehandlerImpl implements OrgOpenroadmServiceService { ReadOnlyTransaction rtx = this.db.newReadOnlyTransaction(); Optional servicesObject; try { - servicesObject = rtx.read(LogicalDatastoreType.CONFIGURATION, servicesIID).get().toJavaUtil(); + servicesObject = rtx.read(LogicalDatastoreType.OPERATIONAL, servicesIID).get().toJavaUtil(); if (servicesObject.isPresent()) { ServiceDeleteInputBuilder deleteInputBldr = new ServiceDeleteInputBuilder(); - DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyy-MM-dd'T'HH:mm:ssX"); - LocalDateTime now = LocalDateTime.now(); - DateAndTime datetime = new DateAndTime(dtf.format(now)); + DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssxxx"); + OffsetDateTime offsetDateTime = OffsetDateTime.now(ZoneOffset.UTC); + DateAndTime datetime = new DateAndTime(dtf.format(offsetDateTime)); deleteInputBldr.setServiceDeleteReqInfo(new ServiceDeleteReqInfoBuilder() .setServiceName(input.getServiceName()).setDueDate(datetime) .setTailRetention(TailRetention.No).build()); @@ -320,7 +321,7 @@ public class ServicehandlerImpl implements OrgOpenroadmServiceService { .setStatusMessage("Success"); return RpcResultBuilder.success(output).buildFuture(); } - } catch (InterruptedException | ExecutionException e) { + } catch (InterruptedException | ExecutionException | NullPointerException e) { LOG.info("Exception caught" , e); } ServiceRerouteOutputBuilder output = new ServiceRerouteOutputBuilder() diff --git a/servicehandler/src/test/java/org/opendaylight/transportpce/servicehandler/impl/ServiceHandlerImplTest.java b/servicehandler/src/test/java/org/opendaylight/transportpce/servicehandler/impl/ServiceHandlerImplTest.java index 5be6576e3..7a4bea874 100644 --- a/servicehandler/src/test/java/org/opendaylight/transportpce/servicehandler/impl/ServiceHandlerImplTest.java +++ b/servicehandler/src/test/java/org/opendaylight/transportpce/servicehandler/impl/ServiceHandlerImplTest.java @@ -21,6 +21,7 @@ import java.util.List; import java.util.Optional; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; + import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -58,6 +59,7 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev1 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.service.lgx.LgxBuilder; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.service.port.Port; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.service.port.PortBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev161014.RpcStatus; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev161014.State; import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.ServiceCreateInput; import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.ServiceCreateInputBuilder; @@ -65,6 +67,9 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.Service import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.ServiceDeleteInput; import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.ServiceDeleteInputBuilder; import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.ServiceDeleteOutput; +import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.ServiceRerouteInput; +import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.ServiceRerouteInputBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.ServiceRerouteOutput; import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.delete.input.ServiceDeleteReqInfo; import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.delete.input.ServiceDeleteReqInfoBuilder; import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.list.Services; @@ -754,7 +759,7 @@ public class ServiceHandlerImplTest extends AbstractTest { builtInput.setServiceAEnd(serviceAEnd); builtInput.setServiceZEnd(serviceZEnd); builtInput.setSdncRequestHeader(new SdncRequestHeaderBuilder().setRequestId("request 1") - .setRpcAction(RpcActions.ServiceCreate).build()); + .setRpcAction(RpcActions.ServiceCreate).setNotificationUrl("notification url").build()); return builtInput.build(); } @@ -1093,4 +1098,34 @@ public class ServiceHandlerImplTest extends AbstractTest { deleteInputBldr.setSdncRequestHeader(sdncBuilder.build()); return deleteInputBldr.build(); } + + + @Test + public void rerouteServiceIsNotePresent() throws ExecutionException, InterruptedException { + + ServiceRerouteInput input = buildServiceRerouteInput(); + ServiceRerouteOutput result = serviceHandler.serviceReroute(input).get().getResult(); + Assert.assertEquals(result.getStatus(), RpcStatus.Failed); + Assert.assertEquals(result.getStatusMessage(), "Failure"); + + } + + @Test + public void rerouteServiceIfservicesIIDIswildCarded() throws ExecutionException, InterruptedException { + + ServiceCreateInput createInput = buildServiceCreateInput(); + ServiceCreateOutput createOutput = serviceHandler.serviceCreate(createInput).get().getResult(); + ServiceRerouteInput input = buildServiceRerouteInput(); + ServiceRerouteOutput result = serviceHandler.serviceReroute(input).get().getResult(); + Assert.assertEquals(org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev161014.RpcStatus.Successful, + result.getStatus()); + Assert.assertEquals("Success", result.getStatusMessage()); + + } + + private ServiceRerouteInput buildServiceRerouteInput() { + ServiceRerouteInputBuilder builder = new ServiceRerouteInputBuilder(); + builder.setServiceName("service 1"); + return builder.build(); + } } -- 2.36.6