Fixed jobstatus not found and complete process if not recovery task found
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/4a92da49 Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/4a92da49 Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/4a92da49 Branch: refs/heads/auroraMesosIntegration Commit: 4a92da4956fb097904996f59c37fabdb40a6c375 Parents: 30f187a Author: Shameera Rathnayaka <[email protected]> Authored: Tue Nov 1 23:20:49 2016 -0400 Committer: Shameera Rathnayaka <[email protected]> Committed: Tue Nov 1 23:20:49 2016 -0400 ---------------------------------------------------------------------- .../apache/airavata/gfac/impl/GFacEngineImpl.java | 5 ++--- .../gfac/monitor/cloud/AuroraJobMonitor.java | 18 ++---------------- 2 files changed, 4 insertions(+), 19 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/airavata/blob/4a92da49/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java index 212b246..71750b3 100644 --- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java +++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java @@ -615,11 +615,10 @@ public class GFacEngineImpl implements GFacEngine { } continueProcess(processContext, recoverTaskId); } else { - log.error("expId: {}, processId: {}, Error while recovering process, couldn't find recovery task", + log.error("expId: {}, processId: {}, couldn't find recovery task, mark this as complete ", processContext.getExperimentId(), processContext.getProcessId()); + processContext.setComplete(true); } - - } private void cancelJobSubmission(ProcessContext processContext, String rTaskId, String pTaskId) { http://git-wip-us.apache.org/repos/asf/airavata/blob/4a92da49/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/monitor/cloud/AuroraJobMonitor.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/monitor/cloud/AuroraJobMonitor.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/monitor/cloud/AuroraJobMonitor.java index e283eee..9b94623 100644 --- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/monitor/cloud/AuroraJobMonitor.java +++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/monitor/cloud/AuroraJobMonitor.java @@ -167,24 +167,11 @@ public class AuroraJobMonitor implements JobMonitor, Runnable { private void updateStatus(String jobKey, TaskContext taskContext, JobState jobState) { ProcessContext pc = taskContext.getParentProcessContext(); - ExperimentCatalog experimentCatalog = pc.getExperimentCatalog(); - Object object; - JobStatus prevJobStatus = null; - try { - CompositeIdentifier ci = new CompositeIdentifier(taskContext.getTaskId(), jobKey); - object = experimentCatalog.get(ExperimentCatalogModelType.JOB_STATUS, ci); - if (object instanceof JobStatus) { - prevJobStatus = ((JobStatus) object); - } - } catch (RegistryException e) { - log.error("Error while getting job statuses for job : {} , task : {}, process : {}", jobKey, - taskContext.getTaskId(), pc.getProcessId()); - } - if (prevJobStatus == null || prevJobStatus.getJobState() != jobState) { + JobModel jobModel = pc.getJobModel(); + if (jobModel.getJobStatuses().get(0).getJobState() != jobState) { JobStatus jobStatus = new JobStatus(jobState); jobStatus.setReason("Aurora return " + jobState.name()); jobStatus.setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime()); - JobModel jobModel = pc.getJobModel(); jobModel.setJobStatuses(Arrays.asList(jobStatus)); try { GFacUtils.saveJobStatus(pc, jobModel); @@ -193,7 +180,6 @@ public class AuroraJobMonitor implements JobMonitor, Runnable { jobState.name(), jobKey, taskContext.getTaskId(), pc.getProcessId(), pc.getExperimentId()); } } - } private void processJob(String jobKey, TaskContext taskContext, JobState jobState) {
