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 86966b4659 requeue Process for failures in job submission
new 450ed11fac Merge pull request #341 from isururanawaka/metaschedular
86966b4659 is described below
commit 86966b465927e4d3865db95928c56e3ec4258cee
Author: Isuru Ranawaka <[email protected]>
AuthorDate: Mon Nov 21 20:18:59 2022 -0500
requeue Process for failures in job submission
---
.../apache/airavata/helix/impl/task/AiravataTask.java | 16 ++++++++++++++++
.../airavata/helix/impl/workflow/PreWorkflowManager.java | 1 +
2 files changed, 17 insertions(+)
diff --git
a/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/AiravataTask.java
b/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/AiravataTask.java
index ace7af758d..d2208d5293 100644
---
a/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/AiravataTask.java
+++
b/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/AiravataTask.java
@@ -97,6 +97,9 @@ public abstract class AiravataTask extends AbstractTask {
@TaskParam(name ="Force Run Task")
private boolean forceRunTask = false;
+ @TaskParam(name ="Auto Schedule")
+ private boolean autoSchedule = false;
+
protected TaskResult onSuccess(String message) {
logger.info(message);
if (!skipAllStatusPublish) {
@@ -184,6 +187,11 @@ public abstract class AiravataTask extends AbstractTask {
cleanup();
+ if (autoSchedule){
+ ProcessStatus requeueStatus = new
ProcessStatus(ProcessState.REQUEUED);
+ saveAndPublishProcessStatus(requeueStatus);
+ }
+
return onFail(errorMessage, fatal);
} else {
return onFail("Handover back to helix engine to retry", fatal);
@@ -598,6 +606,14 @@ public abstract class AiravataTask extends AbstractTask {
this.forceRunTask = forceRunTask;
}
+ public boolean isAutoSchedule() {
+ return autoSchedule;
+ }
+
+ public void setAutoSchedule(boolean autoSchedule) {
+ this.autoSchedule = autoSchedule;
+ }
+
// TODO this is inefficient. Try to use a connection pool
public static RegistryService.Client getRegistryServiceClient() {
try {
diff --git
a/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/workflow/PreWorkflowManager.java
b/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/workflow/PreWorkflowManager.java
index 195526f727..8f509cfd0b 100644
---
a/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/workflow/PreWorkflowManager.java
+++
b/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/workflow/PreWorkflowManager.java
@@ -148,6 +148,7 @@ public class PreWorkflowManager extends WorkflowManager {
airavataTask.setProcessId(processModel.getProcessId());
airavataTask.setTaskId(taskModel.getTaskId());
airavataTask.setRetryCount(taskModel.getMaxRetry());
+
airavataTask.setAutoSchedule(experimentModel.getUserConfigurationData().isAiravataAutoSchedule());
if (allTasks.size() > 0) {
allTasks.get(allTasks.size() -1).setNextTask(new
OutPort(airavataTask.getTaskId(), airavataTask));
}