Update path-description data for temp service list
[transportpce.git] / servicehandler / src / main / java / org / opendaylight / transportpce / servicehandler / service / ServiceDataStoreOperationsImpl.java
index 9916204ca689e0c3daee385f3f588a662ca9c447..aa905f0801db915652e903918f8a686049e768e7 100644 (file)
@@ -23,7 +23,7 @@ import org.opendaylight.transportpce.common.OperationResult;
 import org.opendaylight.transportpce.common.Timeouts;
 import org.opendaylight.transportpce.servicehandler.ModelMappingUtils;
 import org.opendaylight.transportpce.servicehandler.ServiceInput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220615.PathComputationRequestOutput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220808.PathComputationRequestOutput;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev191129.State;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.equipment.states.types.rev191129.AdminStates;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceCreateInput;
@@ -41,9 +41,13 @@ import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev171017.service.path.list.ServicePathsBuilder;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev171017.service.path.list.ServicePathsKey;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+@Component(immediate = true)
 public class ServiceDataStoreOperationsImpl implements ServiceDataStoreOperations {
     private static final Logger LOG = LoggerFactory.getLogger(ServiceDataStoreOperationsImpl.class);
     private static final String CREATE_MSG = "create";
@@ -73,7 +77,8 @@ public class ServiceDataStoreOperationsImpl implements ServiceDataStoreOperation
     }
 
 
-    public ServiceDataStoreOperationsImpl(DataBroker dataBroker) {
+    @Activate
+    public ServiceDataStoreOperationsImpl(@Reference DataBroker dataBroker) {
         this.dataBroker = dataBroker;
     }
 
@@ -208,7 +213,7 @@ public class ServiceDataStoreOperationsImpl implements ServiceDataStoreOperation
             WriteTransaction writeTx = this.dataBroker.newWriteOnlyTransaction();
             InstanceIdentifier<Services> iid = InstanceIdentifier.create(ServiceList.class)
                     .child(Services.class, new ServicesKey(serviceName));
-            Services services = new ServicesBuilder(readService.get())
+            Services services = new ServicesBuilder(readService.orElseThrow())
                 .setOperationalState(operationalState)
                 .setAdministrativeState(administrativeState)
                 .build();
@@ -240,7 +245,7 @@ public class ServiceDataStoreOperationsImpl implements ServiceDataStoreOperation
                                 .temp.service.list.ServicesKey(serviceName));
             org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.temp.service.list.Services services =
                 new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.temp.service.list.ServicesBuilder(
-                    readService.get())
+                    readService.orElseThrow())
                 .setOperationalState(operationalState)
                 .setAdministrativeState(administrativeState)
                 .build();
@@ -271,7 +276,10 @@ public class ServiceDataStoreOperationsImpl implements ServiceDataStoreOperation
     }
 
     @Override
-    public OperationResult createTempService(TempServiceCreateInput tempServiceCreateInput) {
+    public OperationResult createTempService(
+            TempServiceCreateInput tempServiceCreateInput,
+            org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220808
+                    .service.path.rpc.result.PathDescription pathDescription) {
         LOG.debug("Writing '{}' Temp Service", tempServiceCreateInput.getCommonId());
         try {
             InstanceIdentifier<org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.temp.service.list
@@ -280,7 +288,7 @@ public class ServiceDataStoreOperationsImpl implements ServiceDataStoreOperation
                             .Services.class, new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.temp
                                 .service.list.ServicesKey(tempServiceCreateInput.getCommonId()));
             org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.temp.service.list
-                .Services service = ModelMappingUtils.mappingServices(tempServiceCreateInput);
+                .Services service = ModelMappingUtils.mappingServices(tempServiceCreateInput, pathDescription);
             WriteTransaction writeTx = this.dataBroker.newWriteOnlyTransaction();
             writeTx.put(LogicalDatastoreType.OPERATIONAL, iid, service);
             writeTx.commit().get(Timeouts.DATASTORE_WRITE, TimeUnit.MILLISECONDS);
@@ -354,18 +362,18 @@ public class ServiceDataStoreOperationsImpl implements ServiceDataStoreOperation
             InstanceIdentifier<ServicePaths> iid = InstanceIdentifier.create(ServicePathList.class)
                     .child(ServicePaths.class, new ServicePathsKey(serviceName));
             ServicePaths servicePaths = new ServicePathsBuilder()
-                    .setServiceAEnd(readServicePath.get().getServiceAEnd())
-                    .setServiceHandlerHeader(readServicePath.get().getServiceHandlerHeader())
-                    .setServicePathName(readServicePath.get().getServicePathName())
-                    .setServiceZEnd(readServicePath.get().getServiceZEnd())
-                    .setSupportingServiceName(readServicePath.get().getSupportingServiceName())
-                    .setEquipmentSrgs(readServicePath.get().getEquipmentSrgs())
-                    .setFiberSpanSrlgs(readServicePath.get().getFiberSpanSrlgs())
-                    .setHardConstraints(readServicePath.get().getHardConstraints())
-                    .setLatency(readServicePath.get().getLatency())
+                    .setServiceAEnd(readServicePath.orElseThrow().getServiceAEnd())
+                    .setServiceHandlerHeader(readServicePath.orElseThrow().getServiceHandlerHeader())
+                    .setServicePathName(readServicePath.orElseThrow().getServicePathName())
+                    .setServiceZEnd(readServicePath.orElseThrow().getServiceZEnd())
+                    .setSupportingServiceName(readServicePath.orElseThrow().getSupportingServiceName())
+                    .setEquipmentSrgs(readServicePath.orElseThrow().getEquipmentSrgs())
+                    .setFiberSpanSrlgs(readServicePath.orElseThrow().getFiberSpanSrlgs())
+                    .setHardConstraints(readServicePath.orElseThrow().getHardConstraints())
+                    .setLatency(readServicePath.orElseThrow().getLatency())
                     .setPathDescription(pathDescription)
-                    .setPceRoutingMetric(readServicePath.get().getPceRoutingMetric())
-                    .setSoftConstraints(readServicePath.get().getSoftConstraints())
+                    .setPceRoutingMetric(readServicePath.orElseThrow().getPceRoutingMetric())
+                    .setSoftConstraints(readServicePath.orElseThrow().getSoftConstraints())
                     .build();
 
             writeTx.merge(LogicalDatastoreType.OPERATIONAL, iid, servicePaths);
@@ -442,7 +450,7 @@ public class ServiceDataStoreOperationsImpl implements ServiceDataStoreOperation
          */
         InstanceIdentifier<Services> iid =
                 InstanceIdentifier.create(ServiceList.class).child(Services.class, new ServicesKey(serviceName));
-        ServicesBuilder service = new ServicesBuilder(readService.get());
+        ServicesBuilder service = new ServicesBuilder(readService.orElseThrow());
         String action = null;
         switch (choice) {
             case 0 : /* Modify. */