Bug corrections in ServiceHandler 79/74279/1
authorMartial COULIBALY <martial.coulibaly@gfi.fr>
Tue, 3 Jul 2018 12:53:07 +0000 (14:53 +0200)
committerguillaume.lambert <guillaume.lambert@orange.com>
Fri, 20 Jul 2018 12:44:01 +0000 (14:44 +0200)
- 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 <martial.coulibaly@gfi.fr>
Co-authored-by: Doha Khaled <dkhaled.ext@orange.com>
servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/ModelMappingUtils.java
servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/impl/ServicehandlerImpl.java
servicehandler/src/test/java/org/opendaylight/transportpce/servicehandler/impl/ServiceHandlerImplTest.java

index 2b0ee83e5d3141ede8a4a321ba895dddf82e0c2a..6e385ca717fc4aef9a0a17eb20d20f5b21d0b7f4 100644 (file)
@@ -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) {
index 5dc24b33661fa8176ad528257fdb41f56baeb169..cf2c7a304f823dd876f6b6dfd2267e70fe396a39 100644 (file)
@@ -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<Services> 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()
index 5be6576e32cd446616f284a9a1aebf8d4b98ce8c..7a4bea87481764bbd11e97bc9975dc34d2c8058a 100644 (file)
@@ -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();
+    }
 }