You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ch...@apache.org on 2014/03/12 19:06:02 UTC
git commit: fixing updating and getting job details
Repository: airavata
Updated Branches:
refs/heads/master 77758cb9f -> 457e20d55
fixing updating and getting job details
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/457e20d5
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/457e20d5
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/457e20d5
Branch: refs/heads/master
Commit: 457e20d5552cd338ae8e65a6b7cb39b6d29ff64f
Parents: 77758cb
Author: chathuri <ch...@apache.org>
Authored: Wed Mar 12 14:05:56 2014 -0400
Committer: chathuri <ch...@apache.org>
Committed: Wed Mar 12 14:05:56 2014 -0400
----------------------------------------------------------------------
.../job/monitor/AiravataJobStatusUpdator.java | 24 ++++++++------
.../registry/jpa/impl/ExperimentRegistry.java | 33 ++++++++++----------
.../registry/jpa/impl/RegistryImpl.java | 4 +--
3 files changed, 32 insertions(+), 29 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/457e20d5/modules/airavata-job-monitor/src/main/java/org/apache/airavata/job/monitor/AiravataJobStatusUpdator.java
----------------------------------------------------------------------
diff --git a/modules/airavata-job-monitor/src/main/java/org/apache/airavata/job/monitor/AiravataJobStatusUpdator.java b/modules/airavata-job-monitor/src/main/java/org/apache/airavata/job/monitor/AiravataJobStatusUpdator.java
index 6dc007c..601cc27 100644
--- a/modules/airavata-job-monitor/src/main/java/org/apache/airavata/job/monitor/AiravataJobStatusUpdator.java
+++ b/modules/airavata-job-monitor/src/main/java/org/apache/airavata/job/monitor/AiravataJobStatusUpdator.java
@@ -26,6 +26,7 @@ import org.apache.airavata.job.monitor.state.JobStatus;
import org.apache.airavata.model.workspace.experiment.JobDetails;
import org.apache.airavata.model.workspace.experiment.JobState;
import org.apache.airavata.persistance.registry.jpa.impl.RegistryFactory;
+import org.apache.airavata.registry.cpi.CompositeIdentifier;
import org.apache.airavata.registry.cpi.Registry;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -70,7 +71,9 @@ public class AiravataJobStatusUpdator{
JobState state = jobStatus.getState();
if (state != null) {
try {
- updateJobStatus(jobStatus.getMonitorID().getJobID(), state);
+ String taskID = jobStatus.getMonitorID().getTaskID();
+ String jobID = jobStatus.getMonitorID().getJobID();
+ updateJobStatus(taskID, jobID, state);
} catch (Exception e) {
logger.error("Error persisting data" + e.getLocalizedMessage(), e);
}
@@ -111,13 +114,14 @@ public class AiravataJobStatusUpdator{
}
}
}
- public void updateJobStatus(String jobID, JobState state) throws Exception {
- JobDetails details = new JobDetails();
- org.apache.airavata.model.workspace.experiment.JobStatus status = new org.apache.airavata.model.workspace.experiment.JobStatus();
- status.setJobState(state);
- status.setTimeOfStateChange(Calendar.getInstance().getTimeInMillis());
- details.setJobStatus(status);
- details.setJobID(jobID);
- airavataRegistry.update(org.apache.airavata.registry.cpi.DataType.JOB_DETAIL, details, jobID);
- }
+ public void updateJobStatus(String taskId, String jobID, JobState state) throws Exception {
+ JobDetails details = new JobDetails();
+ org.apache.airavata.model.workspace.experiment.JobStatus status = new org.apache.airavata.model.workspace.experiment.JobStatus();
+ status.setJobState(state);
+ status.setTimeOfStateChange(Calendar.getInstance().getTimeInMillis());
+ details.setJobStatus(status);
+ details.setJobID(jobID);
+ CompositeIdentifier ids = new CompositeIdentifier(taskId, jobID);
+ airavataRegistry.update(org.apache.airavata.registry.cpi.DataType.JOB_DETAIL, details, ids);
+ }
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/457e20d5/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/ExperimentRegistry.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/ExperimentRegistry.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/ExperimentRegistry.java
index 5ce3855..ae6fcea 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/ExperimentRegistry.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/ExperimentRegistry.java
@@ -26,8 +26,6 @@ import org.apache.airavata.model.workspace.experiment.*;
import org.apache.airavata.persistance.registry.jpa.Resource;
import org.apache.airavata.persistance.registry.jpa.ResourceType;
import org.apache.airavata.persistance.registry.jpa.ResourceUtils;
-import org.apache.airavata.persistance.registry.jpa.model.ErrorDetail;
-import org.apache.airavata.persistance.registry.jpa.model.WorkflowNodeDetail;
import org.apache.airavata.persistance.registry.jpa.resources.*;
import org.apache.airavata.persistance.registry.jpa.utils.ThriftDataModelConversion;
import org.apache.airavata.registry.cpi.CompositeIdentifier;
@@ -37,8 +35,9 @@ import org.apache.airavata.registry.cpi.utils.StatusType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.sql.Timestamp;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
public class ExperimentRegistry {
private GatewayResource gatewayResource;
@@ -515,14 +514,13 @@ public class ExperimentRegistry {
}
}
- public String updateJobStatus(JobStatus status, String jobId) throws Exception {
+ public String updateJobStatus(JobStatus status, CompositeIdentifier ids) throws Exception {
try {
ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
- TaskDetailResource taskDetail = (TaskDetailResource) workflowNode.create(ResourceType.TASK_DETAIL);
- JobDetailResource jobDetail = taskDetail.getJobDetail(jobId);
+ TaskDetailResource taskDetail = workflowNode.getTaskDetail((String)ids.getTopLevelIdentifier());
+ JobDetailResource jobDetail = taskDetail.getJobDetail((String)ids.getSecondLevelIdentifier());
StatusResource statusResource = jobDetail.getJobStatus();
- taskDetail = jobDetail.getTaskDetailResource();
workflowNode = taskDetail.getWorkflowNodeDetailResource();
experiment = workflowNode.getExperimentResource();
statusResource.setExperimentResource(experiment);
@@ -884,7 +882,8 @@ public class ExperimentRegistry {
List<JobDetails> jobDetailsList = taskDetails.getJobDetailsList();
if (jobDetailsList != null && !jobDetailsList.isEmpty()){
for (JobDetails job : jobDetailsList){
- updateJobDetails(job, job.getJobID());
+ CompositeIdentifier ids = new CompositeIdentifier(taskId, job.getJobID());
+ updateJobDetails(job, ids);
}
}
@@ -1007,7 +1006,7 @@ public class ExperimentRegistry {
if (jobStatus != null){
JobStatus status = getJobStatus(ids);
if (status != null){
- updateJobStatus(jobStatus, (String)ids.getSecondLevelIdentifier());
+ updateJobStatus(jobStatus, ids);
}else {
addJobStatus(jobStatus, ids);
}
@@ -1034,25 +1033,25 @@ public class ExperimentRegistry {
}
}
- public void updateJobDetails(JobDetails jobDetails, String jobId) throws Exception {
+ // ids - taskId + jobid
+ public void updateJobDetails(JobDetails jobDetails, CompositeIdentifier ids) throws Exception {
try {
ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
- TaskDetailResource taskDetail = (TaskDetailResource) workflowNode.create(ResourceType.TASK_DETAIL);
+ String taskId = (String) ids.getTopLevelIdentifier();
+ TaskDetailResource taskDetail = workflowNode.getTaskDetail(taskId);
+ String jobId = (String) ids.getSecondLevelIdentifier();
JobDetailResource jobDetail = taskDetail.getJobDetail(jobId);
- TaskDetailResource taskDetailResource = jobDetail.getTaskDetailResource();
- jobDetail.setTaskDetailResource(taskDetailResource);
+ jobDetail.setTaskDetailResource(taskDetail);
jobDetail.setJobDescription(jobDetails.getJobDescription());
jobDetail.setCreationTime(AiravataUtils.getTime(jobDetails.getCreationTime()));
jobDetail.setComputeResourceConsumed(jobDetails.getComputeResourceConsumed());
jobDetail.save();
- String taskId = taskDetailResource.getTaskId();
- CompositeIdentifier ids = new CompositeIdentifier(taskId, jobId);
JobStatus jobStatus = jobDetails.getJobStatus();
if (jobStatus != null){
JobStatus status = getJobStatus(ids);
if (status != null){
- updateJobStatus(jobStatus, jobId);
+ updateJobStatus(jobStatus, ids);
}else {
addJobStatus(jobStatus, ids);
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/457e20d5/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/RegistryImpl.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/RegistryImpl.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/RegistryImpl.java
index 549e7c1..8acdab0 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/RegistryImpl.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/RegistryImpl.java
@@ -206,10 +206,10 @@ public class RegistryImpl implements Registry {
experimentRegistry.updateTaskStatus((TaskStatus) newObjectToUpdate, (String) identifier);
break;
case JOB_DETAIL:
- experimentRegistry.updateJobDetails((JobDetails) newObjectToUpdate, (String) identifier);
+ experimentRegistry.updateJobDetails((JobDetails) newObjectToUpdate, (CompositeIdentifier) identifier);
break;
case JOB_STATUS:
- experimentRegistry.updateJobStatus((JobStatus) newObjectToUpdate, (String) identifier);
+ experimentRegistry.updateJobStatus((JobStatus) newObjectToUpdate, (CompositeIdentifier) identifier);
break;
case APPLICATION_STATUS:
experimentRegistry.updateApplicationStatus((ApplicationStatus) newObjectToUpdate, (String) identifier);