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 <[email protected]> Authored: Wed Mar 12 14:05:56 2014 -0400 Committer: chathuri <[email protected]> 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);
