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));
}