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 9d4c72691b Change process inputs according to selected CR
new d61becc45b Merge pull request #401 from isururanawaka/metaschedular
9d4c72691b is described below
commit 9d4c72691bb67aaaa5893d15441363d18774f687
Author: Isuru Ranawaka <[email protected]>
AuthorDate: Fri Mar 10 09:50:55 2023 -0500
Change process inputs according to selected CR
---
.../process/scheduling/api/ProcessSchedulerImpl.java | 7 +++++--
.../engine/rescheduler/ExponentialBackOffReScheduler.java | 8 ++++++--
.../core/repositories/expcatalog/ExperimentRepository.java | 10 ++++++++++
3 files changed, 21 insertions(+), 4 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 689c12bc0f..f53ebbb5df 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
@@ -69,6 +69,8 @@ public class ProcessSchedulerImpl implements ProcessScheduler
{
}
});
+
experiment.setExperimentInputs(inputDataObjectTypeList);
+
List<InputDataObjectType>
processInputDataObjectTypeList = processModel.getProcessInputs();
processInputDataObjectTypeList.forEach(obj->{
if (obj.getName().equals("Wall_Time")){
@@ -80,12 +82,11 @@ public class ProcessSchedulerImpl implements
ProcessScheduler {
});
processModel.setProcessInputs(processInputDataObjectTypeList);
-
experiment.setExperimentInputs(inputDataObjectTypeList);
processModel.setProcessResourceSchedule(resourceSchedulingModel);
processModel.setComputeResourceId(resourceSchedulingModel.getResourceHostId());
registryClient.updateProcess(processModel,
processModel.getProcessId());
-
registryClient.updateExperiment(processModel.getExperimentId(),experiment);
+
} else {
ProcessStatus newProcessStatus = new ProcessStatus();
newProcessStatus.setState(ProcessState.QUEUED);
@@ -94,6 +95,8 @@ 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/airavata-metascheduler/process-scheduler/src/main/java/org/apache/airavata/metascheduler/process/scheduling/engine/rescheduler/ExponentialBackOffReScheduler.java
b/modules/airavata-metascheduler/process-scheduler/src/main/java/org/apache/airavata/metascheduler/process/scheduling/engine/rescheduler/ExponentialBackOffReScheduler.java
index 4df1c56c9a..af54da0a52 100644
---
a/modules/airavata-metascheduler/process-scheduler/src/main/java/org/apache/airavata/metascheduler/process/scheduling/engine/rescheduler/ExponentialBackOffReScheduler.java
+++
b/modules/airavata-metascheduler/process-scheduler/src/main/java/org/apache/airavata/metascheduler/process/scheduling/engine/rescheduler/ExponentialBackOffReScheduler.java
@@ -143,11 +143,15 @@ public class ExponentialBackOffReScheduler implements
ReScheduler {
});
processModel.setProcessInputs(processInputDataObjectTypeList);
-
experimentModel.setExperimentInputs(inputDataObjectTypeList);
+ experimentModel.getProcesses().forEach(pr->{
+ if (pr.getProcessId().equals(processModel.getProcessId())){
+ pr.setProcessInputs(processModel.getProcessInputs());
+ }
+ });
+
processModel.setProcessResourceSchedule(resourceSchedulingModel);
processModel.setComputeResourceId(resourceSchedulingModel.getResourceHostId());
-
registryClient.updateProcess(processModel,
processModel.getProcessId());
registryClient.updateExperiment(processModel.getExperimentId(),
experimentModel);
}
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 3160b5b08a..b0cdd34725 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
@@ -27,6 +27,7 @@ import org.apache.airavata.model.status.ExperimentState;
import org.apache.airavata.model.status.ExperimentStatus;
import
org.apache.airavata.registry.core.entities.expcatalog.ComputationalResourceSchedulingEntity;
import org.apache.airavata.registry.core.entities.expcatalog.ExperimentEntity;
+import
org.apache.airavata.registry.core.entities.expcatalog.ProcessInputEntity;
import org.apache.airavata.registry.core.utils.DBConstants;
import org.apache.airavata.registry.core.utils.ObjectMapperSingleton;
import org.apache.airavata.registry.core.utils.QueryConstants;
@@ -111,6 +112,15 @@ public class ExperimentRepository extends
ExpCatAbstractRepository<ExperimentMod
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());
+ });
+ });
+ }
+
return execute(entityManager -> entityManager.merge(experimentEntity));
}