This is an automated email from the ASF dual-hosted git repository.

isjarana pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/airavata.git


The following commit(s) were added to refs/heads/develop by this push:
     new f2371e0544 update experiment model after slecting CR
     new 52c4299c96 Merge pull request #406 from isururanawaka/metaschedular
f2371e0544 is described below

commit f2371e0544b17e041ecb853ec9444b433a49dce0
Author: Isuru Ranawaka <[email protected]>
AuthorDate: Fri Mar 10 13:57:18 2023 -0500

    update experiment model after slecting CR
---
 .../scheduling/api/ProcessSchedulerImpl.java       | 33 +++++++++++++---------
 .../expcatalog/ExperimentRepository.java           | 15 ----------
 2 files changed, 20 insertions(+), 28 deletions(-)

diff --git 
a/modules/airavata-metascheduler/process-scheduler/src/main/java/org/apache/airavata/metascheduler/process/scheduling/api/ProcessSchedulerImpl.java
 
b/modules/airavata-metascheduler/process-scheduler/src/main/java/org/apache/airavata/metascheduler/process/scheduling/api/ProcessSchedulerImpl.java
index fd81a19060..d6dbed05e2 100644
--- 
a/modules/airavata-metascheduler/process-scheduler/src/main/java/org/apache/airavata/metascheduler/process/scheduling/api/ProcessSchedulerImpl.java
+++ 
b/modules/airavata-metascheduler/process-scheduler/src/main/java/org/apache/airavata/metascheduler/process/scheduling/api/ProcessSchedulerImpl.java
@@ -7,6 +7,7 @@ import 
org.apache.airavata.metascheduler.core.engine.ComputeResourceSelectionPol
 import org.apache.airavata.metascheduler.core.utils.Utils;
 import org.apache.airavata.model.application.io.InputDataObjectType;
 import org.apache.airavata.model.experiment.ExperimentModel;
+import org.apache.airavata.model.experiment.UserConfigurationDataModel;
 import org.apache.airavata.model.process.ProcessModel;
 import 
org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel;
 import org.apache.airavata.model.status.ProcessState;
@@ -16,6 +17,7 @@ import 
org.apache.airavata.registry.api.RegistryService.Client;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
 
@@ -59,17 +61,24 @@ public class ProcessSchedulerImpl implements 
ProcessScheduler {
 
                     if (computationalResourceSchedulingModel.isPresent()) {
                         ComputationalResourceSchedulingModel 
resourceSchedulingModel = computationalResourceSchedulingModel.get();
-//                        List<InputDataObjectType> inputDataObjectTypeList =  
experiment.getExperimentInputs();
-//                        inputDataObjectTypeList.forEach(obj->{
-//                            if (obj.getName().equals("Wall_Time")){
-//                                
obj.setValue("-walltime="+resourceSchedulingModel.getWallTimeLimit());
-//                            }
-//                            if 
(obj.getName().equals("Parallel_Group_Count")){
-//                                
obj.setValue("-mgroupcount="+resourceSchedulingModel.getMGroupCount());
-//                            }
-//                        });
-
-//                        
experiment.setExperimentInputs(inputDataObjectTypeList);
+                        List<InputDataObjectType> inputDataObjectTypeList =  
experiment.getExperimentInputs();
+                        inputDataObjectTypeList.forEach(obj->{
+                            if (obj.getName().equals("Wall_Time")){
+                                
obj.setValue("-walltime="+resourceSchedulingModel.getWallTimeLimit());
+                            }
+                            if (obj.getName().equals("Parallel_Group_Count")){
+                                
obj.setValue("-mgroupcount="+resourceSchedulingModel.getMGroupCount());
+                            }
+                        });
+
+                        
experiment.setExperimentInputs(inputDataObjectTypeList);
+
+                        //update experiment model with selected compute 
resource
+                        experiment.setProcesses(new ArrayList<>()); // avoid 
duplication issues
+                        UserConfigurationDataModel userConfigurationDataModel 
= experiment.getUserConfigurationData();
+                        
userConfigurationDataModel.setComputationalResourceScheduling(resourceSchedulingModel);
+                        
experiment.setUserConfigurationData(userConfigurationDataModel);
+                        
registryClient.updateExperiment(experimentId,experiment);
 
                         List<InputDataObjectType> 
processInputDataObjectTypeList =  processModel.getProcessInputs();
                         processInputDataObjectTypeList.forEach(obj->{
@@ -95,8 +104,6 @@ public class ProcessSchedulerImpl implements 
ProcessScheduler {
                     }
                 }
             }
-//            experiment.setProcesses(processModels);
-//            registryClient.updateExperiment(experimentId,experiment);
             return allProcessesScheduled;
         } catch (Exception exception) {
             LOGGER.error(" Exception occurred while scheduling experiment with 
Id {}", experimentId, exception);
diff --git 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/repositories/expcatalog/ExperimentRepository.java
 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/repositories/expcatalog/ExperimentRepository.java
index 5374d31ce1..8f09f39c64 100644
--- 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/repositories/expcatalog/ExperimentRepository.java
+++ 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/repositories/expcatalog/ExperimentRepository.java
@@ -112,21 +112,6 @@ public class ExperimentRepository extends 
ExpCatAbstractRepository<ExperimentMod
             logger.debug("Populating the Primary Key of ExperimentError 
objects for the Experiment");
             experimentEntity.getErrors().forEach(experimentErrorEntity -> 
experimentErrorEntity.setExperimentId(experimentId));
         }
-
-        if (experimentEntity.getProcesses() != null) {
-            experimentEntity.getProcesses().forEach(processEntity -> {
-               List<ProcessInputEntity> processInputEntities =  
processEntity.getProcessInputs();
-               processInputEntities.forEach(pr->{
-                   pr.setProcessId(processEntity.getProcessId());
-               });
-                List<ProcessOutputEntity> processOutputs =  
processEntity.getProcessOutputs();
-                processOutputs.forEach(pr->{
-                    pr.setProcessId(processEntity.getProcessId());
-                });
-
-            });
-        }
-
         return execute(entityManager -> entityManager.merge(experimentEntity));
     }
 

Reply via email to